The just released version 12.08 of the Genode OS Framework comes with the ability to run Genode-based systems on ARM hardware without an underlying kernel, vastly improves the support for the NOVA hypervisor, and adds device drivers for the OMAP4 SoC. Further functional additions are a FFAT-based file system service, the port of the lighttpd web server, and support for on-target debugging via GDB.
One of Genode’s most distinguished characteristics compared to traditional operating systems is the idea to bring the term “component-based” to the next level: To create not an OS but an OS construction kit. In line with Unix philosophy, it is a collection of small building blocks, out of which complex systems can be composed. But unlike Unix, those building blocks include not only applications but all classical OS functionalities including device drivers, protocol stacks, and in particular kernels. Naturally, the more diverse the landscape of components becomes, the more flexible and scalable Genode-based systems become.
The current release introduces a new option with respect to the kernel. By using the new base-hw base platform, typical microkernel functionality is integrated into Genode’s core and thereby eliminates the need for a separate kernel. At the first glance, this seems contradictory because the core component runs in user mode wheres the kernel runs in kernel mode. But it turns out that integrating user-land code and kernel code into a single program does not just work fine but vastly reduces the complexity of the overall picture. Apparently, there are many problems that both the kernel and core have to address. By merging both programs into one, redundancies in terms of data structures and functionality can be drastically reduced. As of now, the new base-hw platform supports ARM Cortex-A9 hardware. Even though it is still tagged as experimental, it is able to successfully run almost all Genode components on top.
As a second line of work, the project has largely reworked the support for the NOVA hypervisor as base platform. After two years of uncertainty about the future of this beautiful kernel, NOVA’s development moved over to Intel Labs where the kernel is developed as an Open-Source project hosted at GitHub. For Genode, these are exciting news, which prompted the project to advance the support for NOVA in several ways. The NOVA support has been upgraded to cover both x86_32 and x86_64 architectures. In addition, NOVA’s capability-based security features have been fully embraced. The latter point turns NOVA into one of the few base platforms that fully support Genode’s capability-based security concept at the kernel level.
The third focus of the current release is the addition of comprehensive device drivers for the OMAP4 SoC as used on the popular Pandaboard. The new drivers cover HDMI output, USB HID, SD-card access as well as networking. Among the further functional additions are a new FFAT-based file system service, the port of the lighttpd web server, and improved networking support for the Noux runtime for Unix applications. Those and the background information behind many more changes are covered in full detail by the release notes of version 12.08.