Linked by nfeske on Fri 28th Feb 2014 21:45 UTC
OSNews, Generic OSes

With the release of version 14.02, the Genode project has added two major features to the OS-construction framework: Using VirtualBox on top of Genode/NOVA, a wide range of unmodified guest OSes can now be integrated as components into Genode-based systems. The second feature is the addition of the file systems of the NetBSD kernel as rump kernels. The release documentation covers plenty of further improvements.

With storage and virtualization, the new release addresses two topics that are fundamental for using Genode as general-purpose OS, and both topics have been approached in a pretty holistic manner.

When it comes to storage, the project has significantly advanced over the past year but a few key pieces were still missing, namely mature file systems and a block cache. After having investigated FUSE-based file systems in the previous release, the project started exploring so-called rump kernels, which enable the execution of subsystems of the NetBSD kernel at user level. Originally, the rump kernel project was created to ease the development of drivers on NetBSD. The basic idea behind them is to link a driver to a stripped-down version of the NetBSD kernel that does not contain any privileged instruction. Hence, it can be executed in user mode. To interact with the outside world, a rump kernel uses a small so-called "hypercall" interface. By implementing this interface on top of the Genode API, rump kernels have become usable on Genode now. The immediate benefit is the availability of the time-tested file systems of the NetBSD kernel. But in the future, other NetBSD subsystem such as the TCP/IP stack or device drivers could be considered just as well.

At block level, the project took the chance to redesign the internal interfaces of the existing block-level components to support fully asynchronous operation. This step enables the effective use of modern disk-controller features such as native command queuing, and even the out-of-order processing of block requests. As the cherry on top of this line of work, there is a new block-cache component.

Over the past 5 years, virtualization has always played a role for the project. It started with running the paravirtualized OKLinux on top of the OKL4 microkernel. Later L4Linux was made available to Genode running on the Fiasco.OC kernel. Once the NOVA hypervisor found its way to the framework, the project embraced the use of the Vancouver virtual machine monitor, which enabled the use of unmodified Linux kernels. However, none of these solutions appealed well for a large user base, mainly because they were difficult to use or lacked features. By adding support for VirtualBox on top of NOVA, the project has finally found an answer to the question for product-grade virtualization on top of the framework. The integration of VirtualBox with Genode was no ordinary porting work but quite an engineering feat, which turns the architecture of VirtualBox pretty much upside down. In contrast to the host operating systems already supported by VirtualBox, Genode's version does not extend the host kernel in any way. VirtualBox leverages hardware-based virtualization (VT-x) but lives as a plain user-level program with no special privileges.

As with each new version, there are numerous smaller improvements and new features. For example, a new pseudo file system called trace-fs makes it possible to interactively use Genode's event tracing mechanism via Unix tools such as cat, grep, and echo.

All the changes are covered in detail in the release documentation of version 14.02.

Permalink for comment 583777
To read all comments associated with this story, please click here.
RE[2]: Let's just say...
by MechaShiva on Sun 2nd Mar 2014 21:18 UTC in reply to "RE: Let's just say..."
MechaShiva
Member since:
2005-07-06

Typically, I dust off an old machine I've got kicking around the office and go to town. This has helped scratch the itch for everything from Syllable to Haiku, to ReactOS and MenuetOS (and on and on). For Genode, that doesn't seem like it'd be sufficient.

Between the capability frameworks and pluggable kernels, I feel like it would need a project or task of some kind above and beyond simply installing it to really get a feel for what they're doing and what they're trying to do. Same with something like SmartOS or DragonflyBSD. Yes, you could go the VM route to get a taste, but in order to get a real sense of where the developers are taking the project, I feel like you need to test it in an environment that shows off the project's strengths.

My friend would, I mean. Darn it.

Reply Parent Score: 3