Greetings All,
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.
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.
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?
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, ....
Can someone please clarify this for me?
Kind Regards and have a great day my friends, Lonnie
< CONFIDENTIALITY NOTICE > The information contained in this communication is confidential and is intended only for the use of the recipient named above, and may be legally privileged and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, please resend to sender and delete the original from your computer system. You are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. Opinions, conclusions and other information in this message that do not relate to our official business should be understood as neither given nor endorsed.
Hi Lonnie,
I see Genode as a framework for building single purpose operating systems (which is to narrow) and I find it is very nice, that you can reuse code from one platform to another.
Different platforms have different features and with Genode you can easily share code between platforms.
And it is also great for experimentation, it helps to switch to another kernel for debugging for some reason. I find it insightful.
I haven't used it very long, so my vision is probably somewhat superficial.
Greets,
Edgar
On Fri, Dec 13, 2013 at 2:22 PM, Lonnie Cumberland < lonnie@...218...> wrote:
Greetings All,
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.
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.
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?
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, ....
Can someone please clarify this for me?
Kind Regards and have a great day my friends, Lonnie
< CONFIDENTIALITY NOTICE > The information contained in this communication is confidential and is intended only for the use of the recipient named above, and may be legally privileged and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, please resend to sender and delete the original from your computer system. You are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. Opinions, conclusions and other information in this message that do not relate to our official business should be understood as neither given nor endorsed.
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
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.
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
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.
Best regards Norman
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
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
On Wed, 18 Dec 2013 16:13:13 +0100 Norman Feske (NF) wrote:
NF> The lack of performance and scalability is possibly the most unfortunate NF> stigmata attached to microkernel technology. However, there exists a NF> series of evidence (in particular coming from the L4 research community) NF> that repeatedly debunked this universal truth. A few references: NF> NF> [...] NF> NF> The NOVA microhypervisor [2] shows how a microkernel-based hypervisor NF> actually outperforms virtualization solutions based on monolithic NF> architectures.
Moreover, a recently completed diploma thesis by Markus Partheymüller shows that Linux in a VM on top of NOVA scales just as good as on bare hardware.
The thesis is available from hypervisor.org as well, which is the place where I intend to keep all NOVA-related documentation in a single location.
- Udo
On Sun, 15 Dec 2013 15:11:28 -0500 Lonnie Cumberland (LC) wrote:
LC> It would be nice to see a demo of the latest Genode and perhaps as simple LC> install system so that it can be installed easily on to real harddisks or LC> perhaps in virtualbox VM for further testing and developing.
Just a small thing to keep in mind: If you run NOVA+Genode in a VM on top of another hypervisor, e.g. VirtualBox or KVM, you depend on those other hypervisors implementing nested virtualization correctly. At least for KVM this has historically not always been the case.
- Udo
On Wed, Dec 18, 2013 at 6:24 PM, Udo Steinberg <udo@...121...> wrote:
On Wed, 18 Dec 2013 16:13:13 +0100 Norman Feske (NF) wrote:
NF> The lack of performance and scalability is possibly the most unfortunate NF> stigmata attached to microkernel technology. However, there exists a NF> series of evidence (in particular coming from the L4 research community) NF> that repeatedly debunked this universal truth. A few references: NF> NF> [...] NF> NF> The NOVA microhypervisor [2] shows how a microkernel-based hypervisor NF> actually outperforms virtualization solutions based on monolithic NF> architectures.
Moreover, a recently completed diploma thesis by Markus Partheymüller shows that Linux in a VM on top of NOVA scales just as good as on bare hardware.
That is absolutely wonderful to hear as I really like NOVA and Genode a lot as I learn more and more about them.
Will you be posting an ISO of the project?
I have tried the past livecd of NOVA 0.3 that is using Tiny Core Linux in a small VM, but what I would like to get worked out is NOVA with one VM running a much larger Linux LiveCD (perhaps Debian or Ubuntu, etc..), another VM possibly running ReactOS (just for testing of the VM) and a third VM possibly with Genode as in their dated demo.
I am still figuring out NRE (which I have been able to compile) and have been looking at NUL to try and see what it might take to develop a VM that could run a "semi-windows" environment like ReactOS initially as the goal would be to possibly run some version of Windows in a VM instead of ReactOS which is really not useful at this stage. Is these (NOVA with Genode, Debian/Ubuntu Linux, and Windows (ie. ReactOS perhaps for testing.) is possible then I can start to see how to modify and develop the VM's that I need for my distributed VM cluster although there is still much to learn about NOVA and Genode during this learning curve.
The thesis is available from hypervisor.org as well, which is the place where I intend to keep all NOVA-related documentation in a single location.
I am grabbing the thesis documents now so that I can get a better feel for NOVA and will be doing the same for Genode.
Great job and I am looking forward to seeing these project progress.
Cheers, Lonnie
- Udo
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
On Wed, 18 Dec 2013 19:29:35 -0500 Lonnie Cumberland (LC) wrote:
LC> Will you be posting an ISO of the project?
We used to provide ISO images of NOVA+NUL in the past when no other combination was available. Nowadays you can run NOVA with NUL, NRE and Genode and Genode with a bunch of other kernels besides NOVA, so providing an ISO image for all the different combinations is not practical.
I would suggest to compile your desired combination of projects from source code and then use "mkisofs" to build your own ISO image.
LC> I have tried the past livecd of NOVA 0.3 that is using Tiny Core Linux in a LC> small VM, but what I would like to get worked out is NOVA with one VM LC> running a much larger Linux LiveCD (perhaps Debian or Ubuntu, etc..), LC> another VM possibly running ReactOS (just for testing of the VM) and a LC> third VM possibly with Genode as in their dated demo.
I'm not sure why you would want to run Genode in a VM on top of NOVA. Genode can run directly on top of NOVA without the need for virtualization.
LC> I am still figuring out NRE (which I have been able to compile) and have LC> been looking at NUL to try and see what it might take to develop a VM that LC> could run a "semi-windows" environment like ReactOS initially as the goal LC> would be to possibly run some version of Windows in a VM instead of ReactOS LC> which is really not useful at this stage. Is these (NOVA with Genode, LC> Debian/Ubuntu Linux, and Windows (ie. ReactOS perhaps for testing.) is LC> possible then I can start to see how to modify and develop the VM's that I LC> need for my distributed VM cluster although there is still much to learn LC> about NOVA and Genode during this learning curve.
It's probably a good idea to try out the 3 different NOVA user-level frameworks (NUL, NRE, Genode) to see which one is best for your purposes. If you need help making a decision, it may be useful to post a list of requirements or a bunch of questions to this mailing list.
Cheers, Udo
On Thu, Dec 19, 2013 at 5:29 PM, Udo Steinberg <udo@...121...> wrote:
On Wed, 18 Dec 2013 19:29:35 -0500 Lonnie Cumberland (LC) wrote:
LC> Will you be posting an ISO of the project?
We used to provide ISO images of NOVA+NUL in the past when no other combination was available. Nowadays you can run NOVA with NUL, NRE and Genode and Genode with a bunch of other kernels besides NOVA, so providing an ISO image for all the different combinations is not practical.
I would suggest to compile your desired combination of projects from source code and then use "mkisofs" to build your own ISO image.
I was actually looking into this as well but have not, as of yet completed the builds. This question yields from the thesis that you have on your hypervisor.org site which is about "*Adding SMP Support to a User-Level VMM http://hypervisor.org/thesis-partheymueller.pdf*" I think thast SMP support is vital to make NOVA a success but was not sure if it had been implemented in the latest GIT code.
If I understand the connections thus far, NOVA is just the "Type 1" hypervisor that provides Protection Domains, Executions Context, Scheduling Context, Portal, and Semaphore services at Ring 0, while NUL (the original VMM) & NRE (the successor but less mature VMM) provide the VMM for the guest OS's (ie... Linux, etc...)
On the other hand, Genode is a OS framework for a microkernel that can be compiled against various existing OS's to allow for an compatibility interface to the Genode microkernel thus allowing legacy OS's like Linux to run native applications on the Genode microkernel instead of the standard existing monolithic kernels.
On the NOVA side, I have been trying to determine the best combination:
NOVA + NRE or NOVA + NUL
which will allow me to run a more complex version of Linux like Debian or Ubuntu in a VM, but I am not currently sure if either the NRE or NUL VMM can support this type of configuration in that drivers may not yet be available in either VMM.
Additionally, I am wanting to work toward seeing if I can get, or see, a Windows VM running under one of the VMM's (NRE or NUL) as I would basically like to see windows and linux VM's running concurrently under NOVA or possible bootable as on your older NOVA 0.3 demo iso.
LC> I have tried the past livecd of NOVA 0.3 that is using Tiny Core Linux
in a LC> small VM, but what I would like to get worked out is NOVA with one VM LC> running a much larger Linux LiveCD (perhaps Debian or Ubuntu, etc..), LC> another VM possibly running ReactOS (just for testing of the VM) and a LC> third VM possibly with Genode as in their dated demo.
I'm not sure why you would want to run Genode in a VM on top of NOVA. Genode can run directly on top of NOVA without the need for virtualization.
I am still trying to get a good feel for Genode, but I really think that a solid micorkernel based distribution would be a very successful distribution.
I was able to run the "Genode Live CD 10.11" which is a bit outdated, but really liked what I saw and would like to see a new "Genode Live CD 13.11" to show off similar functionality as the older one. Additionally, I think that Genode could make a GREAT independent distribution given the security advances and very nice construction that has gone into both Genode and NOVA for which I really do commend everyone who has been working on these outstanding projects.
Playing with a number of ideas on that side of things, I think that a good Genode distribution compiled against the Linux kernel could compete with native monolithic Linux distributions like Debian, Centos and Ubuntu since Genode has many better features given its design.
LC> I am still figuring out NRE (which I have been able to compile) and have LC> been looking at NUL to try and see what it might take to develop a VM that LC> could run a "semi-windows" environment like ReactOS initially as the goal LC> would be to possibly run some version of Windows in a VM instead of ReactOS LC> which is really not useful at this stage. Is these (NOVA with Genode, LC> Debian/Ubuntu Linux, and Windows (ie. ReactOS perhaps for testing.) is LC> possible then I can start to see how to modify and develop the VM's that I LC> need for my distributed VM cluster although there is still much to learn LC> about NOVA and Genode during this learning curve.
It's probably a good idea to try out the 3 different NOVA user-level frameworks (NUL, NRE, Genode) to see which one is best for your purposes. If you need help making a decision, it may be useful to post a list of requirements or a bunch of questions to this mailing list.
To sum up what I want to do is spread into 2 projects:
1. Take the NOVA + (NUL or NRE) and have it be able to run in one VMM a current Linux distribution like Debian, Centos, or Ubuntu VM. And, in another VMM have it run a Windows version. From that point once it is working, I will start to work on the next steps towards a distributed cluster version. I am trying to determine if NRE has all of the same capabilities as NUL. If so, then I will use NRE.
2. Take the Genode Live CD 13.11, once it comes out as a starting point and slowly evolve it into a solid and completely independent OS distribution that can compete with other Linux distributions like Debian, Centos, and Ubuntu as well as run the same applications but only on Genode. I think that the microkernel approach that is being used by Genode offers significant security advantages over current monolithic kernel distributions as well and seems to have many more advantages from what I have seen thus far.
Although, I am still a bit new to both of these code bases, I really like what I have seen in the way that you have coded these projects as well as the efficiency that is built into each project.
Thanks again for taking the time to answer my naive questions that I should evolve over time as I gain a better understanding of both NOVA and Genode. Lonnie
PS) I hope that everyone has a Veryy Merry Christmas and Happy New Year.
Cheers,
Udo
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
Hello Lonnie,
On the NOVA side, I have been trying to determine the best combination:
NOVA + NRE or NOVA + NUL
alternatively, you can use Genode directly on NOVA without the need for NRE or NUL. It is also possible to run virtual machines on top of NOVA + Genode. All three variants (NUL, NRE, and Genode) use the same user-level virtual machine monitor (VMM) called Seoul (formerly called Vancouver).
For Genode, you can find the Seoul VMM at 'ports/src/vancouver/'. The actual Seoul 3rd-party code can be downloaded by issuing the following command from within Genode's 'ports/' repository:
make prepare PKG=seoul
You will also need to download the C runtime as needed by Seoul and the x86emu needed by the VESA graphics driver. This can be done by changing to the 'libports/' repository and issuing the following command:
make prepare PKG="x86emu libc"
You can try out Linux running on NOVA + Genode using the ready-to-use run scripts at 'ports/run/seoul-*'. For example, to see a graphical Linux desktop on top of NOVA + Genode, execute the following command from within your build directory. Please make sure to have the 'libports' and 'ports' repositories enabled in the 'etc/build.conf' file of your build directory.
make run/seoul-fancy
By default, the build system will try to run the resulting boot image in Qemu, which is extremely slow (Qemu executes NOVA, which executes Genode, which executes Seoul, which executes Linux). But you can write the corresponding ISO image to a USB stick and boot it on a real machine. The machine must have VT enabled in the BIOS.
dd if=var/run/seoul-fancy.iso of=/dev/your_usb_stick_device bs=1M
The scenario will show Genode's launchpad, where you can start a virtual machine by clicking on the blue text labeled "init". A new window will appear with Tinycore Linux booting. Given that your machine is connected to the internet (and a DHCP server is running on your network), you can even browse the net using Firefox.
You can start a second Linux instance by clicking on the "init" button again.
In this scenario, each virtual machine is just a regular node of Genode's process tree, subjected to the same rigid security regime as in effect for all processes of the Genode system.
I wish you a lot of fun with exploring the possibilities. All the best and happy New Year!
Norman
Greetings Norman
I hope that your holidays are going well.
I have been able, with the help of your wonderful guidance, to get the seoul-fancy booted with Genode and the launchpad to show.
On the launchpad, there was only a "testinit" link in blue but it only opened a blank window and did not boot tinycore-linux for some reason.
dd if=var/run/seoul-fancy.iso of=/dev/your_usb_stick_device bs=1M
The scenario will show Genode's launchpad, where you can start a virtual machine by clicking on the blue text labeled "init". A new window will appear with Tinycore Linux booting. Given that your machine is connected to the internet (and a DHCP server is running on your network), you can even browse the net using Firefox.
You can start a second Linux instance by clicking on the "init" button again.
Additionally, I have not been able to locate the seoul-fancy.iso yet, although I am guessing that the "make run/seoul-fancy" creates the iso and pipes it through qemu.
In this scenario, each virtual machine is just a regular node of Genode's process tree, subjected to the same rigid security regime as in effect for all processes of the Genode system.
One thing that I did like in the NOVA demo v0.3 livecd was the base interface. On that demo (NUL 2011.2), it showed, in a text screen, something like:
--------------------------------------------------------------------------------------------- NUL 2011.2
LWin+<arrow> navigates between screens .....
+--------------+ 2 | boot | +--------------+
+--------------+ +----------+ 1 | HV | | VM | +--------------+ +----------+
+--------------+ +==========+ +----------+ 0 | Manager | | Tutorial | | VMM | +--------------+ +==========+ +----------+ 0 1 2
---------------------------------------------------------------------------------------------
with this scenario I can just use the "LWin+<arrow> or LWin+<F1-F12> to navigate the the VMM of interest and start a VM as needed. This approach lets me flip to the desired NUL "console" which I think is very nice for what I would like to accomplish initially.
What I would like to have is the something like this but using Genode instead with perhaps something similar to the launchpad.
I think that I am off to a great start and will continue to investigate Genode and NOVA as they very exciting and offer a lot of possibilities.
Greetings Norman.
I have actually just gotten the "make run/seoul-fancy" to complete.
It seems that the seoul-fancy.run script is missing:
./home/lonnie/genode/ports/run/seoul-fancy.run: No such file or directory
--------------------------------------------------------- lonnie@...223...:~/genode/build.lx$ make run/seoul-fancy using run script /home/lonnie/genode/base-linux/run/env using run script /home/lonnie/genode/ports/run/seoul-fancy.run Download file bin/munich Download file bin/bzImage-3.1 Download file bin/tc-browser.gz
Seoul is solely supported on NOVA. ---------------------------------------------------------
Any ideas?
Kind Regards and have a great day,
Hi,
although I'm not Norman, I'd like to give an answer ;-)
On 12/24/2013 04:44 PM, Lonnie Cumberland wrote:
Greetings Norman.
I have actually just gotten the "make run/seoul-fancy" to complete.
It seems that the seoul-fancy.run script is missing:
./home/lonnie/genode/ports/run/seoul-fancy.run: No such file or directory
well obviously the run script isn't missing, otherwise you wouldn't get the output stated below. If you take a look at current the current master branch in Genode's repository, the script is located at "ports/run/seoul-fancy.run":
https://github.com/genodelabs/genode/blob/master/ports/run/seoul-fancy.run
lonnie@...223...:~/genode/build.lx$ make run/seoul-fancy using run script /home/lonnie/genode/base-linux/run/env using run script /home/lonnie/genode/ports/run/seoul-fancy.run Download file bin/munich Download file bin/bzImage-3.1 Download file bin/tc-browser.gz
Seoul is solely supported on NOVA.
Any ideas?
Well, the run script clearly states what's going wrong. Seoul currently can be built for Genode on top of NOVA only. It seems you're trying to compile it for another base platform. Assuming your build directory's name "build.lx" was choosen with intent, you're trying to compile it for Genode on top of Linux, which isn't possible. Just change to your NOVA build directory, or create it in the first place, and try it again.
Regards & merry X-mas Stefan
Kind Regards and have a great day,
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
Greetings Stefan,
I have stared back from scratch on rebuilding Genode on Nova and made it to this:
lonnie@...223...:~/genode/nova64$ make run/seoul-fancy using run script /home/lonnie/genode/base-nova/run/env using run script /home/lonnie/genode/ports/run/seoul-fancy.run building targets: core init drivers/timer drivers/rtc vancouver drivers/pci drivers/input drivers/acpi drivers/pci/device_pd drivers/nic server/nic_bridge drivers/framebuffer server/nitpicker server/liquid_framebuffer app/launchpad server/nitlog spawn make core init drivers/timer drivers/rtc vancouver drivers/pci drivers/input drivers/acpi drivers/pci/device_pd drivers/nic server/nic_bridge drivers/framebuffer server/nitpicker server/liquid_framebuffer app/launchpad server/nitlog make[1]: Entering directory `/home/lonnie/genode/nova64' checking library dependencies... Skip target drivers/framebuffer/exynos5 because it requires exynos5 Skip target drivers/framebuffer/imx53 because it requires imx53 Skip target drivers/framebuffer/omap4 because it requires omap4 Skip target drivers/framebuffer/pl11x/pbxa9 because it requires pl11x platform_pbxa9 Skip target drivers/framebuffer/pl11x/vea9x4 because it requires pl11x platform_vea9x4 Skip target drivers/framebuffer/pl11x/vpb926 because it requires pl11x platform_vpb926 Skip target drivers/framebuffer/rpi because it requires platform_rpi Skip target drivers/framebuffer/sdl because it requires linux sdl Skip target drivers/input/imx53 because it requires imx53 Skip target drivers/input/ps2/pl050 because it requires pl050 Skip target drivers/nic/lan9118 because it requires lan9118 Skip target drivers/nic/linux because it requires linux Skip target vancouver/32bit because it requires 32bit Library platform MERGE platform.lib.a Library cxx COMPILE exception.o COMPILE guard.o COMPILE malloc_free.o COMPILE misc.o COMPILE new_delete.o COMPILE unwind.o MERGE supc++.o CONVERT supc++.o MERGE cxx.lib.a Library syscall . . .
Library seoul_libc_support MERGE seoul_libc_support.lib.a /usr/local/genode-gcc/bin/genode-x86-ar: gen/errno.o: No such file or directory make[3]: *** [seoul_libc_support.lib.a] Error 1 make[2]: *** [seoul_libc_support.lib] Error 2 make[1]: *** [gen_deps_and_build_targets] Error 2 make[1]: Leaving directory `/home/lonnie/genode/nova64' Error: Genode build failed make: *** [run/seoul-fancy] Error 252 lonnie@...223...:~/genode/nova64$
Looks like I am getting closer. My build directory is called "nova64"
I also installed the latest pre-compiled toolchain " genode-toolchain-12.11-x86_64.tar.bz2http://sourceforge.net/projects/genode/files/genode-toolchain/12.11/genode-toolchain-12.11-x86_64.tar.bz2/download "
Well, the run script clearly states what's going wrong. Seoul currently can be built for Genode on top of NOVA only. It seems you're trying to compile it for another base platform. Assuming your build directory's name "build.lx" was choosen with intent, you're trying to compile it for Genode on top of Linux, which isn't possible. Just change to your NOVA build directory, or create it in the first place, and try it again.
Regards & merry X-mas Stefan
Thanks for the clarification on this part of the build as I do understand it now a little better.
Merry Christmas...... Lonnie
Hello,
On 25.12.2013 17:08, Lonnie Cumberland wrote:
Library seoul_libc_support MERGE seoul_libc_support.lib.a /usr/local/genode-gcc/bin/genode-x86-ar: gen/errno.o: No such file or directory make[3]: *** [seoul_libc_support.lib.a] Error 1 make[2]: *** [seoul_libc_support.lib] Error 2 make[1]: *** [gen_deps_and_build_targets] Error 2 make[1]: Leaving directory `/home/lonnie/genode/nova64'
it looks like that you forgot to prepare the 3rd-party libc sources.
You will also need to download the C runtime as needed by Seoul and the x86emu needed by the VESA graphics driver. This can be done by changing to the 'libports/' repository and issuing the following command:
make prepare PKG="x86emu libc"
Regards,
Alexander Boettcher.