Skip the navigation

Hypothetical perfect operating system

Published on

I'm not a system programmer, and I don't know what I'm talking about, so take my ideas with a grain of salt. Also your vision of a perfect OS can be quite different from mine.

Basic requirements

For obvious reasons, the OS would be open source, 100% DRM and spyware free, actively developed, and actually useful in its area. It would also probably follow some of the common software standards (like, for example, JSON for IPC and command line utilities), use consistent naming and versioning schemes, and be written in a memory-safe language.

Existing implementations

Simple file hierarchy

Both of the 2 most popular file hierarchies, the Windows NT one and the Unix one (including whatever is built on top of it), are quite complicated due to historical reasons. Many of the directories are no longer used for their intended functionality, and some are practically duplicated.

A good one would look something like this:

Where Stuff is:

Existing implementations

Everything is an object

Having a shitton of protocols, for which you often don't have enough tools to easily explore, is terrible for discoverability. Everything is a file was supposed to fix that, but the solution was awkward and hard to deal with. So, instead of pretending that everything is a file, it'd make sense to accept that some "files" are not actually files and implement a universal way to explore them.

For example, a scheme could be created for each subsystem of the OS, allowing access to its objects via a URL like file:/system/apps/. Here's an example of what schemes could be created:

Existing implementations

Mandatory app sandboxing

For obvious security reasons, no app should be ever accepted as 100% trustworthy and bug-free, and sandboxing never lets that happen. That is unless there's a way to disable the sandbox or let some apps act outside of it, which will unavoidably get used, defeating the whole purpose of sandboxing.

Considering the file hierarchy from the previous point, it'd look something like this:

Existing implementations

Conclusion

It seems to be reasonable to just improve Linux instead of creating a whole new OS, and some progress is currently being made.