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:

  http://www.genode.org/about/interview_rel36

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.clktrk
_______________________________________________
Genode-main mailing list
Genode-main@...12...ceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main