The microkernel developer community uses to be extremely fragmented. There exists a high variety of advanced microkernels each being developed with a different focus. However, since each kernel comes with its own minimalistic user land that is usually geared towards the special needs of its developers, none of those kernels has taken off in the domain of general-purpose computing. Genode has the mission to change that. Thanks to the tooling infrastructure that comes with the new version 11.08, the use of different microkernels has finally become a seamless experience. Those kernels including OKL4, L4/Fiasco, L4ka::Pistachio, NOVA, Codzero, and Fiasco.OC can be combined with the framework’s steadily growing functionality such as a its new AHCI driver and Qt4.
The development of custom microkernel-based operating systems is extremely challenging. It starts with taking an informed decision for picking a microkernel to start with, which is all but easy. Given the plethora of different kernel designs, it is hard to judge the different approaches without having years of experience in the field. Once this decision is taken, the developer does not only has to wrap ones head around the low-level concepts of the particular kernel but he also has to deal with often hard-to-grasp development environments. Finally, things that we normally take for granted such as a working C library, file I/O, networking, or a GUI are often lacking.
This is where Genode enters the picture. The Genode OS Framework strives for paving a common ground for developing microkernel-based operating systems by offering a unified API for the development of user-level components. Such components can then be used across a large variety of different base platforms including kernels as different as Linux and NOVA. With the growing number of supported kernels, it turned out that the unified programming API was solving only half of the problem. The other half is the incredible variety of different approaches when it comes to obtaining, configuring, building, integrating, and booting systems with different kernels. With the new version 11.08, Genode addresses these concerns by providing a unified workflow for dealing with all the different base platforms in the same fashion. Using microkernels has never been easier.
In addition to the new tooling support, the version 11.08 advances the framework’s block-device infrastructure and the support for ARM platforms. A new AHCI driver allows the use of SATA disks, the ATAPI driver has been extended to support IDE disks, a new partition server enables the use of partitioned disks, and a new libc plugin facilitates the access of VFAT file systems by applications using standard libc functions.
With regard to platform support, several base platforms have been updated and the ARM support has been extended to cover L4Linux and Qt4. Last but not least, the project’s documentation received considerable attention.
For the full story of news around the framework, please refer to the comprehensive release notes of version 11.08.