You
Yes
Thank you for the introduction
In this presentation, I would like the report about
Attempt of mine to support yet another kernel for the
Genode framework because we have so few
And so I will first as go a bit into detail about it
Genode OS framework what it is in case some of you don't know
And then I will speak a bit about this
And what happened last year
Since intention was from my side to go a bit through the history of the supported microcunals
And but I have to
Cut away a lot of the part of the presentation because I have no time for that
Actually, so it's been quite short since second part and then I actually want to talk about
The work I did
For small components, but if you have like qt
Chrome engine a browser you will find this really nice
The other point is that Genode now comes as a package management system
That means once you have written your component, you can package it, sign it and upload it
And during your runtime deploy it while package management mentioned it
But of course, you can also stay static if you want if you had just one
Ship
For an IoT device and image you may stay static
Since the end of the last year, we have this sort book which is about how to get
In a modern way applications running on top of Genode, without touching the build system at all
Which was beforehand necessary
First book is about the basics, about the philosophy of Genode
And the second book guide you if you have to enable
Another armboard and you need to enable it to drive
So the second book will help you
Now you have all this components and you can
And some one has to build an OS out of it
So it's not seeing you catch us boot, it's the job of the user of the Genode OS framework to make something useful out of it
So this is how changed this beginning of 2017, where we shipped our own
On the redness system, where we had regular releases two times per year
Which should serve as day to day OS for community and for the developers on consumer devices
So that we can work on some on its brand and we can enjoy what we had done to month before
So it's got the SS based on Genode OS frame book releases in settings
And you get a very tiny base OS, it's like sort of make up rights that makes it device detection
Starts a wide drive or configure everything so that you end up in a tight UI
Where you then can start new components
So those components are provided
You have to download it, download it, they are provided in a better way
That means we have not one big app stores, so everyone of us can provide packages
And you can decide what you want to take
And as soon as the system is up
Then typically what you
The most users of us do, we want to have a window manager
Then we have several native browsers running on top
Which are chromium based or you want to stay in the virtual machine monitor with your Firefox
And they have multiple virtual machine monitors
And we have a lot of native applications
This is a bit of a few, for example, I'm running currently natively on Skype
So I'm switching into control fuel in settings
GPU applications and so on
And optionally there's also a POSIX run time
This folks in Montix is that you can run your beloved new tools
What is the option?
It's not a Genode OS, it's not POSIX
But as a hardware device, it's a consumer device that we support
Right-hand side, you see frame work, X86 notebook
In the middle you have a pine phone running scalp
And the left-hand side, an arm-based board
And since the end of last year, we additionally support the mount pocket reform
Which is also running scalp
And yeah, so what happens last year regarding the two
Reliesus we had several features technical ones
One-to-names, the user was a bit features
With the end of the last year we have now a graphical user interface
That you can easily configure the resolution
When you attach connector
And additionally, as this was
We have now panorama support
That means you can have large virtual screen across all the displays
And you can configure it fine granular
This is a nice feature and it took quite a time to get the driver running
The whole UI stack up to the applications
So it was tough white, but what's cool?
And another user with the feature was actually that we now added to the Skype
To the S system, also the Spentry Zoom support for X86
The feature itself was more than to frame work already beforehand
But to convince all the drivers working nicely
When you want to go to the Spentry Zoom time
And here you mainly see the interface
You have to enable a bit more HPI support
And then by button pops up and you can try to suspend the system
And hopefully it will come back
You know, there's only one type of RAM
Which a component got assigned
This includes the user part and also the implicit kernel part
Page table, kernel resources and so on
If there's some, let's say
If you didn't know what the cost for kernel resources
It's problematic
If there's a fixed pool in the kernel, which can be exhausted
But it actually has a lot of memories
And you cannot stop any components anymore
It's a bit problematic
So ideally there's some dynamic ways, some flexible way to talk to the kernel
About memory usage
So that's a Gino can really account it correctly
The other point is, ideally, there should be non-blocking kernel interfaces
A little bit because on Gino, we have this style of event programming interface
You know, probably you have one thread
It gets a synchronous IPC from the outside
That's something, it's already
Or you get an asynchronous event, do something and it's ready
When it's wet, for some reason, has to block on a Cisco for a long time
Like, I want to wait for interrupt
And this red cannot do it in the meantime, something else
It's hard for us
And we have to solve this something differently
The other part is, if you want my deco support
Currently, the assumption is that there is just
Cosco IPC support provided by the kernel
So if you have a service on CBO5
And you are running on one, there is no support
In, like, moving first
Set guide to the ASUS CPU on five and make a local IPC
So there is just a assumption, there is Cosco IPC support
It must be there
And, optionally, of course, it's virtualization
So the framework itself does not require virtualization
But of course, the user on top
Want to run a virtual machine
Right?
So, for the presentation, I looked at how our release notes
And try to come up with some timeline about
When, when, which tunnel got added to Gnode
And how long it was supported?
And so, if you see a line where it stops
Some to the middle, some to the support was removed
So, it's a year and a month
When something got added
And, now, I would like
Look, a bit into the kernel
So, it's a plus kernel
Since the beginning is the Linux kernel
It's obviously not a micro kernel kernel
It's a monolidic one
So, nice thing about this is simply
It's for clapping prototyping, it's really nice
So, on Linux, you must imagine
It's like a middleware layer, Gnode
And each Gnode component
It's just a Linux task
And you can debug it easily, you can attach
And so on
So, other kernels are micro kernels
For micro kernels, which we are at the time
When they got added
The data of the arts and on work
At least in the bubble, we are living
And, they are still around
They can't
So, in our
Contiguous integration loop
And so, we see F and I, middleware working or not
But they are not used for anything useful today
And, as other point is, they have no capabilities
So, they have global strategies, global task
Addies and all of them can try to pull each other
And there is no protection
So, Gnode cannot do anything against that
But, of course, we abstract it the way
So, if you do not try hard to convince it
And you will not see the effect
The second part is smaller
I quoted modern kernels
That's the one which I have capabilities to put
Build in
So, it started with a NOVA kernel
Which is developed by Udo
This version actually, but
It is a heavily adjusted version to Gnode
So, it is not a original version of Udo
Then, it is a Fiasco C kernel
Which also started in the university
And now it is maintained
Or developed further by can concept
And, HW is a kernel
Which is developed by Gnode Labs
Which is specifically built for for Gnode
And, also SLFO is supported
Which as soon as it got open source
It was popularly beforehand
The added support
At why to come with a characteristic metrics
The main points here are
Dynamic memory management for the kernel
And towards user for SLFO
And HW looks okay
But, for HW it is much, much simpler
Interfacing and for SLFO
It's horrible complicated
And, also the kernels have different ideas
About whether they have one big kernel lock
And, bringing the kernel to the kernel
Supported with Gnode
It's actually just a personal spare time project of mine
So, there is no no project behind it
Or funding or anything
It's a very low priority
I work on it
Evening one to two hours as time fits
It's like since eight months
I'm looking on it
My personal goal is that it's actually
Easy-can-test current upstream version
One of those also may ask
Just the minor update
Why it rebates and you are done
No, actually not
As I said, we have added features
For example, like the Crosco IPC support
Which is
It's not easy to add again
And I don't think so
I wanted to do it again
And so, in that sense, Gnose version
As is now fixed
Good enough to Gnode framework
And we don't add new features
It's only need to do need basis
In contrast, the up stream
The new one kernel is of course
Under active development has a lot of features
And also in our area of trust in computing
So there's a presentation
From UTO, from Celeste Phostems
And of course, this kernel is actually
An kernel which undergoes verification
It's the plus plus
We like the plus plus etchinode
So maybe use this connection
And I need a working title
So base nova is already used
So I need another name
So I added CE as for some moment
Experimental version
But also the plural of having several nova instances
So working items
It's kind of easy
Make a copy of the original repository
Remove everything we added
Since 2012 to the Gnode version
We had this number
Then you have to get the core running
You have to refuse the documentation
It's a specification which is quite good
Adjusting also
Cisco bindings
Get hold of the major capabilities
That you actually can make some
Output that you can debux
Sing that you get access to some
Mighty boot, serve structure
So that you can fill other
Allocators in the root task
The timer server
So we'll need some slightly adjustment
Because
Waiting for IRQ is a blocking call
On this nova version
I had to re-ad IRQ scripts
We have nodes in the Gnode version
In order to play with real nice stuff
So running all the test scenarios
I also had to package everything
Because nowadays we are using packages
Even for simple test
So fun part starts as soon as you start
The second task
And when you are looking at the
Opposive framework
So as I said in the beginning
We want to delegate
During an RPC or Gnode
Also capabilities
There is example definition
This is not possible anymore
This is coming
This is what not to surprise
Udo already announced
Just go
And
Of course
There is a source course
Where you can delegate
Cavalty but you have to have the target
Cavalty of the guy where you want to push
The Cavalty
And those information are only available to poor
And moving this ability
I was an option from the Gnode perspective
So what have to be done
This task is already in the context of a NASA
That we need some re-wouting service
We are also good task
We are a core
And what is now happening is
When ever the IPC framework sees
That the capability must be delegated
It will in the first step core
Core will remember the fact
Which capabilities should go to whom
Returns in second step
So that is actually IPC
The multiplex on that case
The coding tool
So IPC definition
I should have received
A capability
He will call
Into core
We ask for
Please delegate the capability to me
And then the IPC is done
It is a fifth step
Obviously this becomes more expensive
If you are doing it often enough
So
That is already all
Some time to
Support
Fiasco
See it is a problem
Obviously
Officially supported
He had to be
I had to do something
Fix-ups
And now for the demo
Quite looking quite good
I uploaded an image in case you are interested
And actually
I wanted to demonstrate this live
Free-booning
So machine
I think I will not have enough time
But
I have something else
Instead I decided to make
The whole demo
Once it is kept
Cool
And
When you boot this image
You will see
In the white button
On which tunnel you are
Cool
You are not getting confused
And if you don't believe
The pixels in the white button
I also had
I have a lot of options
We can look for the bootlock
And
Someone who
Familiar with this
Output of the tunnel
Maybe
Look
That is a good idea
Upstream version
But
Not like someone from
2012
From the Output
So
Okay, I said
Or
I know
Ouch
fr Therefore
But
Or
Wrong
Or
Right
And
Yep
Or
Is
Of course
Or
Perhaps
Or
If
Or
Let's have Mesa Gears running, hopefully.
So this is a this GPU support.
Yes, that's actually all I wanted to show you.
Yeah, thank you for your attention.
Thank you.
All right, I'm quite happy to hear that you're working on the global version.
Do we have any of obviously, I'll try my best to help you overcome some of these challenges?
That's nice.
Yeah.
So how do we have any questions from you to do in the audience?
Thanks for your presentation.
What do you do?
You're going to set up on this top.
As the question was, what's my debugging set up?
How I could proceed or can get back to this?
Actually, also I have done because as X86, I can just do it in KOMU.
So it's no no deal.
And because I also have the current lower version and the new one,
I can also compare where the difference in the output and so where I have
done something wrong.
So let's quite comfortable in set.
Yes.
That's possible.
Any other questions?
Yes, of question over there.
Now, some may be there for some of you to make more fine parts.
I'm missing a big picture.
The same implies that this is comfortable.
Yes, yes.
I don't know what I can do.
Can you please shorten your question?
What's in between the memory, the linear browser, the model browser?
Yeah.
Oh, come to the operation.
And a very, very simple question.
So, China framework?
No.
I am, as Greshmos, what is the paper between the...