Genode is a framework for creating custom microkernel-based operating systems, currently supporting four different kernels. With the new 9.11 release, the project moves beyond the x86 architecture by adding initial support for ARM CPUs. Among the long list of further improvements, there is added support for USB storage, a light-weight IP stack, Qt/Webkit, a zero-footprint runtime for Ada programs, and the addition of a paravirtualized Linux kernel to the mainline distribution. These and more changes are described in full detail in the release notes for version 9.11.
For the project, the current release is a major leap towards Genode’s goal of becoming a general-purpose OS platform. The addition of a paravirtualized Linux kernel to the distribution makes it possible to benefit from Genode’s extremely small trusted computing base for security-sensitive applications while still retaining binary compatibility with Linux.
This particular version of Linux has no direct hardware access but rather uses native Genode services as virtual hardware devices. Thanks to our device-driver environment, these services, in turn, can use unmodified Linux drivers running in separate processes, to perform the hardware access. The current version supports Genode’s frame-buffer and input-device interfaces, but those are just the starting point. With the new USB storage and networking drivers, more device classes become feasible.
While fostering OKLinux as execution environment of Linux applications, the native Genode environment steadily becomes more functional, making the development of native applications more attractive. Such applications can now rely on familiar infrastructures such as full support for shared libraries, socket-based TCP/IP networking via lwIP, and popular libraries such as Freetype2. In fact, the environment has become powerful enough to host Qt4/Webkit natively on Genode on all supported base platforms.
Speaking of platforms, Genode has extended the support for the OKL4 kernel to cover the ARM architecture as well. As a proof on concept, this initial ARM support makes the base framework including the GUI available on one particular ARM-based platform, namely GTA01.