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

On Wed, Sep 22, 2021 at 11:39 PM <users-request@lists.genode.org> wrote:
[CAUTION: Non-UBC Email]

Send users mailing list submissions to
        users@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@lists.genode.org

You can reach the person managing the list at
        users-owner@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@cs.ubc.ca>
To: users@lists.genode.org
Subject: Getting Started with Genode
Message-ID:
        <CA+F2VKa1+d-217PQ+BwjYb=ssj+eTatXjL2nt8E-LR-7tkMuTQ@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@public-files.de>
To: users@lists.genode.org
Subject: Aw: Getting Started with Genode
Message-ID:
        <trinity-57cbd65a-0583-46f8-8910-68868e08d657-1632379143546@3c-app-gmx-bap45>

Content-Type: text/plain; charset=UTF-8

> Gesendet: Donnerstag, 23. September 2021 um 01:04 Uhr
> Von: "Sid Agrawal" <siagraw@cs.ubc.ca>
> An: users@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@lists.genode.org
> https://lists.genode.org/listinfo/users



------------------------------

Subject: Digest Footer

_______________________________________________
users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

------------------------------

End of users Digest, Vol 41, Issue 8
************************************