4 ms·
Because things have changed since the time Linux became ubiquitous. We have moved away from a world of shared libraries, filesystems, and UNIX users and permis
by Daishiman 5y ago
Because things have changed since the time Linux became ubiquitous.
We have moved away from a world of shared libraries, filesystems, and UNIX users and permissions into a world of shared-nothing (no shared memory, no shared filesystem), capabilities, new and extremely aggressive attack vectors, and a need to compartmentalize and virtualize at more fundamental layers even if it comes at a performance penalty.
You can't retrofit a microkernel-like abstraction on top of Linux. At the same time, a lot of the features you need for a shared multi-user system are basically cruft for modern mobile, single-user systems with little use for shared resources (not saying they're not shared; it's just that you can no longer trust apps installed in the user system so expecting apps to behave nicely is out of the window).
The new wave of OSes embraces formal correctness when possible, JIT, garbage-collected application programming languages, tightly-enforced resource boundaries, deny-by-default security models, provably-safe system programming languages (Rust and whatever else will come), immutability and copy-on-write at the cost of filesystem space, and secure memory abstractions for more RAM.
So why spend time supporting features that new OSes don't need, optimizing things that are no longer priority (HDD schedulers vs no-op SSD schedulers), when for once it _is_ actually easier to start over and fixing a lot of traditional pain points?
- zozbot234 5y ago> a lot of the features you need for a shared multi-user system are basically cruft That's just not true. A "single-user" system running multiple "apps" where each app is actually endowed with its own user-like privileges is just a shared multi-user system by another name. There's no reason not to reuse the existing infrastructure, if perhaps with some tweaks.
- Daishiman 5y agoToo many tweaks to be worth it. To this date we still find bugs in sudo, interactive shells, weird env var interactions from su and inheriting variables. The Unix permissions system is complicated yet insufficient for protecting systems. There are multiple, orthogonal machineries for isolation (jails, chroot, namespaces,SELinux thingies, setuid and sticky bits) and they all interact in horrendous ways that leave huge security gaps. Just reconsidering their use cases and redoing al lot of that having learned the lessons of the past twenty years is a huge advance.
- AshamedCaptain 5y ago> We have moved away from a world of shared libraries, filesystems, and UNIX users and permissions into a world of shared-nothing This is absurd. Fuchsia has all of shared libraries, filesystems, users and permissions. Probably even more of those than Linux. And while I am a fan of microkernels, I can hardly claim that have become more interesting as of lately. In fact, I would even claim they have become even less interesting, since people are now taking seriously for some reason all the side channel attacks that practically make hardware-enforced privilege separation useless.