users Digest, Vol 41, Issue 8

Sid Agrawal siagraw at cs.ubc.ca
Tue Sep 28 22:26:49 CEST 2021


Hi Uwe,
Some comment inline about clone() in Linux.

On Wed, Sep 22, 2021 at 11:39 PM <users-request at lists.genode.org> wrote:

> [CAUTION: Non-UBC Email]
>
> Send users mailing list submissions to
>         users at lists.genode.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://lists.genode.org/listinfo/users
> or, via email, send a message with subject or body 'help' to
>         users-request at lists.genode.org
>
> You can reach the person managing the list at
>         users-owner at lists.genode.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of users digest..."
>
>
> Today's Topics:
>
>    1. Getting Started with Genode (Sid Agrawal)
>    2. Aw: Getting Started with Genode (Uwe)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 22 Sep 2021 16:04:28 -0700
> From: Sid Agrawal <siagraw at cs.ubc.ca>
> To: users at lists.genode.org
> Subject: Getting Started with Genode
> Message-ID:
>         <CA+F2VKa1+d-217PQ+BwjYb=
> ssj+eTatXjL2nt8E-LR-7tkMuTQ at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hi Genodians,
> I am a graduate student at the University of British Columbia with
> their Systopia
> Lab <http://systopia.cs.ubc.ca/>. My research area is operating systems,
> and I would like to use Genode(with seL4) as the OS platform for
> demonstrating my research ideas. As with starting with a new platform I
> have run into some hurdles. At the end I have given a summary of my
> research project, which is still in a nascent stage.
>
>
>    - *Running the hello_tutorial*: the hello_tutorial job on qemu does not
>    finish to completing and times out. Below are my steps on ubuntu
> 20.04.1. I
>    am using the Genode development container
>    <https://genodians.org/skalk/2020-09-29-docker-devel>, so the tools
>    should not an issue. I also tried it outside the container.
>
> git clone git://github.com/genodelabs/genode.git
> cd genode
> tool/ports/prepare_port sel4
> tool/ports/prepare_port grub2
> tool/create_builddir x86_64
>
> cd x86_64/build/
> # Change build/x86_64/etc/build.conf.
> # Change kernel to sel4 and add hello_tutorial
> diff etc/build.conf.old etc/build.conf
>
> 20c20
>
> < #KERNEL ?= nova
>
> ---
>
> > KERNEL ?= sel4
>
> 85a86
>
> > REPOSITORIES += $(GENODE_DIR)/repos/hello_tutorial
>
> make
> make hello
> make run/hello # This times out as shown below.
>
> [init -> hello_server] creating root component [0m [0m
> [init -> hello_client] upgrading quota donation for PD session (0
> bytes, 4 caps)
> [0m [0m
> [init] child "hello_server" requests resources: cap_quota=3 [0m [0m
> [init] child "hello_client" requests resources: ram_quota=0, cap_quota=4
> [0m [0m
> Error: Test execution timed out
>
>
>
> Any comments on what I am doing wrong would be very helpful. Secondly, what
> would be the best way to go about debugging an issue like this.
>
>
>    - Summary of my research project
>    <https://sid-agrawal.ca/index.html#research-projects> on building
> "General
>    Purpose Isolation Mechanisms".
>
> After sixty years of operating system evolution, we continue to find new
> and different isolation mechanisms: threads, processes, containers, virtual
> machines, lightweight contexts. Even applications provide isolation
> mechanisms: a JVM is a user-level process that provides isolation units
> whose API is Java bytecodes; some browsers offer units of isolation between
> each browser tab.
>
> We ask whether we really need to have N different isolation mechanisms or,
> instead, we could develop a framework in which all these different
> mechanisms represent points on a continuum. If we could do that, then
> perhaps A) we could implement such a unified framework, and B) the
> framework might allow us to discover new and useful isolation mechanisms
> (that could be created seamlessly rather than requiring an entirely new
> implementation).
>
> The project has three main goals:
>
>
>    - Develop a theoretical model or framework to unify existing isolation
>       mechanisms.
>       - Identify novel points in the model that are useful.
>       - Implement the model in seL4.
>
> The Fig below shows how different access and isolation levels of memory can
> be used to construct different types of PD. The points along the Y-axis are
> building blocks of memory isolation. The points on the X-axis are different
> types of PD. A given PD can be constructed using different building
> blocks, which
> are represented as circles that intersect one or more blocks. Mapping these
> concepts to Genode,
>
> This is an evolving model, as we are still investigating:
>
>
>    - If the "Security and Performance Guarantees" across any two types of
>       PD can be compared.
>       - Should there be more building blocks on the Y-axis
>       - What novel types of PD can we come up by combining the different
>       building blocks
>
> [image: image]
>
>
> I am excited about building my project with Genode, the composability in
> its architecture make it well suited as platform to show unconventional OS
> ideas.
>
> Best,
> Sid
> sid-agrawal.ca
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> http://lists.genode.org/pipermail/users/attachments/20210922/343f70e8/attachment-0001.html
> >
>
> ------------------------------
>
> Message: 2
> Date: Thu, 23 Sep 2021 08:39:03 +0200
> From: Uwe <geno.de at public-files.de>
> To: users at lists.genode.org
> Subject: Aw: Getting Started with Genode
> Message-ID:
>
> <trinity-57cbd65a-0583-46f8-8910-68868e08d657-1632379143546 at 3c-app-gmx-bap45
> >
>
> Content-Type: text/plain; charset=UTF-8
>
> > Gesendet: Donnerstag, 23. September 2021 um 01:04 Uhr
> > Von: "Sid Agrawal" <siagraw at cs.ubc.ca>
> > An: users at lists.genode.org
> > Betreff: Getting Started with Genode
> >
> > Hi Genodians,
> > I am a graduate student at the University of British Columbia with
> > their Systopia
> > Lab <http://systopia.cs.ubc.ca/>. My research area is operating systems,
> > and I would like to use Genode(with seL4) as the OS platform for
> > demonstrating my research ideas. As with starting with a new platform I
> > have run into some hurdles. At the end I have given a summary of my
> > research project, which is still in a nascent stage.
> >
> >
> >    - *Running the hello_tutorial*: the hello_tutorial job on qemu does
> not
> >    finish to completing and times out. Below are my steps on ubuntu
> 20.04.1. I
> >    am using the Genode development container
> >    <https://genodians.org/skalk/2020-09-29-docker-devel>, so the tools
> >    should not an issue. I also tried it outside the container.
> >
> > git clone git://github.com/genodelabs/genode.git
> > cd genode
> > tool/ports/prepare_port sel4
> > tool/ports/prepare_port grub2
> > tool/create_builddir x86_64
> >
> > cd x86_64/build/
> > # Change build/x86_64/etc/build.conf.
> > # Change kernel to sel4 and add hello_tutorial
> > diff etc/build.conf.old etc/build.conf
> >
> > 20c20
> >
> > < #KERNEL ?= nova
> >
> > ---
> >
> > > KERNEL ?= sel4
> >
> > 85a86
> >
> > > REPOSITORIES += $(GENODE_DIR)/repos/hello_tutorial
> >
> > make
> > make hello
> > make run/hello # This times out as shown below.
> >
> > [init -> hello_server] creating root component [0m [0m
> > [init -> hello_client] upgrading quota donation for PD session (0
> > bytes, 4 caps)
> > [0m [0m
> > [init] child "hello_server" requests resources: cap_quota=3 [0m [0m
> > [init] child "hello_client" requests resources: ram_quota=0, cap_quota=4
> > [0m [0m
> > Error: Test execution timed out
> >
> >
> >
> > Any comments on what I am doing wrong would be very helpful. Secondly,
> what
> > would be the best way to go about debugging an issue like this.
> >
> >
> >    - Summary of my research project
> >    <https://sid-agrawal.ca/index.html#research-projects> on building
> "General
> >    Purpose Isolation Mechanisms".
> >
> > After sixty years of operating system evolution, we continue to find new
> > and different isolation mechanisms: threads, processes, containers,
> virtual
> > machines, lightweight contexts. Even applications provide isolation
> > mechanisms: a JVM is a user-level process that provides isolation units
> > whose API is Java bytecodes; some browsers offer units of isolation
> between
> > each browser tab.
> >
> > We ask whether we really need to have N different isolation mechanisms
> or,
> > instead, we could develop a framework in which all these different
> > mechanisms represent points on a continuum. If we could do that, then
> Never a contnuum, because there are discete steps.
>
Agreed. I think a *spectrum *would be a better word. As I am trying to
indicate that there is a
range of possibilities(from less isolated to more isolated), but each
single possibility is still a
distinct point.

> > perhaps A) we could implement such a unified framework, and B) the
> > framework might allow us to discover new and useful isolation mechanisms
> > (that could be created seamlessly rather than requiring an entirely new
> > implementation).
> >
> > The project has three main goals:
> >
> >
> >    - Develop a theoretical model or framework to unify existing isolation
> >       mechanisms.
> See the flags of the syscall clone() on linux. The only isolation level
> that is
> not there is 'interpreter' (You call it VM).
>
Agreed. clone() is by far the closest existing mechanisms to what I am
thinking of.
Besides the isolation level of "interpreter"(VM) missing, I think there is
one more type
of isolation, which clone does not offer. Mainly physical isolation of
memory, processor.
For instance, I can imagine a scenario where I want a particular process to
not share the
cache hierarchy with other processes in the system.
Such an isolation would provide safety against some cached based
side-channel attacks.


>       - Identify novel points in the model that are useful.
> >       - Implement the model in seL4.
> >
> > The Fig below shows how different access and isolation levels of memory
> can
> > be used to construct different types of PD. The points along the Y-axis
> are
> > building blocks of memory isolation. The points on the X-axis are
> different
> > types of PD. A given PD can be constructed using different building
> > blocks, which
> > are represented as circles that intersect one or more blocks. Mapping
> these
> > concepts to Genode,
> >
> > This is an evolving model, as we are still investigating:
> >
> >
> >    - If the "Security and Performance Guarantees" across any two types of
> >       PD can be compared.
> >       - Should there be more building blocks on the Y-axis
> >       - What novel types of PD can we come up by combining the different
> >       building blocks
> >
> > [image: image]
> >
> >
> > I am excited about building my project with Genode, the composability in
> > its architecture make it well suited as platform to show unconventional
> OS
> > ideas.
> >
> > Best,
> > Sid
> > sid-agrawal.ca
> > _______________________________________________
> > Genode users mailing list
> > users at lists.genode.org
> > https://lists.genode.org/listinfo/users
>
>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> users mailing list
> users at lists.genode.org
> https://lists.genode.org/listinfo/users
>
> ------------------------------
>
> End of users Digest, Vol 41, Issue 8
> ************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20210928/9b6272c8/attachment.html>


More information about the users mailing list