[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.
That is a property of hardware (whether such is supported or not). So you need at least
'interpreter' level isolation in software. A hardware assisted form of 'interpreter' level
isolation is SGX.
Such an isolation would provide safety against some cached based side-channel attacks.
SGX suffices for that.
> - 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
************************************