Posted on | April 5, 2008 | Comments Off
While reading freshmeat, I stumbled across an emerging operating system named HelenOS. HelenOS (after Helen of Troy) is a new operating system based on a preemptible micro kernel (Spartan) that has some really neat features.
You thought microkernels were dead? Read on. Helen boots on pretty much every major architecture (even Xen friendly!). Its being developed on simulators, so there is no real chip set support for bare metal yet. That’s really a non issue with the proliferation of tools like QEMU for development.
Its got threads, SMP support, an amazingly innovative inter process communication mechanism and its free software. What attracted me the most is that HelenOS is a research OS, but aims to be a pliable, functional modern OS capable of serving many needs.
I was around to see the great Tanenbaum Torvalds debate on the fundamental differences between monolithic and micro kernel designs. Tar me, feather me, stick me in the dunking tank but I have to say that Linux is not always the best choice. I like, promote and use the Linux kernel avidly .. but sometimes reliability at the (Linux) module level presents a stumbling block.
Linus himself would say that wearing blinders is
<em>terminally stupid</em>', so please hold the hate mail. Take care to not call a modular file system 'part of the kernel' any more than you'd call (support for anything) part of the kernel.Support for’ and `part of’ mean two different things. Read the debate to learn the differences between the two.
HelenOS is very much in its infancy. Its got VFS in the works (and working), FAT is coming next and then who knows. Most critical low level functions are done or in progress in its C libraries, I’ve really enjoyed working on it while sharpening my skills by not relying on modern C creature comforts.
Helen cross compiles easily, native gcc just as easy if you have a recent tool chain. If not, adding a simple flag to turn off stack protection in a few make files does the trick. The build system is neat, done in Python and easy to grasp.
I’m currently working on a shell for HelenOS while wrapping my head around its IPC mechanism. The development community orbiting HelenOS is very relaxed, I’m having a lot of fun (and really learning) while working on it.
While HelenOS might look like a Unix-like OS, a quick look at its kernel should tell you that its not a Unix like OS. POSIX creature comforts (i.e. signals) have been expanded and even replaced by more efficient things, such as its IPC. Its new, its different, it will be extremely reliable .. so of course I’m diving in.
If you have a few minutes, grab their latest release, fire up QEMU and try it. If you see potential, grab the source and build it.. trust me, you’ll get hooked
A lot of thinking went into the design of HelenOS. Virtual machine monitors are indeed micro kernels done ‘right’, Spartan is a micro kernel done ‘well’. Check it out.
A good, well thought out design means sensibility. I’m excited to see HelenOS evolve.