The just released version 12.02 of the Genode OS Framework takes the first steps to carry out the plan to turn the framework into a general-purpose OS for the daily use by its developers until the end of the year. It features a new ACPI driver, the first bits of a device-driver manager, support for using the fork syscall in GNU programs, and a PDF rendering engine. The most significant point of this release, however, is the way it was conducted. It represents the first version carried out using a completely open development process.
Since the first public release in 2008, the project was primarily driven by the company Genode Labs. Even though the complete source code of the framework accompanied with comprehensive release notes was published at quarterly intervals, design discussions and the actual development work used to happen inside the company only. In summer 2011, the developers realized that this mode of development may severe limit the reach of the project because the nontransparent way of decision-taking and developing makes it hard for people outside the inner developer circle to get hooked-on with the project. Only by making the development process transparent to the public, the project would gain a following of people actively watching its progress, bringing in new ideas, discussing issues, or even contribute. Starting in December 2011, the project has undergone the most fundamental transition in its lifetime. It left the former company-internal code repositories and issue tracker behind in order to embrace the wonderful world of GitHub. The project’s GitHub account is where the fun happens from now on.
Back to the actual release, the current line of work is primarily motivated by the road map for 2012, which envisions the use of Genode as a general-purpose OS by the end of the year. The list of working topics is the result of the developers introspecting themselves for their actual computing needs. Along those topics are features such as a PDF rendering engine and the support for the fork system call in the Noux runtime. Noux allows the use of unmodified command-line based GNU software on Genode. With the addition of fork, it has become able to execute an interactive bash shell for launching coreutils tools natively on a variety of microkernels. Given Genode’s cross-kernel portability, the most challenging part was to find a solution that works across all kernels. In the current form, OKL4, L4/Fiasco, L4ka::Pistachio, Fiasco.OC, and NOVA are supported.
Besides working on topics stated at the road map, the project continuously improves its framework APIs. The most significant new additions are a new API that exploits the C++ type system for safely accessing memory-mapped I/O resources and API support for the easy reuse of existing components as sandboxed libraries. The latter API is extensively used by the new d3m device-driver manager as well as the new ACPI driver.
These and many more improvements are described in full detail in the release notes of version 12.02.