Thanks for having me, it's an honor and pleasure to be here again at our community event.
Thanks to Udo and also to Alex for organizing the bedroom this year and let me get into
it.
So today I will be talking about Helena West.
Let me start with a short interaction of myself.
It's not so important here.
It just shows that I have user space components.
It's a multiple form system.
We can't really support these major hardware architectures.
And it's designed and implemented from scratch.
So basically the idea is to test some interesting,
radical new ideas like our asynchronous IPC mechanism with integrated shared memory.
Also, most of our components are natively written for Helena West,
not supported from other systems.
So there are no frankened components so to speak with, you know,
ugly compatibility layers around it.
We also would like to say that our code base is readable and understandable to newcomers.
I'm obviously too biased to really judge, but one objective measure is that 30% of the source code is commands.
And maybe compare to some other of my kernel-based systems that we will hear today during the bedroom.
Helena West is an integrated distribution.
So we just download an image that already contains all the required components to get working desktop-like system.
You don't have to, you know, manually configure stuff.
It will just run things and also discover things and stuff like that.
So what has been new in Helena West since our last status update here at this room in 2020?
Well, the major improvement is the new graphical user interface or redesign and re-implementation of the previous one.
So we have a completely new display server that is more open-ended.
It should support accelerated direct and indirect rendering.
And it also provides better performance in case you render in software only.
It has additional features like configurable, double buffering and stuff like that.
Also there are many more graphical widgets and dialogues.
And one interesting thing is that almost all of those widgets and dialogues can be also used in text mode.
So you can design a user interface using the same widgets.
Whether the final application is going to run in a graphical mode or in a text mode.
Proportion forms is just one, one addition to that.
Then we did some usability improvements.
So to speak.
So there is a font editor.
There is a two panel file manager now.
There is a task bar with a start button and a start menu which you might know from some other rarely used operating systems.
There is multi-seat support.
The terminal can now scroll back and be resized.
And quite recently there is an intelligence.
I mean, intelligence.
It sounds that it actually follows dependencies.
Shutdown mechanism.
So you can cleanly shut down the system now.
We have improved our compiler to change to be currently completely up to date.
With the latest GCC and stuff.
And we have improved some standards of standard compliance on the API side.
And finally, but maybe last, not least.
There is some additional hardware support.
We have improved the performance of the block device drivers.
And after 20 years we lay a fresh eye on the kernel.
And did some streamlining.
It's not the rewrite.
It's not the redesign.
The basic bits and pieces are still there.
But we simply allow some things that were not being so heavily used after so many years to just disappear.
Like some unused extension points.
We did some performance optimizations.
We have improved the abstractions on some APIs.
So for example, some of the kernel internals no longer use directly the weight queue.
As the primary synchronization means, but use a semaphore, which is of course built by the weight queue.
But it's still more abstract.
And therefore the code is easier to understand.
And we have removed some synchronization points, which were generally unnecessary.
Because the actual workload was more of a CPU local.
To compare this list, which is of course the stuff that we still do support with the previous list.
It's sort of not quite comparable.
So what's wrong?
Well, this is another view of the story.
And of course I know that the number of commits is not the best metric for everything.
But it shows something that it definitely shows that since the last update,
there was not so much activity as there used to be.
Let me give you another picture.
So previously we were exploring very interesting things going, you know,
trying to solve some challenges.
And now we are living in this serene valley.
Now I'm here where nothing much matters.
I'm nothing much happens.
The river is flowing quite steadily.
So this is where Helena was is now.
And this is, I believe, the reason why those two lists of new features, you know, sound different.
And Helena was essentially complete.
And now you might say, hey, come on Martin, are you kidding?
I mean, how can you claim that Helena was is complete?
I still can't use it as a daily driver to replace my, my Linux or maybe at least Windows.
No, sorry.
But you know, there are two at least two meanings of the word complete.
So you might be thinking about this.
So starting with something, something that sort of works, but it's very, very single purpose,
like a doghouse and completing it into a large city that can host almost anything.
And a number of use cases that could be partially solved, contained or self sufficient.
Yeah, this is one meaning of the word complete.
And obviously, Helena was does is, I mean, this does not apply to Helena was.
What I mean by Helena was is complete is this.
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.
And electricity needs to be wired and whatever.
And ending with a family house that can be, that can be considered as finished.
I mean, there is nothing missing.
But it's still not self sufficient.
I mean, it still needs something else.
So in this sense, Helena was is complete.
And this is, this is the, the thing, you know,
Helena was a pure open source project.
It's completely community driven.
Meaning that it's driven by individual interests of contributors.
Maybe by their academic research or maybe by their education.
I mean, that there have been something like 30 masterpieces written around or on top of Helena was.
We did have some corporate sponsorship like Google summer of code or the season Nick.
I'm playing one of our contributors.
But there was never a business goal.
There was never a monetization goal.
Meaning, since there are no major building blocks missing.
I mean, there is a file system.
There is sound support.
There's not working.
The only bits and pieces that are currently missing and that would lead to the completeness in the other sense.
In the completeness of, you know, running new Linux.
Is all the device drivers file systems, standard APIs, usability features.
And it turns out, at least in our setting, this is no longer rewarding.
I mean, at least no longer so rewarding as it used to be before when you can say,
I have implemented a networking stack.
I have filled in the, the large building block that was missing in the system.
And is it a cautionary tile?
I believe it is.
I mean, do you remember, Linux 3, that used to be very famous that had this.
They might end up being complete in the sense that that I have described.
And not complete in the sense.
And a very user would use an operating system or would like an operating system to work.
And again, there's nothing wrong with that.
But you either have to, you know, expect that is going to happen and embrace it.
This is what we do in how an OS, at least at the moment.
Or if you don't like this outcome, you probably need to have a plan and explicit well fought plan to avoid it.
And at the end of the day, everything boils down to money and time.
So you probably just need some reasonable long-term source of revenue,
whether it's a paying customer or some paying use case or charity.
I don't know what it is, but it needs to be there to cover the, the, the costs of the,
of, you know, finishing those tasks that are no longer fun, like implementing a new subsystem.
So that's, that's all what I wanted to say about this completeness issue.
So what about Helen OS and our vision into the next 20 years?
I mean, so far we are embracing the Syrian Valley.
There are still contributions.
There are still, it's still a valuable tool for me and for many other people to test new stuff,
to debug other systems, for example.
And there is some value in the codebase itself.
So we can stay in that Syrian Valley for, for some time.
And we are still on a lookout for some new challenges.
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,
that there will be a company around Helen OS and that will push it into new areas.
But somebody needs to step up.
The asynchronous will be more important than ever, at least according to the development of the hardware.
So I believe there is something to build on.
There are even many features that have not been integrated yet into the mainline branch of Helen OS.
That could be useful for somebody.
So just to point to, to examples, there is task, check pointing and migration implemented.
There is a manual, less support implemented, just not in the main branch.
So if anybody has an idea, how to use that, just let me know.
So to sum up, Helen OS is still alive and well.
Helen OS is complete, but in the sense that I have described.
There are still many ways how to contribute to it and it makes sense in some ways,
because we do things differently.
And Helen OS is not going to move away, at least until there is still somebody contributing to it.
And there is nothing wrong with being in that Syrian Valley.
All I'm trying to say is that many existing projects, very ambitious projects,
might eventually end up in the Syrian Valley as well, unless they do something against it,
if they don't want to be there.
So have a plan.
And that's it from me.
Thank you.
And are there any questions?
Does it have a real mercy?
No.
So I should repeat the question.
The question most does it have a real mercy?
No, but it has tattoos.
Any other questions?
Yes.
I believe you are first.
So the question is about the manuals stuff.
Yes, it essentially means that it can run.
I mean, I'm not quite sure if every microcontroller would be a good fit,
because there are other requirements for the payroll size and whatever,
but generally yes.
It could run on some on a CPU that does not have a memory.
It does not have any page and stuff like that.
I can give you the details later.
Thanks.
That was still.
Yes, though.
I'm sorry.
Can you can.
The envelope running on top of Helenowas.
Not not yet.
I mean, so the question is how to get and we are running on Helenowas.
Not at the moment there is no virtualization support at this moment.
The answer is complicated.
All right.
Thank you.