Modern operating systems like windows and linux were created decades ago, and throughout their history, they accumulated a lot of legacy and issues related to them. The main problem is backwards compatibilty. It is impossible to make major changes to the system components which could actually improve the system, because doing so would break countless of software which rely on that specific behaviour. Also, while the design architecture of those systems was very clever decades ago, it might be unefficient by modern technologies and system design philosifies. Of course changing the system architecture at this point is obviously not possible.
So what if a new fully-featured operating system was created today from scratch, with modern software and hardware technologies in mind. How could it compare to the existing systems in terms of design architecture efficiency, performance, security, user and developer experience, etc? What would be the main differentiating features of this hypotetical system? What would be the main drawbacks of it compared to old systems, not counting lack of backwards compatibility with old hardware and software, and lack of widespread adoption amongst users and developers?
Linux, MacOS and Windows have been completely rewritten multiple times across their existence.
So it’s not like the original decisions are all still in play.
Windows and Mac OS were rewritten under some particular weird duresses of closed source profit driven engineering; so it has been a mix of improvements and seemingly illogical setbacks.
Linux developers still need to eat, so some of the same (corporate) influences are there.
But the average engineer who sets out to create a brand new completely modern operating system - usually decides to reuse any components of Linux that they don’t have any concerns with…
Which usually gives us yet another cool new Linux variant.
But sometimes we get…
something very different
A cool new FreeBSD variant!
or a new prophet / religion
I’m super hyped for redoxos
Redox looks like an actually real answer to what my question is. It seems interesting, i will keep an eye on it
On this page:
The main problem with old computers is the amount of RAM available (they were sold in a era where RAM chips were expensive)
:')
Would having a very tiny kernel and everything running in user space impact performance, with very little in ring 0 leading to constant permission checks
Other than the system call interface being more modern, I don’t think much would change. Simply because everything else can be and is regularly updated and replaced or modernised where needed. Only the system call interface needs to be stable for applications to work.
There are operating systems that started to be developed not very long ago, e.g. Redox and SerenityOS. Those may have the answer to your question.
We saw the effect back in the late aughts with the release of the IPhone – a new “machine” with an entirely new operating system and no legacy to support: It was pretty interesting for a while, but eventually, it becomes just another OS.
Or Palm, or Android
Everyone forgets about Symbian 😭
I remember in the 2000s thinking it was completely unrealistic that the dominance of Windows might ever come to an end. Too much old software written only for it that no one is going to rewrite for anything else.
Then smartphones became a thing and we found out it was in fact possible to rewrite a lot of important software for them.
It’s still partially true. While consumer stuff is constantly being updated and rewritten, a lot of corporate stuff is stuck to whatever system it was originally designed for. Mainframes are still around for a reason
Backwards compatibility is a pretty limited problem - I have lots of Windows software that simply won’t run at all on current versions. I have to run them in a VM of the appropriate windows version.
UNIX really established the baseline for what we think of as the foundational operating system, and Linux took that concept another step forward.
It provides the most basic hardware interface required for constructing an OS. Which is why there are so many Linux distros today - you can build as minimal an OS as required for your use-case.
Could someone come up with a different OS approach at the kernel layer? Sure, but I believe that would require a different hardware approach - which we already see with just ARM processors. ARM and x86 require uniquely compiled kernels because the hardware is fundamentally different (same with RISC).
After the kernel and getting to what most of us think of with an OS is really just UI - how a user interacts with the system and conceptualizes it. We’ve pretty well standardized on storage space concepts (drives/folders etc) data stores (databases, etc), and all the rest. To use a different paradigm would take a massive change.
Microsoft experimented with the Memex concept with their My Life Bits research, even built a version of Windows to treat the entirety of its storage as a massive database. It worked, but it had performance problems (late 90’s) and users weren’t quite ready for it.
Instead we have cloud today, which is essentially pushing the same concepts of abstraction - new users today think less about where stuff is stored, instead think about asking the system to find something (MS Cloud stuff is how they ended up imolementing the My Life Bits research).
So in a way we’re already seeing a change in how operating systems are perceived by the typical user. Mobile really drives this with limited screen space, limited storage, and apps as the representatives of user data. I hate it.
I feel like This Blog Post is extremely relevant







