Greetings All,
Thanks for you wonderful response to my inquiry about Genode as I really do think that it is a great piece with a huge potential in the industry.
On Sat, Dec 14, 2013 at 5:10 AM, Norman Feske <norman.feske@...1...>wrote:
Hi Lonnie,
I am new to Genode and think that it is very nice solution for a microkernel OS for which I am trying to learn more about as it evolves into a fully fledged general operating system as I think that it has the potential to be much better than the majority that are currently available although it still seem to be a long ways from production quality at the moment.
could you please elaborate a bit more on that bit about "production quality"? I am genuinely interested to learn what is missing from Genode having "production quality". I would greatly appreciate if you share your perception with us so that we can address your concerns.
I was not intending to cat Genode in a bad light, but mostly to simple say that it does not yet have the same extensive use and history as other OS's like Linux and Windows for example.
The biggest challenge ahead that I could see at the moment is the availability of drivers needed to allow it to be easily installed and run on various hardware configurations. This, of course, will just take a bit of time as more drivers will be developed over time as the need arises from the community. I would like to investigate the possibility of a complete OS distribution centered around Genode.
Currently, my interest is in NOVA with Genode instances running in VM's as I was able to get the Genode 10.11 demo running in which I could start small versions of tiny core linux but the networking stack would not work on my system which is a HP p7-1451-pc recently purchased about 6-months ago. That was nice to see though and I look forward to seeing a similar thing with the latest Genode version once it is ready.
One thing that I am not clear about, and please forgive this question if it is a bit elementary as to something simple that I should have been able to ascertain, but I am confused on exactly where the Genode OS framework fall into place as an independent OS.
Your sentiment is actually quite common because Genode is neither an operating system in the usual sense nor a mere kernel. Because it fits poorly into existing categories, it is not easy to get a tangible grasp on it. I once tried to explain how Genode relates to existing OSes in the following interview, which you might hopefully find insightful:
Thanks for the link as it did clear up a bit of my questions.
The basis of my question is from the reading that I have been doing on the Genode website in which I can see that it can be compiled to run on baremetal as you would expect an OS to do, but why is it als able to be compiled to be used with other base platforms?
The kernel is just one tiny (literately tiny in particular when speaking of microkernels) piece of the overall system. Genode allows you to pick a kernel that fits best with your needs instead of tying you to a single kernel implementation. In fact, kernels differ in many respects. Let me just blatantly quote the release notes of version 10.02 here:
"So why do we address so many different kernels instead of focusing our efforts to one selected platform? Our observation is that different applications pose different requirements on the kernel. Most kernels have a specific profile with regard to security, hardware support, complexity, scheduling, resource management, and licensing that may make them fit well for one application area but not perfectly suited for a different use case. There is no single perfect kernel and there doesn't need to be one. By using Genode, applications developed for one kernel can be ported to all the other supported platforms with a simple recompile. We believe that making Genode available on a new kernel is beneficial for the kernel developers, application developers, and users alike. For kernel developers, Genode brings additional workloads to stress-test their kernel, and it extends the application area of the kernel. Application developers can address several kernel platforms at once instead of tying their programs to one particular platform. Finally, users and system integrators can pick their kernel of choice for the problem at hand. Broadening the platform support for Genode helps to make the framework more relevant."
I can understand why it might be used with NOVA, which is a microhypervisor and thus Genode could run as a user-land OS in a VM, but I do not see why Genode would need to be compiled against the other base-platforms like Linux, Fiasco, ....
The NOVA kernel alone is not able to run meaningful applications or virtual machines on top. As Markus already pointed out, Genode is used as the glue between the naked NOVA kernel interface and user-level applications. A virtual-machine monitor is just an example for such an application. Genode supplements the kernel with device drivers, protocol stacks (think of TCP/IP, graphics, C runtime), and resource management.
The Linux kernel is supported because this base platform enables us to use all the powerful debugging tools on Linux when developing components and interfaces. In fact, most of Genode's development (except for device drivers or rare kernel-specific components) is carried out on Linux. The resulting software just happens to run fine on other kernels too. The motivation behind supporting the others kernels largely differs. For example, L4/Fiasco is supported for sentimental reasons, and we still use it once in a while to leverage the kernel debugger. Fiasco.OC is supported to let Genode benefit from its good support for a variety of ARM platforms.
Finally, the support for different kernel interfaces stresses Genode's design and implementation quality. We have to carefully design abstractions that work robustly with vastly different base mechanisms. When designing such interfaces, the need to satisfy multiple kernels rules out ad-hoc solutions pretty reliably. A clean (but often non-obvious) design has a much better chance to pass this test. For the implementation, we often made the experience that the different behaviours of the kernels expose potential problems in the generic code early on. For example, race conditions inherently depend on the kernel's scheduling. So on some kernels, such bugs would go unnoticed for a long time - but they are lurking there. However, exposing the same software to other kernels with different schedulers greatly increases the likelihood for triggering such problems, so the problems can be fixed.
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.
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.
Thanks for you wonderful and in-depth answers to my inquiries.
Keep up the great work and I hope to be able to contribute to the efforts soon.
Best Regards my friends, Lonnie
Best regards
Norman
-- Dr.-Ing. Norman Feske Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clk... _______________________________________________ Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main