
Mezzanine: A Common Lisp-based 64-bit OS for VirtualBox - self
http://slexy.org/view/s20Pc2LaIw
======
self
It's in its early days, but it has a working compiler, garbage collection,
etc. It was announced on the Freenode #lisp channel; start reading at
[http://log.irc.tymoon.eu/freenode/lisp?around=2015-01-25T15:...](http://log.irc.tymoon.eu/freenode/lisp?around=2015-01-25T15:08:33&types=mnaot#1422198513)

Screenshot:
[https://dl.dropboxusercontent.com/u/46753018/Screen%20Shot%2...](https://dl.dropboxusercontent.com/u/46753018/Screen%20Shot%202015-01-19%20at%2001.29.31.png)

~~~
orthecreedence
Thanks for posting the #lisp chat, it's got some good discussion about the
project.

I'm surprised how quiet this guy has been for years, don't ever seem to
remember seeing him in IRC!

~~~
pekk
The correlation between strength of IRC presence and productivity is, shall we
say, imperfect...

~~~
desdiv
I'd say there's a pretty strong negative correlation ;)

------
jacquesm
I like this. There is strength in having many different species of operating
system. Monocultures are vulnerable to all kinds of diseases, one way to
combat that is to have a (much) larger variety of operating systems so that
infecting any of them has a very low return-on-investment.

So any new operating system that is far from the beaten path should be very
much welcomed, this one is more interesting than most since it is written
using a high level language.

Looking forward to an eventual release.

~~~
jblow
When I think of what I want in an operating system, "I wish it would lock up
occasionally while everything garbage collects" is not high on the list.

~~~
mnemonicsloth
Real-time GC is a real thing now. Google it.

~~~
jblow
No, no it isn't.

There is always some garbage velocity beyond which any given system is not
able to cope.

Usually that limit is kinda small compared to what you'd actually like your
program to be able to do.

~~~
tokenrove
This is true of any dynamic memory management unless very careful constraints
are put in place. I would assume anyone writing an OS kernel, regardless of
language, would be careful to avoid unbounded consing. (Of course, memory
allocation in kernels is tricky even in C:
[http://lwn.net/Articles/627419/](http://lwn.net/Articles/627419/))

------
rasur
Nice! _Please_ do alert us when it appears on github. I'm sure there will be
interest.

EDIT: In fact if you can announce your github id now/soon people can start
watching in earnest.

------
mark_l_watson
This looks very cool. I am going to wait until the source is posted on github
before trying it. I was lucky enough to have received a Xerox 1108 Lisp
Machine in the early 1980s, so having an OS written in Lisp seems reasonable
:-)

Also, I agree with jacquesm's comment on the advantages of many operating
systems.

------
tedunangst
Are people up voting this because they like the title or they like the link?
Because there's literally more information about what this is in the HN title
than the link. Is an anonymous paste the closest this thing has to a homepage?

~~~
jacquesm
There was more content previously (but no install instructions).

The submission reminded me of:
[https://news.ycombinator.com/item?id=7126818](https://news.ycombinator.com/item?id=7126818)

Here is an IRC log about it:

[http://log.irc.tymoon.eu/freenode/lisp?around=2015-01-25T15:...](http://log.irc.tymoon.eu/freenode/lisp?around=2015-01-25T15:08:33&types=mnaot#1422198513)

------
auvi
Awesome! I just downloaded the vm disk and the system is up and running inside
VirtualBox. It was good to see the CL-USER> prompt.

------
dmytrish
I've been pleasantly surprised with its slick UI.

But, as with many Lisp OS images, there is an issue with explorability: how do
I discover system commands in the REPL? I know a bit of Common Lisp, but it's
not clear to me how to discover what system can and what not, how to explore
the environment. Neither Filesystem Viewer provides any clues, nor does REPL.

------
pmoriarty
Copy of install instructions here:
[http://okturing.com/src/2648/body](http://okturing.com/src/2648/body)

Also might as well copy them here too:

    
    
      1) Install VirtualBox from https://www.virtualbox.org/
      2) Download and ungzip the disk image from https://dl.dropboxusercontent.com/u/46753018/Mezzanine%20Demo%201-disk1.vmdk.gz
      3) Create a new VM in VirtualBox with the following settings:
         Type: Other
         Version: Other/Unknown 64-bit
         Memory size: 512MB
         Use an existing virtual hard drive file, the one you downloaded
      4) Open the settings for the VM and switch to the Network tab.
      5) Open the advanced settings and change the adapter type to virtio-net
      6) Click OK. The VM is ready to start.

~~~
falcolas
Interesting that they need the virtio-net adapter (host hands off raw network
packets to the guest instead of simulating a network card). How many other low
level drivers are missing?

Of course, for a toy OS it doesn't really matter, but it does unfortunately
constrain this to the toy OS category.

~~~
cbd1984
Heh. If you think "only runs in a VM" and "toy" are synonyms, you need a
history lesson.

Back in the 1960s, one of the hot new things from IBM (you know, the company
that wins on Jeopardy) was VM/CMS. VM is a VM, hence the imaginative name, and
CMS stood for Conversational Monitor System, originally Cambridge Monitor
System, for reasons I'll let you figure out.

Conversational meant "has a command line", as opposed to batch, which you
might have heard of. CMS was, all told, somewhere between pond scum and MS-DOS
on the complexity scale: it provided some APIs for applications, but didn't
handle memory protection, multitasking, multiple users, or security policy. A
mainframe running CMS on the bare metal would have been a really expensive
version of a PC from twenty or so years later; obviously, you can only justify
doing that in a Serious University.

However, it was convenient and user-friendly back before the term was coined,
when that meant "not seeing raw machine code unless you asked for it", so the
gag was to run multiple instances of CMS as guests under VM, which provided
everything CMS didn't. Every user got their own copy of the OS, and the single
physical mainframe was turned into dozens or hundreds of virtual mainframes by
VM.

My punchline: As the decades wore on, CMS was never modified to take newer
hardware into account. Why would it be? It never ran on the bare metal. VM
gained emulation functionality, CMS grew to depend on that, and now CMS is
effectively an appendage of VM, a friendly face to the thing which does all
the hard work. You know, like marketing, or upper management.

~~~
jacquesm
> you know, the company that wins on Jeopardy

Hehe. Priceless.

------
nemoniac
So what needs to happen to run this on the bare metal with stumpwm and emacs
on top?

~~~
ahknight
Pretty much everything.

------
muminoff
No issue with naming? I mean there is already an open-source project named
Mezzanine, but it is CMS built with Django.
[http://mezzanine.jupo.org/](http://mezzanine.jupo.org/)

------
mgsouth
It's up on github (name changed to Mezzano because of the conflict with the
CMS project):

[https://github.com/froggey/Mezzano](https://github.com/froggey/Mezzano)

IRC log discussing building:
[http://log.irc.tymoon.eu/freenode/lisp?from=2015-01-27T19%3A...](http://log.irc.tymoon.eu/freenode/lisp?from=2015-01-27T19%3A00%3A00&to=2015-01-28T00%3A00%3A00&type%5B%5D=m&type%5B%5D=a&type%5B%5D=n&type%5B%5D=p&type%5B%5D=o&type%5B%5D=t)

------
crististm
Now this is looks pretty nice and I'd like it to take off. It can be the next
Lisp Machine but unfortunately it raises a red flag with the licensing terms -
MIT. The author distributed the binary without the source code which is fine
with MIT. He might release the code or change his mind and never release it.
Again this is his choice.

But at this point, the distributed image is not any different than a
proprietary solution. What good is it for me if I can't change it?

No flame-wars please.

------
kermitdance
Sounds cool but I'm kind of reluctant to run a VBox only described by a
pastebin-like bit of text. Does anyone else think that way?

~~~
cpach
I agree :)

------
htor
This is good work! I seriously _need_ to see the source code. Always wanted to
make an OS in a high level language.

------
tempodox
I don't know VirtualBox that well, the instructions in the post are unclear to
me and don't work. Could someone elaborate this for VB-dummies like me?

Edit: Especially unclear is “ _Use an existing virtual hard drive file, the
one you downloaded_ ”. How do I do that?

~~~
raphaelss
The .vmdk file you get after running gunzip on the downloaded file is a
virtual hard drive. When you create a new VM in VirtualBox, it asks if you
want to create a new virtual hard drive or use an existing one. Select the one
downloaded.

~~~
tempodox
Yep, got it. I didn't recognize that funny graphic beside the pop-up menu in
VirtualBox was supposed to be a button for opening a file. Creative UI choices
like that do confuse me a great deal.

------
avodonosov
A video screencast is welcome!

~~~
tempodox
A better elaboration on the written instructions would even be much more
welcome than a video. Video screen casts are vastly overrated.

~~~
avodonosov
I don't mean a screancast how to install it. I just want to avoid installation
and see how it looks.

~~~
tempodox
If I could misread that, so could everyone else :)

