The just released version 11.02 of the Genode OS Framework pushes its platform support to 8 different kernels. Genode allows the construction of specialized operating systems by combining one of those kernels with a steadily growing number of ready-to-use components. The new platform additions are the support for Fiasco.OC, which is a modern capability-based microkernel, the upgrade to the NOVA hypervisor 0.3, and a custom kernel implementation specifically targeted to softcore CPUs as employed in FPGA-based SoCs. Functionality-wise, Genode 11.02 features the first parts of a new execution environment for running command-line-based GNU software natively on Genode.

Indeed, Genode sounds like the most promising general purpose operating system out there. It has all the buzz words; graphical, secure (capability-based), real-time, hypervisor, microkernel, 3d-accelerated, with good support and integration of legacy systems (such as Linux), portable (with different kernels and archs, including an FPGA soft core), with native ports of many powerful open source frameworks. What's left to ask for?

But if I understand correctly it's an either/or choice: if you want the drivers you install Linux, if you want to use the 'object capabilities' you need to do another installation..
Maybe that's why people are not so excited about it?

But if I understand correctly it's an either/or choice: if you want the drivers you install Linux, if you want to use the 'object capabilities' you need to do another installation..
Maybe that's why people are not so excited about it?

What makes you think that? I'm no expert, but I don't recall them mentioning that limitation in their demos and explanations. The "object capability" model is the heart and soul of Genode, and they take pride on its ability to run and integrate several Linux VMs, Qt4 applications (like the Arora web browser) directly on Genode, plugins as separate processes and much more.

I guess people are not yet excited because, outside of the demo CD, the installation and configuration may be a bit involved, the system is evolving quickly and it's probably not quite ready for production yet.

I guess that people have a hard time relating to the project because it cannot be easily compared to well-known OSes. It is different paradigm - maybe meta OS is an appropriate term. In a way, Genode relates to traditional OSes as LEGO relates to Playmobil. A kid that spent his whole lifetime with cool Playmobil gadgets would have a hard time to get excited about a bunch of LEGO bricks with no apparent structure. But an experienced LEGO engineer will appreciate the fact that most Playmobil semantics (say the functions of a police car) can be quite easily emulated with a compositon of fairly generic LEGO bricks.

The Noux execution enviroment as added with the current release shows off this flexibility quite well. Even though still in an early stage, is shows that it is feasible to emulate an UNIX-like interface on top of Genode without much effort.

At the current stage, the target audience for Genode are people who enjoy creating custom operating systems. Coming back to the LEGO analogy, such people can choose to create something from scratch (using a wooden brick and a knife), which takes a lot of effort. Or they could use LEGO to set their imagination free. In contrast to LEGO, however, Genode is free .-)

Regarding the question about device drivers: All device drivers that come with Genode work across all supported kernels. The only exception is Linux. The Linux base platform is used as development platform allowing us to start Genode as fast as a normal applications and use GDB for debugging. But it is not intended as a real target platform for deploying the framework.

Why don't more people rave about this?
It's a pile of fantastic ideas.

I am very happy for this release. Contrary to what others say uKernels are the future. It makes the OS construction modular. I believe that this is the way forward. I wish Genode had a version with IOKit to use and write MacOSX compatible drivers (there was an IOKit port to L4) some years ago. Since uKernels are the future (and I do not agree with performance FUD) I hope the processor vendors realize that and start providing IOMMUs at desktop boards in order to make drivers more secure and other goodies. All in all Genode is a forward looking example and I would like to see much more uKernel OSs. Hurd is another paradigm though its problems are not uKernel related but both share a common vision. Hobby crowd should focus on writing hobby micro-kernels instead of hobby kernels.

Wouldn't you like to give it a try to port IOkit? It sounds like a cool project. On Genode, there exists an API called DDE Kit (Device Driver Environment Kit), which is a suitable hook for such an endeavour.The API is really simple, check out the documentation:

DDE Kit is already being used as backend for Genode's dde_linux (to run Linux drivers), dde_gpxe (to run gPXE network drivers) as well as the Gallium3D/GEM port. So it might be a natural point to start.

Well, as I see it, it is the other way around, at least for the new features in this release. It look like on how little can you scale it down. Running a modern OS on a FPGA is nice, it may be the future after all. Sure, CPUs are good, but FPGA are more flexible. Think of a cache like mechanism for actual code. A pool of soft wired logic gates in a big, fat and powerful CPU. You can use them asynchronously, executing heavy functions that require hundreds of cycles in a single one or poping physical threads on the fly to run light weight but real time process completely cut off from the main CPU while having access to its memory in true DMA mode. It could speed up application by hundreds of times given that a FPGA is able to process certain information faster than a CPU (when well used) while it is not even 1% of the size in term of transistors.

I would love to have a good platform for that, and this kind of OS might just be a perfect fit.

I take your point, and it will be nice if more mainboards become available having an FPGA socket in addition to all of their processor sockets. I think that would begin to increase the prevalence of FPGA-optimized code, which would be fantastic, especially if this was done in terms of existing UNIX libraries simply by replacing the algorithms done in C with something done in verilog or vhdl, so that it would be transparent to the user.

I wonder if something like Microsoft CLR or LLVM runtime compilation could detect functions that can be implemented in pure logic (1 cycle per function) or logic+some latches (some cycle, but most merged together) and let the runtime compilator to produce the most "valuable" set of logic function for a given time or context. Let face it, it would not be like a CPU, unless it is done wrong, you can know at compile time how much gates you would be available at a given time and a given motherboard, as they would grow in transistor count while normal CPU grow in instruction set.