Hello Lonnie,
thank you for your encouraging words! Your observations about the challenges in front of us are spot-on. I think the best thing we can do about them is to move forward with our development work to create more and more inertia. At some point, Genode will hopefully reach a critical mass of usefulness for a wider audience than the niches it currently serves. That general usefulness is certainly a precondition to attract more supporters and developers.
I can see that Genode is coming along nicely and I really like what I have seen, not to mention the better security afforded by the microkernel approach. My understanding, though, is that microkernels do not scale well, at least from the small amount of research I have done on them.
The lack of performance and scalability is possibly the most unfortunate stigmata attached to microkernel technology. However, there exists a series of evidence (in particular coming from the L4 research community) that repeatedly debunked this universal truth. A few references:
In "The Performance of µ-Kernel-based Systems" [1] published in 1997, it became clear that the poor performance of first-generation microkernels could be overcome by carefully picking different kernel abstractions, in particular synchronous IPC.
The NOVA microhypervisor [2] shows how a microkernel-based hypervisor actually outperforms virtualization solutions based on monolithic architectures.
As a third (and very current) reference, the just published paper "KV-Cache: A Scalable High-Performance Web-Object Cache for Manycore" shows how well a carefully tuned microkernel-based memcached implementation compares to a Linux-based appliance:
[1] http://os.inf.tu-dresden.de/papers_ps/sosp97.pdf [2] http://os.inf.tu-dresden.de/papers_ps/steinberg_eurosys2010.pdf [3] http://cs.iupui.edu/~fgsong/publication/ucc13.pdf
I am convinced that microkernel architectures do not inherently imply bad performance and scalability. Achieving good performance depends on the effort spent in understanding and optimizing the system. In our experience, performance is often dominated not so much by microkernel-induced context-switching costs, but by other factors. For example how well device drivers operate. This experience is documented by our case study about porting Genode to the Pandaboard [4]. Through a series of optimization steps, the I/O throughput of Genode with regard to networking and SD-card access could match (and even exceed) the performance achieved by the Linux kernel.
[4] http://genode.org/documentation/articles/pandaboard
Another observation is that even the Linux userland is partly moving towards "microkernelization". Just look how on Android, GPU drivers live in the user space, not inside the kernel. If the address-space overhead was really such a pressing problem, wouldn't that direction be counter-intuitive?
My current interest is in clusters since in my day-job, I work as a scientist at a national institute of standards and technology where we do a lot over computer modeling via various clusters software, namely Linux Rocks clustering software at the moment, but I do not particularly like the way that this has to be accomplished via MPI and the like which is why I am investigating NOVA and Genode as a possible starting point for a cluster idea that I have in mind which could be better than existing Linux systems although still a long term project as well.
I could see Genode developing well towards clustering solutions as it does have many attractive aspects thus far.
It would be nice to see a demo of the latest Genode and perhaps as simple install system so that it can be installed easily on to real harddisks or perhaps in virtualbox VM for further testing and developing.
As for now, I am just basically getting familiar with the code before seeing how I can move towards the clustering or general distribution goals.
That is great to read! I'd love to see how that line of thoughts continues. :-)
Cheers Norman