While Plan 9 is cool and such, I prefer what they built afterwards with the lessons of Plan 9, while trying to compete against Java and Sun.
Inferno and Limbo, which tend to be ignored with too much focus on Plan 9, a middle stop in their whole experience designing OSes and programming languages after being done with UNIX and C.
I've always wondered. Bell Labs' Inferno, Sun's JavaOS, and Microsoft's Singularity were built on the same principles of OS being almost entirely built on top of a virtual machine, and it's a very interesting idea from many points of view. But all of them seem to have failed to gain enough traction to enter the mainstream.
Was there any reason for that? Were the CPUs not powerful enough, or were the compilers not quite there yet? Or did it have more to do with the business side of things?
> Was there any reason for that?
Perfect is the enemy of good, and good enough is the perfect enemy of better.
Unix/Linux were/are good enough for vast majority of world's needs. So anything better is not worth the hassle.
Yep. *n*x is a victim of its own success. Thompson, Ritchie, Kernighan, et al built something so much better than most of the competition that it ate the world.
There have been better ideas since then (including Plan 9) but nothing able to knock *n*x off its perch.
IMO, LMI and Symbolics might have done it, if their offering hadn't required enormously expensive machines (by the standards of the time), while *n*x would run on cheap hardware (again, by the standards of the time).
Perhaps we'll eventually see an innovative OS written in WASM. That's about the only way I see to get around the vendor lock-in (I mean, even Microsoft appears to be converging on a "Windows UI wrapped around a *n*x kernel" model... Apple, of course, has been using a "Mac UI wrapped around a *n*x kernel" for a couple of decades now).
For anyone who hasn't read it, I recommend Richard Gabriel's "Worse is Better" essay: https://dreamsongs.com/WorseIsBetter.html
(original essay and several followups at this link)
WSL is running on its own VM. Windows kernel still owns the game.
On "Cloud OS" the underlying kernel only matters for classical workloads being pushed onto the cloud.
Any language that doesn't depend on POSIX and has a rich library ecosystem, can happily run on top of type 1 hypervisors, which are in a way, the revenge of microkernels.
> Any language that doesn't depend on POSIX and has a rich library ecosystem, can happily run on top of type 1 hypervisors
That's interesting. Can you run for example Golang programs on ESXI? Go isn't exactly POSIX-free but it also doesn't need all of it.
https://github.com/solo-io/unik
https://github.com/icexin/eggos
"Pure Go Unikernels - go metal with TamaGo"