Forget Troy. Try HelenOS

Even though it seems like there are a lot of operating system choices, the number narrows if you start counting kernels, instead of distributions. Sure, Windows is clearly an operating system family, and on the Unix-like side, there is Linux and BSD. But many other operating systems–Ubuntu, Fedora, Raspian–they all derive from some stock operating system. There are some outliers, though, and one of those is HelenOS. The open source OS runs on many platforms, including PCs, Raspberry PIs, Beaglebones, and many others.

Although the OS isn’t new, it is gaining more features and is now at version 0.7. You can see a video about some of the new features, below.

According to the project’s web site:

HelenOS is a portable microkernel-based multiserver operating system designed and implemented from scratch. It decomposes key operating system functionality such as file systems, networking, device drivers and graphical user interface into a collection of fine-grained user space components that interact with each other via message passing. A failure or crash of one component does not directly harm others. HelenOS is therefore flexible, modular, extensible, fault tolerant and easy to understand.

The development team mentions in its FAQ that the code may not be stable enough for production use, but that they feel it is close to being ready for practical use. The APIs available are not copies of the equivalent Linux API which gives the OS more flexibility, but makes it more difficult to port existing code. There’s a document outlining the differences.

Although the operating system doesn’t use a Linux API, it isn’t as far out as some others we’ve seen. Got a better idea? You can learn about jumping into OS development on a Raspberry Pi and do your own.

15 thoughts on “Forget Troy. Try HelenOS

      1. Both Mach and L4 are kernels. HelenOS is an operating system. Not comparable.

        Mach + BSD userland (with glue code) + drivers would be an operating system. L4+Iguana with Wombat would be an operating system.

  1. Putting all your eggs in one basket from a security aspect for example by only using one operating system type e.g. Linux could mean that you are susceptible to the attacks on every instance. Can’t help thinking that it might be better to work with the existing community and “fix” what is already there becuase at the end of the day, Linux has not reached its final form and will keep on being developed absorbing the best features as it goes.

    1. New features are best ironed out on a clean minimum system example. The problem however is that Linux is from its origin an antithesis of microkernel-based OSes, in fact Linux was intended as proof in an argument against merit of microkernels. There can not be much experience that could be transferred from HelenOS, or Minix, or GNU Hurd, … over to Linux, that would be a logical equivalent of an oxymoron.

  2. Whilst I have seen this OS in the past(a few years ago?)…. It seems to have came a long way since.

    Though doesn’t Minix also have a modular micro-kernel approach? you know… so if one part breaks, the kernel can try and recover making it more fault tolerant? Though Minix is yet another Unix variant though.

  3. Seems like a good learning exercise, but now what. Why not target it towards the rapidly evolving robotics community and do something like a mixture of an RTOS, MISRA-C compliance and a messaging platform like DDS? That would at least fill a gap where Ubuntu can’t quite go.

    1. Why do they have to have a certain niche if the system is something they like to hack on? We aren’t talking about a company wanting to make a lot of $$$.

      If you or anyone else would like to use it for robotics then why not start using it?

  4. “It decomposes key operating system functionality such as file systems, networking, device drivers and graphical user interface into a collection of fine-grained user space components that interact with each other via message passing.”

    Gee, isn’t this the way Linux/Unix works?

    1. Ah, no. The key words here are “user space components”. While Linux is composed of many units, they are all compiled into a big, monolithic kernel. What about kernel modules, you ask? Still privileged code, running in kernel space.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s