Most Exciting / Promising Features for a New OS?

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
spenc
Posts: 5
Joined: Sat Jul 06, 2024 7:54 pm
Libera.chat IRC: spenc

Most Exciting / Promising Features for a New OS?

Post by spenc »

I'm curious what people here think are exciting OS-Level features that aren't in any of the mainstream OSes, (UNIX, NT)

Some I've found from reading Wikipedia:

Single-Level Store or the related Orthogonal Persistence in which programs need not differentiate between RAM and Disk and keep running throughout OS restarts. At a different level of abstraction, and with a cloud focus instead of OS focus, this seems similar to Durable Functions. Plenty of niche OSes have this including ones by big companies (IBM i) before my time, but it seems not to have caught on.

Capability Architecture with my favorite OS implementing them being Genode. It seems like a really principled way of doing security, and ofc. is present on UNIX and others with things like File Descriptors.

Alternatives to the Filesystem, for example using a database. Something explored by NewtonOS and probably others.

Typed interfaces, or "Everything is an Object"

Network Transparency / Distributed OSes like Plan9 or Amoeba


I'm surely missing a bunch of ideas here, especially since all of them have been tried out in the 80's already. What concepts do you find the most exciting?
User avatar
eekee
Member
Member
Posts: 872
Joined: Mon May 22, 2017 5:56 am
Location: Kerbin
Discord: eekee
Contact:

Re: Most Exciting / Promising Features for a New OS?

Post by eekee »

Single-level store and orthogonal persistence are practically requirements to me. :) At least, my OS will have them. I'm still figuring them out though.

Capabilities are something I keep telling myself I need to learn about, but I always have something else to do. I recall Unix was considered to not have capabilities for many years. I don't know whether the change is due to added features or a new way of looking at file descriptors, though I think it's the former. Edit: I was thinking of ACLs rather than capabilities.

Typed interfaces are kind-of the reason I'm working on an OS to begin with. :) Rather than applications, I want to script smaller programs to work together, and I'm sick of doing it the Unix way.

I'll decide what kind of storage I want after I have SLS OP & typed interfaces all worked out. Traditional filesystems get in the way in some ways, but are very flexible in others.


It looks like the meaning of "distributed" has broadened again. When I was using Plan 9, it didn't fit the modern definition of "distributed"; its status as a distributed OS was a holdover from when the term was less tightly defined. Now however, everyone is calling it "distributed" again. I'm happy with this, but I'm just noting that it doesn't have process migration and other things which have in recent years been expected of distributed OSs.
Kaph — a modular OS intended to be easy and fun to administer and code for.
"May wisdom, fun, and the greater good shine forth in all your work." — Leo Brodie
NameGoesThere
Posts: 1
Joined: Sun Aug 11, 2024 1:09 pm

Re: Most Exciting / Promising Features for a New OS?

Post by NameGoesThere »

For me its good compatibility for another operating system's executables. Kind of like bsd's compatibility with some linux apps.
spenc
Posts: 5
Joined: Sat Jul 06, 2024 7:54 pm
Libera.chat IRC: spenc

Re: Most Exciting / Promising Features for a New OS?

Post by spenc »

Huh, that ones one of the least exciting to me - as a user at least. If I wanted to run Linux programs there's a pretty well supported way to do that already :p

I can see how as a creator it would be cool to make something and already have a userland waiting though
emarkus
Posts: 4
Joined: Wed Mar 21, 2012 10:28 am

Re: Most Exciting / Promising Features for a New OS?

Post by emarkus »

Single-level-store
I am a huge fan of the single-level store. Because i want to simplify the complexity of everything.
RAM = HDD = CloudStorage = Blockchain
However, storing data at blockchain needs a completely new programming style due to permission stuff.

Managed programming language
everything is in userspace or everything is in kernel space. if you have the object, you may use it.

security typed components
Every untrusted software component has to be of one component type.
For example, a component type being able to request local data shall be unable to send data to the internet.
A component that is able to send data to the internet shall not be able to directly access local data, but rather just be able request an "Open file..." dialog.

Dynamic generated UI
The operating system consists of a UI services which just visualizes objects. For example, if the Desktop-Object consists of a two dimensional array of Symbols, then you dont need to hardcode a desktop UI using a grid layout. As a 2d array always shall be displayed as a grid.

strong encryption
strong encryption by default with architectural considerations from androids per user encryption. hierarchical key handling. secure 5 digit passwords by using trusted external key retrieval which is useful for mobile phones.

abstraction
abstraction rather than code generation.

running untrusted code
I would like to run untrusted code as this is effectively introducing a new blockchain.

virtualization by design
virtualization is the wrong word though. i suggest container by design. when components ask for the Context, they might just receive a nested context with a different subset of services...

minimalism and maximalism
Although minimalism is possible there are always different implementations available.

audio
the operating system delivers a mixer that priorizes audio streams. music has to be decompressed, before mixing it with voice and effect channels of other applications, and then slightly compressing it again. And the volume shall be logarithmic.

bootstrapping with C
Despite using a high level language, everything should be bootstrappable by using a C compiler, and then working towards the high level stuff.

Commercial but open source
Commercial or kind of organized community for hosting the operating system with a long term reliability. Using capitalism as tool to calculate costs of additional code in base system in terms of maintenance. Updates can be downloaded only by paying users who dont need to tell their identity due to blind signatures are used to verify their licence. The organization strongly encourages to people stick with one programming language and only one library per purpose. Every modules needs to have an active mainainer. Everything has to be reviewed. The company can somewhat guarantee the security of their system and i think banks might spend money for this.

Conclusions
Maybe too much goals. But i am sure, the complexity today is hard. Its ok to have many features. But we need to get rid of the bloat and go the way towards abstraction.

I think JNode (Java) still shows a good base for a managed programming language, however, the architecture is more of a classic nature. As there are processes, files and so on...
Another problem: Java is not bootstrappable easily with C. JNode just relies on an existing java environment, when compiling things to binary.
alexfru
Member
Member
Posts: 1110
Joined: Tue Mar 04, 2014 5:27 am

Re: Most Exciting / Promising Features for a New OS?

Post by alexfru »

The most exciting feature is: I can use the OS continuously, I can rely on it, without it changing under me somehow, disrupting my use of it.
Specifically, when it's not stealing my energy, internet bandwidth or data with ads and various spyware (often masquerading as antivirus sw).
And when it's not changing the GUI with every single release.
So much for all the technological progress. It goes out the window when you need to deal with such crap.
emarkus
Posts: 4
Joined: Wed Mar 21, 2012 10:28 am

Re: Most Exciting / Promising Features for a New OS?

Post by emarkus »

alexfru wrote: Sun Sep 29, 2024 12:34 pm And when it's not changing the GUI with every single release.
And if its changing the UI, then at least use configurable themes and/or strategy patterns in code for configurable behaviour.
Post Reply