3 ms·
There have been plenty of new OSes and computing paradigms over the years, a plethora of them. They weren't 'killed', they just never got any traction. The inte
by simonh 4y ago
There have been plenty of new OSes and computing paradigms over the years, a plethora of them. They weren't 'killed', they just never got any traction. The interesting question is why that is.
Unix at it's core tries to be as simple an interface to the hardware as possible, and as un-opinionated as possible. It's written in a language that is a thin layer of syntax over assembly. Files are arrays of bytes. Most devices just look like files. It imposes the absolute minimum of abstractions over how these things are implemented in hardware.
Alternate OS designs are generally far more opinionated. File systems are either relational or object databases. Networks and machines are abstracted away so you don't even know they're there. Lots of fancy virtualisation. The problems are many. First of all this imposes a cost in resources and performance on even the simplest applications. Second these things are best thought of not as operating systems, but as applications. They're providing services similar to those of Oracle, or Hadoop, or VMWare, etc but you don't get to choose which implementation you want, you get the particular combination of ones provided by the OS and either like it or lump it.
The minimalism of the base Unix layer is it's superpower. Whatever additional services you want on top is fine by Unix. That's why it makes a great underlying layer for the Mac, iOS and Android. Even if you do want to build an opinionated high level system, why not build that on top of Unix? We don't need a workmanlike unopinionated new base layer OS that provides efficient access to hardware resources, and nobody want's to write one. They want to write high level fancy abstraction-laden half-OS half-application monstrosities. STOP! You're not writing an OS, you're writing an application. Even if anyone does want to write a lean efficient base OS layer nobody cares, because we already have Unix.
- lproven 4y agoUnix was a relatively simple (but not minimal) base layer around a 1970s minicomputer architecture, one with no networking, no graphics support, and dramatically constrained storage, with users on text-only terminals. It is a very poor fit to a single-user personal workstation. If you think that all other OSes are more complex, then I suggest that you investigate the fairly rich space of other OSes designed for single-user workstations. Notably, I urge you to study the 1980s and then 1990s successors to Unix from Unix' own creators: Plan 9, for networked graphical machines. Then Inferno, for whole heterogenous networks of machines with dissimilar CPU architectures. In parallel non-Unix spaces: If you have a Raspberry Pi, try RISC OS. It's a single-user, fully-graphical, internet-capable multitasking OS whose core fits into about 6MB. I ran it in the 1980s on an ARM workstation in 1MB of RAM. Also Niklaus Wirth's Oberon Project, which is an entire multitasking single-user OS with a tiling-window interface in a type-safe language, which is about the size of a very basic Linux console text editor such as nano. And its successor A2, which is a little bigger (but still smaller than, say, Vim) which has a full GUI, is SMP aware and can just about access the WWW. For networked use, perhaps read up on Novell Netware. Arguably the peak was Netware 3.11 but Netware 4 is also instructive. In its day it had a performance advantage over the best-tuned competition of around 4 digits in percentage, i.e. it was around 10x-30x faster than any rival UNIX of its time at what it did. For the space of supporting dissimilar CPUs in a single binary, look into Taos and its successors Elate and Intent. There are a lot of OSes out there that make even 1980s UNIX look bloated and over-complicated.
- the_only_law 4y ago> Plan 9, for networked graphical machine. Oddly enough, I quickly googled, and it seems AT&T decided to target the embedded market with Plan9 which feels like a bit of an weird niche to put it. There’s no way I can see a new operating system dethroning the NT/*nix world at least not without somehow catching up to decades of hardware no one but those two support.
- lproven 4y ago9front is still alive and maintained, and there are two forks that I know of, Jehanne and Harvey. Inferno has been ported to at least one smartphone. Both run natively on certain models of Raspberry Pi. Another strategy is what OpenVMS is doing initially: there is a single model of reference hardware, but the initial version 9.2 now available runs on and supports Xen, KVM, VMware and Virtualbox. Hyper-V is coming in 9.2-1. But the real question is: should it support decades of hardware? Why, if it's something new, doing something different? Perhaps it only needs to support its own hardware, and if it proves viable, then additional models and support can be added? I did a Fosdem talk on this general idea, and it's been a recent HN discussion. The title was "Starting Over". You might find it interesting.
- simonh 4y ago> If you think that all other OSes are more complex, then I suggest that you investigate the fairly rich space of other OSes designed for single-user workstations. The problem with a lot of these alternate OSes was that they were still too opinionated. Plan 9 tried to abstract away individual computers and impose a particular approach to sharing resources. Oberon was as you say type safe and object oriented and tied to a particularly peculiar Ui paradigm. Netware was barely an OS, really just a highly optimised network file system. Tellingly a lot of the services and applications that were parts of these OSes made their way into Unix. That’s because these were application level services that had been tied into the OS at a low level. Too opinionated. If you wanted to access compute resources using a different model to Plan9, then Plan9’s implementation got in your way. If you didn’t want to run software using the Oberon language, the Oberon OS got in your way. If you wanted to do something other than access files using the Netware protocol, Netware got in your way. To the extent any of these OSes were simpler or easier to develop on than Unix, their advantage simply wasn’t enough of a win to make it worthwhile. That’s the historical argument though. For the forward looking situation, there is a lot of interesting work being done but it’s all at levels above that of the OS. Network services, storage systems, programming paradigms, resource abstraction. There’s plenty of innovation in these going on, it just doesn’t need to be done as something baked into a new underlying OS. There’s nothing wrong with building it as a service on top of Unix.