WEBVTT

00:00.000 --> 00:14.720
Thanks for having me, it's an honor and pleasure to be here again at our community event.

00:14.720 --> 00:21.000
Thanks to Udo and also to Alex for organizing the bedroom this year and let me get into

00:21.000 --> 00:22.000
it.

00:22.000 --> 00:25.000
So today I will be talking about Helena West.

00:26.000 --> 00:30.000
Let me start with a short interaction of myself.

00:30.000 --> 00:33.000
It's not so important here.

00:33.000 --> 00:37.000
It just shows that I have user space components.

00:37.000 --> 00:39.000
It's a multiple form system.

00:39.000 --> 00:44.000
We can't really support these major hardware architectures.

00:44.000 --> 00:47.000
And it's designed and implemented from scratch.

00:47.000 --> 00:53.000
So basically the idea is to test some interesting,

00:53.000 --> 01:00.000
radical new ideas like our asynchronous IPC mechanism with integrated shared memory.

01:00.000 --> 01:06.000
Also, most of our components are natively written for Helena West,

01:06.000 --> 01:08.000
not supported from other systems.

01:08.000 --> 01:12.000
So there are no frankened components so to speak with, you know,

01:12.000 --> 01:15.000
ugly compatibility layers around it.

01:16.000 --> 01:25.000
We also would like to say that our code base is readable and understandable to newcomers.

01:25.000 --> 01:35.000
I'm obviously too biased to really judge, but one objective measure is that 30% of the source code is commands.

01:35.000 --> 01:42.000
And maybe compare to some other of my kernel-based systems that we will hear today during the bedroom.

01:42.000 --> 01:45.000
Helena West is an integrated distribution.

01:45.000 --> 01:57.000
So we just download an image that already contains all the required components to get working desktop-like system.

01:57.000 --> 02:00.000
You don't have to, you know, manually configure stuff.

02:00.000 --> 02:06.000
It will just run things and also discover things and stuff like that.

02:06.000 --> 02:16.000
So what has been new in Helena West since our last status update here at this room in 2020?

02:16.000 --> 02:26.000
Well, the major improvement is the new graphical user interface or redesign and re-implementation of the previous one.

02:26.000 --> 02:32.000
So we have a completely new display server that is more open-ended.

02:32.000 --> 02:39.000
It should support accelerated direct and indirect rendering.

02:39.000 --> 02:44.000
And it also provides better performance in case you render in software only.

02:44.000 --> 02:50.000
It has additional features like configurable, double buffering and stuff like that.

02:50.000 --> 02:55.000
Also there are many more graphical widgets and dialogues.

02:55.000 --> 03:04.000
And one interesting thing is that almost all of those widgets and dialogues can be also used in text mode.

03:04.000 --> 03:08.000
So you can design a user interface using the same widgets.

03:08.000 --> 03:16.000
Whether the final application is going to run in a graphical mode or in a text mode.

03:16.000 --> 03:21.000
Proportion forms is just one, one addition to that.

03:21.000 --> 03:25.000
Then we did some usability improvements.

03:25.000 --> 03:27.000
So to speak.

03:27.000 --> 03:29.000
So there is a font editor.

03:29.000 --> 03:31.000
There is a two panel file manager now.

03:31.000 --> 03:39.000
There is a task bar with a start button and a start menu which you might know from some other rarely used operating systems.

03:39.000 --> 03:41.000
There is multi-seat support.

03:41.000 --> 03:45.000
The terminal can now scroll back and be resized.

03:45.000 --> 03:49.000
And quite recently there is an intelligence.

03:49.000 --> 03:50.000
I mean, intelligence.

03:50.000 --> 03:53.000
It sounds that it actually follows dependencies.

03:53.000 --> 03:55.000
Shutdown mechanism.

03:55.000 --> 03:58.000
So you can cleanly shut down the system now.

03:58.000 --> 04:06.000
We have improved our compiler to change to be currently completely up to date.

04:06.000 --> 04:09.000
With the latest GCC and stuff.

04:09.000 --> 04:16.000
And we have improved some standards of standard compliance on the API side.

04:16.000 --> 04:20.000
And finally, but maybe last, not least.

04:20.000 --> 04:23.000
There is some additional hardware support.

04:23.000 --> 04:27.000
We have improved the performance of the block device drivers.

04:27.000 --> 04:35.000
And after 20 years we lay a fresh eye on the kernel.

04:35.000 --> 04:39.000
And did some streamlining.

04:39.000 --> 04:41.000
It's not the rewrite.

04:41.000 --> 04:43.000
It's not the redesign.

04:43.000 --> 04:46.000
The basic bits and pieces are still there.

04:46.000 --> 04:55.000
But we simply allow some things that were not being so heavily used after so many years to just disappear.

04:55.000 --> 04:58.000
Like some unused extension points.

04:58.000 --> 05:01.000
We did some performance optimizations.

05:01.000 --> 05:05.000
We have improved the abstractions on some APIs.

05:05.000 --> 05:11.000
So for example, some of the kernel internals no longer use directly the weight queue.

05:11.000 --> 05:18.000
As the primary synchronization means, but use a semaphore, which is of course built by the weight queue.

05:18.000 --> 05:20.000
But it's still more abstract.

05:20.000 --> 05:23.000
And therefore the code is easier to understand.

05:23.000 --> 05:29.000
And we have removed some synchronization points, which were generally unnecessary.

05:29.000 --> 05:36.000
Because the actual workload was more of a CPU local.

05:36.000 --> 05:44.000
To compare this list, which is of course the stuff that we still do support with the previous list.

05:44.000 --> 05:47.000
It's sort of not quite comparable.

05:47.000 --> 05:49.000
So what's wrong?

05:49.000 --> 05:55.000
Well, this is another view of the story.

05:55.000 --> 06:03.000
And of course I know that the number of commits is not the best metric for everything.

06:03.000 --> 06:10.000
But it shows something that it definitely shows that since the last update,

06:10.000 --> 06:14.000
there was not so much activity as there used to be.

06:14.000 --> 06:17.000
Let me give you another picture.

06:17.000 --> 06:26.000
So previously we were exploring very interesting things going, you know,

06:26.000 --> 06:31.000
trying to solve some challenges.

06:31.000 --> 06:33.000
And now we are living in this serene valley.

06:33.000 --> 06:38.000
Now I'm here where nothing much matters.

06:38.000 --> 06:40.000
I'm nothing much happens.

06:40.000 --> 06:43.000
The river is flowing quite steadily.

06:43.000 --> 06:46.000
So this is where Helena was is now.

06:46.000 --> 06:56.000
And this is, I believe, the reason why those two lists of new features, you know, sound different.

06:56.000 --> 06:59.000
And Helena was essentially complete.

06:59.000 --> 07:04.000
And now you might say, hey, come on Martin, are you kidding?

07:04.000 --> 07:08.000
I mean, how can you claim that Helena was is complete?

07:08.000 --> 07:16.000
I still can't use it as a daily driver to replace my, my Linux or maybe at least Windows.

07:16.000 --> 07:17.000
No, sorry.

07:17.000 --> 07:21.000
But you know, there are two at least two meanings of the word complete.

07:21.000 --> 07:24.000
So you might be thinking about this.

07:24.000 --> 07:34.000
So starting with something, something that sort of works, but it's very, very single purpose,

07:34.000 --> 07:42.000
like a doghouse and completing it into a large city that can host almost anything.

07:42.000 --> 07:49.000
And a number of use cases that could be partially solved, contained or self sufficient.

07:49.000 --> 07:52.000
Yeah, this is one meaning of the word complete.

07:52.000 --> 07:58.000
And obviously, Helena was does is, I mean, this does not apply to Helena was.

07:58.000 --> 08:02.000
What I mean by Helena was is complete is this.

08:02.000 --> 08:14.000
So moving from a family house that is in construction where, you know, walls need to be put and furniture needs to be placed in.

08:14.000 --> 08:19.000
And electricity needs to be wired and whatever.

08:19.000 --> 08:25.000
And ending with a family house that can be, that can be considered as finished.

08:25.000 --> 08:27.000
I mean, there is nothing missing.

08:27.000 --> 08:30.000
But it's still not self sufficient.

08:30.000 --> 08:33.000
I mean, it still needs something else.

08:33.000 --> 08:36.000
So in this sense, Helena was is complete.

08:36.000 --> 08:41.000
And this is, this is the, the thing, you know,

08:41.000 --> 08:46.000
Helena was a pure open source project.

08:46.000 --> 08:49.000
It's completely community driven.

08:49.000 --> 08:56.000
Meaning that it's driven by individual interests of contributors.

08:56.000 --> 09:01.000
Maybe by their academic research or maybe by their education.

09:01.000 --> 09:09.000
I mean, that there have been something like 30 masterpieces written around or on top of Helena was.

09:09.000 --> 09:15.000
We did have some corporate sponsorship like Google summer of code or the season Nick.

09:15.000 --> 09:18.000
I'm playing one of our contributors.

09:18.000 --> 09:20.000
But there was never a business goal.

09:20.000 --> 09:22.000
There was never a monetization goal.

09:23.000 --> 09:27.000
Meaning, since there are no major building blocks missing.

09:27.000 --> 09:29.000
I mean, there is a file system.

09:29.000 --> 09:31.000
There is sound support.

09:31.000 --> 09:32.000
There's not working.

09:32.000 --> 09:39.000
The only bits and pieces that are currently missing and that would lead to the completeness in the other sense.

09:39.000 --> 09:43.000
In the completeness of, you know, running new Linux.

09:43.000 --> 09:49.000
Is all the device drivers file systems, standard APIs, usability features.

09:49.000 --> 09:55.000
And it turns out, at least in our setting, this is no longer rewarding.

09:55.000 --> 10:02.000
I mean, at least no longer so rewarding as it used to be before when you can say,

10:02.000 --> 10:05.000
I have implemented a networking stack.

10:05.000 --> 10:12.000
I have filled in the, the large building block that was missing in the system.

10:12.000 --> 10:15.000
And is it a cautionary tile?

10:15.000 --> 10:17.000
I believe it is.

10:17.000 --> 10:24.000
I mean, do you remember, Linux 3, that used to be very famous that had this.

10:24.000 --> 10:29.000
They might end up being complete in the sense that that I have described.

10:29.000 --> 10:31.000
And not complete in the sense.

10:31.000 --> 10:39.000
And a very user would use an operating system or would like an operating system to work.

10:39.000 --> 10:42.000
And again, there's nothing wrong with that.

10:42.000 --> 10:48.000
But you either have to, you know, expect that is going to happen and embrace it.

10:48.000 --> 10:52.000
This is what we do in how an OS, at least at the moment.

10:52.000 --> 11:01.000
Or if you don't like this outcome, you probably need to have a plan and explicit well fought plan to avoid it.

11:01.000 --> 11:07.000
And at the end of the day, everything boils down to money and time.

11:07.000 --> 11:14.000
So you probably just need some reasonable long-term source of revenue,

11:14.000 --> 11:19.000
whether it's a paying customer or some paying use case or charity.

11:19.000 --> 11:27.000
I don't know what it is, but it needs to be there to cover the, the, the costs of the,

11:27.000 --> 11:35.000
of, you know, finishing those tasks that are no longer fun, like implementing a new subsystem.

11:36.000 --> 11:43.000
So that's, that's all what I wanted to say about this completeness issue.

11:43.000 --> 11:47.000
So what about Helen OS and our vision into the next 20 years?

11:47.000 --> 11:50.000
I mean, so far we are embracing the Syrian Valley.

11:50.000 --> 11:52.000
There are still contributions.

11:52.000 --> 11:59.000
There are still, it's still a valuable tool for me and for many other people to test new stuff,

11:59.000 --> 12:03.000
to debug other systems, for example.

12:04.000 --> 12:07.000
And there is some value in the codebase itself.

12:07.000 --> 12:13.000
So we can stay in that Syrian Valley for, for some time.

12:13.000 --> 12:17.000
And we are still on a lookout for some new challenges.

12:17.000 --> 12:25.000
There are people who still have this, I don't know if I should say a pipe dream or a weather dream or whatever kind of dream,

12:25.000 --> 12:32.000
that there will be a company around Helen OS and that will push it into new areas.

12:32.000 --> 12:36.000
But somebody needs to step up.

12:36.000 --> 12:45.000
The asynchronous will be more important than ever, at least according to the development of the hardware.

12:45.000 --> 12:48.000
So I believe there is something to build on.

12:48.000 --> 12:57.000
There are even many features that have not been integrated yet into the mainline branch of Helen OS.

12:58.000 --> 13:00.000
That could be useful for somebody.

13:00.000 --> 13:06.000
So just to point to, to examples, there is task, check pointing and migration implemented.

13:06.000 --> 13:12.000
There is a manual, less support implemented, just not in the main branch.

13:12.000 --> 13:18.000
So if anybody has an idea, how to use that, just let me know.

13:18.000 --> 13:22.000
So to sum up, Helen OS is still alive and well.

13:22.000 --> 13:27.000
Helen OS is complete, but in the sense that I have described.

13:27.000 --> 13:32.000
There are still many ways how to contribute to it and it makes sense in some ways,

13:32.000 --> 13:35.000
because we do things differently.

13:35.000 --> 13:42.000
And Helen OS is not going to move away, at least until there is still somebody contributing to it.

13:42.000 --> 13:45.000
And there is nothing wrong with being in that Syrian Valley.

13:45.000 --> 13:53.000
All I'm trying to say is that many existing projects, very ambitious projects,

13:53.000 --> 13:59.000
might eventually end up in the Syrian Valley as well, unless they do something against it,

13:59.000 --> 14:01.000
if they don't want to be there.

14:01.000 --> 14:03.000
So have a plan.

14:03.000 --> 14:05.000
And that's it from me.

14:05.000 --> 14:06.000
Thank you.

14:06.000 --> 14:07.000
And are there any questions?

14:07.000 --> 14:14.000
Does it have a real mercy?

14:14.000 --> 14:15.000
No.

14:15.000 --> 14:17.000
So I should repeat the question.

14:17.000 --> 14:19.000
The question most does it have a real mercy?

14:19.000 --> 14:23.000
No, but it has tattoos.

14:23.000 --> 14:24.000
Any other questions?

14:24.000 --> 14:25.000
Yes.

14:25.000 --> 14:26.000
I believe you are first.

14:26.000 --> 14:36.000
So the question is about the manuals stuff.

14:36.000 --> 14:40.000
Yes, it essentially means that it can run.

14:40.000 --> 14:46.000
I mean, I'm not quite sure if every microcontroller would be a good fit,

14:46.000 --> 14:52.000
because there are other requirements for the payroll size and whatever,

14:52.000 --> 14:53.000
but generally yes.

14:53.000 --> 14:56.000
It could run on some on a CPU that does not have a memory.

14:56.000 --> 14:59.000
It does not have any page and stuff like that.

14:59.000 --> 15:01.000
I can give you the details later.

15:01.000 --> 15:02.000
Thanks.

15:02.000 --> 15:03.000
That was still.

15:03.000 --> 15:05.000
Yes, though.

15:05.000 --> 15:07.000
I'm sorry.

15:07.000 --> 15:09.000
Can you can.

15:09.000 --> 15:13.000
The envelope running on top of Helenowas.

15:13.000 --> 15:16.000
Not not yet.

15:16.000 --> 15:20.000
I mean, so the question is how to get and we are running on Helenowas.

15:20.000 --> 15:23.000
Not at the moment there is no virtualization support at this moment.

15:23.000 --> 15:26.000
The answer is complicated.

15:26.000 --> 15:27.000
All right.

15:27.000 --> 15:28.000
Thank you.

15:28.000 --> 15:29.000
Thank you.

