Discussion:
Now: Understanding Muen and base_hw kernel from docs, [Earlier] Re: Problem with make run/demo ....
Shahbaz khan
2017-04-14 19:13:24 UTC
Permalink
I've been wondering, is there any reason not to use base-hw_x86_64_muen on
regular hardware? It seems to work fine in Qemu, and
Release notes mention Thinkpad X201.Muen website makes me cautious but if
Qemu works then we are good for a start. Have your tried virtualbox?

So bochs is not mandatory.
almost all Genode drivers are in userspace. Is there some limitation that
I'm not aware of?
Well anything is easily possible with micro-kernel architecture in concept
but I was curious whether we run base_hw kernel that is muen according to
mainline repo's files.
The diagram from release notes depict base_hw kernel on Muen SK. It still
does not make sense to me. I will have to look later as I am working on
some basic presentation on Muen and genode for some prospects.
On Wed, Apr 5, 2017 at 2:36 PM, Christian Helmuth <
I have started working with Genode, while I am interested in foc based
development and it seems the Genode efforts also prefer foc as I have
been
trying run/demo for builds.
I would not go along with telling that we "prefer" base-foc as most of
our scenarios run on all supported kernels. Prominent exceptions are
support for hardware virtualization (only on NOVA and hw/Muen) and
TrustZone (hw only). If you address ARM and x86 alike I'd suggest you
try out base-hw.
I got a bit acquainted with the release notes but I still find it
difficult to comprehend what really base-hw means when we say "Genode base
-hw" on Muen SK.
I am having some build issues (I do get an image.elf but build does not
complete) and have yet not looked into earlier commits and branches so I
would appreciate if you can let me know what actually runs over Muen SK in
Genode base-hw kernel VM. Does it mean we run another kernel like nova
between Muen and virtualbox.
I really like the idea but if we have another kernel below virtualbox
than why not run virtualbox on Muen as a subject? I am unable to criticize
clearly due to the mentioned confusion.
Thanks.
Regards,
Shahbaz
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Shahbaz Khan
Norman Feske
2017-04-15 08:16:46 UTC
Permalink
Hello Shahbaz,
I've been wondering, is there any reason not to use
base-hw_x86_64_muen on regular hardware? It seems to work fine in
Qemu, and
Release notes mention Thinkpad X201.Muen website makes me cautious but
if Qemu works then we are good for a start. Have your tried virtualbox?
Muen relies on hardware-assisted virtualization (Intel-VT). For running
it inside a virtual machine, the virtual machine must support nested
virtualization. As far as I known, VirtualBox does not support that.
Well anything is easily possible with micro-kernel architecture in
concept but I was curious whether we run base_hw kernel that is muen
according to mainline repo's files.
Let me try to clarify the roles of Muen, base-hw, and VirtualBox:

* Muen is a static separation kernel that uses VT to turn one physical
machine into a statically configured number of "partitions" (aka
"subjects"). Each partition is similar to a virtual machine. So
partitions are rather coarse-grained and static. Muen runs in
VT-root mode whereas the partitions run on VT-non-root mode.

* Base-HW is a microkernel that uses virtual memory (like page tables)
to establish the notion of sandboxed user-level components on top
of it. Those components are light-weight and dynamic. To draw an
analogy, if you imaging a Muen subject to be a virtual machine, you
may think of a Genode component as an OS process. The base-hw kernel
runs in kernel mode whereas the components run in user mode.

* VirtualBox is both a low-level piece of software that closely
interacts with virtualization hardware, but also a sophisticated
user-level application that relies on broad higher-level OS
infrastructure. E.g., it expects the underlying operating system
to provide host device drivers (for graphics, networking, input,
audio, block devices, USB), it needs to accesses virtual disk images
via an OS-provided file system, it spawns multiple threads, etc.

The role of Genode (including base-hw) in this scenario is to bridge the
gap between the rather spartan environment of a Muen subject and the
high functional requirements of the VirtualBox application. So you may
see Genode as a mere runtime environment for VirtualBox. In principle,
this gap could be filled by another software stack like a Linux-based
OS. But as I stated above, in addition to being a complex application,
VirtualBox closely interacts with the virtualization hardware. On Muen,
this interaction naturally has to go through the Muen SK. By using
Genode as runtime for VirtualBox, Muen is able to leverage Genode's
existing solution of the interaction of VirtualBox with a
microkernel-based virtualization mechanism.
I got a bit acquainted with the release notes but I still find
it difficult to comprehend what really base-hw means when we say
"Genode base -hw" on Muen SK.
Conceptually, a Muen partition is a hardware platform, similar to a
board. Like on any board, you can run software directly (in supervisor
mode). But for running a complex software stack, or more than one
application, one has to use an operating system (OS). Genode/base-hw
plays this role.
I am having some build issues (I do get an image.elf but build
does not complete) and have yet not looked into earlier commits
and branches so I would appreciate if you can let me know what
actually runs over Muen SK in Genode base-hw kernel VM. Does it
mean we run another kernel like nova between Muen and virtualbox.
Base-HW is unrelated to NOVA or any of the other kernels. It is a
microkernel specifically developed for and tightly integrated with
Genode. Think of it as an optional back end of Genode to run
Genode-based systems directly on hardware (or virtual hardware like a
Muen partition) without a third-party kernel.

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
Shahbaz khan
2017-04-17 17:53:00 UTC
Permalink
Thank you for your detailed and caring reply. I believe i got lost with the
build think diagram. The diagram is not purely a runtime diagram.
Post by Norman Feske
Hello Shahbaz,
I've been wondering, is there any reason not to use
base-hw_x86_64_muen on regular hardware? It seems to work fine in
Qemu, and
Release notes mention Thinkpad X201.Muen website makes me cautious but
if Qemu works then we are good for a start. Have your tried virtualbox?
Muen relies on hardware-assisted virtualization (Intel-VT). For running
it inside a virtual machine, the virtual machine must support nested
virtualization. As far as I known, VirtualBox does not support that.
Good to know in time.
Post by Norman Feske
Well anything is easily possible with micro-kernel architecture in
concept but I was curious whether we run base_hw kernel that is muen
according to mainline repo's files.
* Muen is a static separation kernel that uses VT to turn one physical
machine into a statically configured number of "partitions" (aka
"subjects"). Each partition is similar to a virtual machine. So
partitions are rather coarse-grained and static. Muen runs in
VT-root mode whereas the partitions run on VT-non-root mode.
* Base-HW is a microkernel that uses virtual memory (like page tables)
to establish the notion of sandboxed user-level components on top
of it. Those components are light-weight and dynamic. To draw an
analogy, if you imaging a Muen subject to be a virtual machine, you
may think of a Genode component as an OS process. The base-hw kernel
runs in kernel mode whereas the components run in user mode.
* VirtualBox is both a low-level piece of software that closely
interacts with virtualization hardware, but also a sophisticated
user-level application that relies on broad higher-level OS
infrastructure. E.g., it expects the underlying operating system
to provide host device drivers (for graphics, networking, input,
audio, block devices, USB), it needs to accesses virtual disk images
via an OS-provided file system, it spawns multiple threads, etc.
The role of Genode (including base-hw) in this scenario is to bridge the
Post by Norman Feske
gap between the rather spartan environment of a Muen subject and the
high functional requirements of the VirtualBox application. So you may
see Genode as a mere runtime environment for VirtualBox. In principle,
this gap could be filled by another software stack like a Linux-based
OS. But as I stated above, in addition to being a complex application,
VirtualBox closely interacts with the virtualization hardware. On Muen,
this interaction naturally has to go through the Muen SK. By using
Genode as runtime for VirtualBox, Muen is able to leverage Genode's
existing solution of the interaction of VirtualBox with a
microkernel-based virtualization mechanism.
Similar to karma-vmm, fiasco.oc and l4linux.
Post by Norman Feske
I got a bit acquainted with the release notes but I still find
it difficult to comprehend what really base-hw means when we say
"Genode base -hw" on Muen SK.
Conceptually, a Muen partition is a hardware platform, similar to a
board. Like on any board, you can run software directly (in supervisor
mode). But for running a complex software stack, or more than one
application, one has to use an operating system (OS). Genode/base-hw
plays this role.
Simply put a build time think. Base-hw kernel means muen sk for genode
runtime.
Post by Norman Feske
I am having some build issues (I do get an image.elf but build
does not complete) and have yet not looked into earlier commits
and branches so I would appreciate if you can let me know what
actually runs over Muen SK in Genode base-hw kernel VM. Does it
mean we run another kernel like nova between Muen and virtualbox.
Base-HW is unrelated to NOVA or any of the other kernels. It is a
microkernel specifically developed for and tightly integrated with
Genode. Think of it as an optional back end of Genode to run
Genode-based systems directly on hardware (or virtual hardware like a
Muen partition) without a third-party kernel.
By the way it seems fiasco.oc is not being maintained. Is something better
available, which supports both micrkernel based runtime and
virtualization..?

Regards,
Shahbaz
--
Shahbaz Khan
Norman Feske
2017-04-18 10:12:35 UTC
Permalink
Hello Shahbaz,

based on your response, I am afraid that you slightly misinterpreted my
explanation attempt.
Post by Norman Feske
VirtualBox closely interacts with the virtualization hardware. On Muen,
this interaction naturally has to go through the Muen SK. By using
Genode as runtime for VirtualBox, Muen is able to leverage Genode's
existing solution of the interaction of VirtualBox with a
microkernel-based virtualization mechanism.
Similar to karma-vmm, fiasco.oc and l4linux.
I don't see the connection. My email was not related to Fiasco.OC,
Karma, or L4Linux.
Post by Norman Feske
Conceptually, a Muen partition is a hardware platform, similar to a
board. Like on any board, you can run software directly (in supervisor
mode). But for running a complex software stack, or more than one
application, one has to use an operating system (OS). Genode/base-hw
plays this role.
Simply put a build time think. Base-hw kernel means muen sk for genode
runtime.
Muen can be used without base-hw.

Base-hw can be used without Muen.

But when combined, Genode's version of VirtualBox can run on top of Muen.
Post by Norman Feske
Base-HW is unrelated to NOVA or any of the other kernels. It is a
microkernel specifically developed for and tightly integrated with
Genode. Think of it as an optional back end of Genode to run
Genode-based systems directly on hardware (or virtual hardware like a
Muen partition) without a third-party kernel.
By the way it seems fiasco.oc is not being maintained. Is something
better available, which supports both micrkernel based runtime and
virtualization..?
At Genode Labs, we primarily focus on NOVA, base-hw, and seL4. All these
kernels are third-generation modern microkernels [1]. For using Genode
on x86 PC hardware, NOVA is the best way to go right now.

Genode is also able to run on Fiasco.OC but we don't actively facilitate
it. E.g., we dropped the support for L4Linux (Fiasco.OC-specific
paravirtualized Linux) earlier this year [2].

[1] https://en.wikipedia.org/wiki/Microkernel#Third_generation
[2] https://github.com/genodelabs/genode/issues/2216

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
Shahbaz khan
2017-04-18 17:50:08 UTC
Permalink
Dear Norman,
Post by Norman Feske
Post by Norman Feske
VirtualBox closely interacts with the virtualization hardware. On
Muen,
Post by Norman Feske
this interaction naturally has to go through the Muen SK. By using
Genode as runtime for VirtualBox, Muen is able to leverage Genode's
existing solution of the interaction of VirtualBox with a
microkernel-based virtualization mechanism.
Similar to karma-vmm, fiasco.oc and l4linux.
I don't see the connection. My email was not related to Fiasco.OC,
Karma, or L4Linux.
I think I got the problem. Muen subject is not a subject like that of an OS.
Post by Norman Feske
Post by Norman Feske
Conceptually, a Muen partition is a hardware platform, similar to a
board. Like on any board, you can run software directly (in
supervisor
Post by Norman Feske
mode). But for running a complex software stack, or more than one
application, one has to use an operating system (OS). Genode/base-hw
plays this role.
Simply put a build time think. Base-hw kernel means muen sk for genode
runtime.
Muen can be used without base-hw.
Base-hw can be used without Muen.
Second problem in my mind would be imagining the spartan environment
provided by Muen to be fulfilled with Genode runtime minus microkernel.
This would be as follows.

Base-HW is a microkernel as you mentioned earlier. Like a layman I ask the
name of this microkernel. Is it Nova? Again to my preliminary question ...
we run a micro-kernel on microkernel to run virtualbox rather than
virtualbox on Muen SK.
Post by Norman Feske
But when combined, Genode's version of VirtualBox can run on top of Muen.
Muen is a micro-hypervisor. What is the nature of inter-subject
communication? Considering we don't like pure hypervisor approach.

I liked Nova's architecture much more and I would opt for Nova if formal
verification could be as simple for it as in Muen. And the luxury of C++
too.


Regards,
Shahbaz
Nobody III
2017-04-18 18:44:29 UTC
Permalink
By the way, NOVA doesn't seem to be maintained anymore, except a bit by
Genode developers. Is this observation correct?
Post by Shahbaz khan
Dear Norman,
Post by Norman Feske
Post by Norman Feske
VirtualBox closely interacts with the virtualization hardware. On
Muen,
Post by Norman Feske
this interaction naturally has to go through the Muen SK. By using
Genode as runtime for VirtualBox, Muen is able to leverage Genode's
existing solution of the interaction of VirtualBox with a
microkernel-based virtualization mechanism.
Similar to karma-vmm, fiasco.oc and l4linux.
I don't see the connection. My email was not related to Fiasco.OC,
Karma, or L4Linux.
I think I got the problem. Muen subject is not a subject like that of an OS.
Post by Norman Feske
Post by Norman Feske
Conceptually, a Muen partition is a hardware platform, similar to a
board. Like on any board, you can run software directly (in
supervisor
Post by Norman Feske
mode). But for running a complex software stack, or more than one
application, one has to use an operating system (OS). Genode/base-hw
plays this role.
Simply put a build time think. Base-hw kernel means muen sk for genode
runtime.
Muen can be used without base-hw.
Base-hw can be used without Muen.
Second problem in my mind would be imagining the spartan environment
provided by Muen to be fulfilled with Genode runtime minus microkernel.
This would be as follows.
Base-HW is a microkernel as you mentioned earlier. Like a layman I ask the
name of this microkernel. Is it Nova? Again to my preliminary question ...
we run a micro-kernel on microkernel to run virtualbox rather than
virtualbox on Muen SK.
Post by Norman Feske
But when combined, Genode's version of VirtualBox can run on top of Muen.
Muen is a micro-hypervisor. What is the nature of inter-subject
communication? Considering we don't like pure hypervisor approach.
I liked Nova's architecture much more and I would opt for Nova if formal
verification could be as simple for it as in Muen. And the luxury of C++
too.
Regards,
Shahbaz
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
Alexander Boettcher
2017-04-19 08:33:05 UTC
Permalink
Hi,
Post by Nobody III
By the way, NOVA doesn't seem to be maintained anymore, except a bit by
Genode developers. Is this observation correct?
the version of NOVA shipped with Genode is very well maintained. This
kernel derivate (compared to the original version of the original
author) got extended by various features (read the Genode book) which
are essential to run smoothly with Genode. Calling this a 'bit' is
plainly wrong. Maybe we don't advertise it all over the day, but it is
the kernel with the best/most supported feature set on Genode/x86.

Cheers,
--
Alexander Boettcher
Genode Labs

http://www.genode-labs.com - http://www.genode.org

Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Loading...