Sunday, January 2, 2011

A decade of HelenOS

In 2011, the oldest HelenOS code will turn 10. Those who were watching during its first decade, have seen HelenOS grow from a one-man adventure to a truly multi-team project involving enough people to fill a bus. HelenOS has gained substance and infrastructure in places where other similar projects have put only gilded fluff and left void. Instead of taking the easier path of imitation, it has mostly gone down the more challenging road of independent design.

Among others, the last decade has brought HelenOS:
  • a multiplatform kernel, a foundation on top of which everything else is built
  • an asynchronous communication layer, which interconnects everything
  • a basic user interface which allows the system to be used in a simple way
  • a file system layer so that we can import and export data to and from HelenOS
  • a modular networking stack, so that we can ping localhost and serve a web page
  • a device driver framework to unify work with devices and manage differences amongst various platforms in a systematic way
  • an interpreter of a high-level object oriented language with which one can extend the capabilities of the system beyond those it gained during compilation
Behind the items above and also the items that I failed to list, there are people who dedicated many hours, days, weeks and months of their time to making HelenOS better in one or another way. They were somehow able to appreciate the constant not-yet-finished quality of the system and could see the light at the end of the tunnel, which in turn got brighter and brighter. Without their help, HelenOS would remain just a one-man adventure it once was. I would like to thank all these creative and courageous people for what they have done so far.

Looking into the next decade, there is still a lot of work left to be done. We may have laid the foundations, but there is still a house to be built on them. Moreover, as our understanding of the overall system requirements changes and refines, at times it will become necessary to touch these foundations and make modifications to them, without tearing down the entire house.

At the beginning, I was suggesting that HelenOS has more substance and infrastructure where some other projects do not. But the opposite is true too. Also HelenOS has major functionality and, more importantly, usability gaps that need to be fixed.

For example, I would like to see the system become self-hosting and installable. A basic set of tools for administration will have to be created. There are ongoing projects that aim to introduce common concepts, such as security, that we have been carefully neglecting so far. As a true multiplatform project, we need to make sure that the features we develop are eventually available on all applicable platforms that HelenOS supports.

I am looking forward to the fruits of the research being done on HelenOS by others. This is something that I have always hoped to be doing myself, but unfortunately never had a good opportunity to do as the circumstances pushed me in a slightly different direction.

I'd be very glad if we managed to keep and perhaps even increase the interest among students and other enthusiasts and form an even stronger HelenOS community. Hopefully, the community will slowly change into a community of users and developers instead of merely a community of its own developers.

No comments: