During a weekend of tidying up – you know, the kind of chore where you’re knee-deep in old boxes before you realize it. Digging through the dusty cables and old, outdated user manuals, I found something that I had long forgotten: an old Plan 9 distribution. Judging by the faded ink and slight warping of the disk sleeve, it had to be from around 1994 or 1995.
I couldn’t help but wonder: why had I kept this? Back then, I was curious about Plan 9. It was a forward-thinking OS that never quite reached full potential. Holding that disk, however, it felt more like a time capsule, a real reminder of computing’s advancements and adventurous spirit in the 1990s.
↫ Bill Dyer at It’s FOSS
As the article notes, 9front is the way to go if you want to try Plan 9 today. Plan 9/9front appeals to a very specific type of person, but when you dive into the excellent – and incredibly entertaining – documentation, it really seems quite easy to grasp and get started with. There’s definitely things you’ll need to unlearn and some compromises you’ll need to make, but I think you’ll be able to get a lot more work done than you might think.
Also, if you start adding software to 9front, you get to use the best GitHub alternative of all time: shithub. That alone makes it worth it to try 9front.
My memory is hazy but I seem to recall that Plan9 was not even POSIX compliant. You couldn’t just take some UNIX/LINUX code and recompile it to Plan9. And the point of Plan9 was that Plan9 was compatible with other Plan9 systems, so you needed to start with Plan9, not add them in incrementally. So then you have a chicken or egg problem of how to get started with Plan9.
That said, it really, really seemed like a good solution for a paradigm of highly interconnected, networked systems that were very, very fault tolerant. I recall that some massively parallel supercomputers ran Plan9. It would be interested to see the lessons learned from those systems.
And as a thought experiment, what would it take for a Plan9 system to be minimally viable? A browser? Office docs?
AndrewZ,
That’s the problem inherent with trying to fix unix primitives. Plan9 was sort of a unix 2, they improved parts of unix, but it was too late. Unix & posix were the only standard that mattered.
I think the lesson, not just with plan 9, but with dozens and dozens of operating systems, is that no matter how much care you put into building new/improved frameworks, the unix compatibility layer is going to be the only one that gets significant use.
To be honest, I don’t like where this lesson takes us. We don’t need “yet another unix” OS, that’s been done to death. But at the same time, people who try to innovate end up getting overlooked, time and time again. The result is that the only innovation that’s rewarded takes place on top of posix regardless of the merit in trying to improve foundations themselves. While many of us do admire new OS innovation as observers from afar, the majority just keep using the incumbent operating systems on our desks, which is good enough with significantly better support.
In this industry, success requires strong corporate backing and marketing power that most projects will never realistically have.
I think there is an opportunity with new programming languages. Rust for instance has begat Redox, and there is even a Harvey OS offshoot working on a rust version for plan9, whereas Linux is just too big and the effort to add rust there has largely failed.
Redox is bending to POSIX/Linux. It’s going to be another *nix clone. 🙁
This kind of reinforces my thought that Linux is going to become a specification like POSIX. The Linux kernel might be a reference, but ultimately a specialized Linux compatible OS is going to be the thing which gets installed.
For good reason, it’s a shortcut to getting lots of software running.
Linux is big enough that it can do what it wants, Systemd for example, but people also get mad when Linux does what it wants, Systemd for example.
Linux is being pulled in multiple different directions, so it ends up not innovating as much as it could. It would have been interesting if Linux hadn’t gotten picked as the Unix successor by IBM, and it could have stuck with being a desktop *nix.
> Plan9 was not even POSIX compliant.
No, it isn’t. It is radically smaller and simpler than Unix, and only has about 5% as many system APIs as Linux 6.x.
You can’t move forward with an improved cleaner design if you keep all the old baggage. So, for instance, hard links are impossible, because there is no single canonical view of the filesystem; every process sees its own virtualised view. There is a `mv` command but it works by copying-then-deleting, because it has to, because a process can’t tell if the source and destination are on the same volume — and that is intentional.
But it was 1991 or so.
Now, there’s a way round that: VMs. Run a microVM with Linux in it. No filesystem — virtualise that over 9p. That’s already supported. No emulated hardware, just Virtio devices. No local display; there’s a Plan 9 X11 server, so use that to display.
I wrote about this:
https://www.theregister.com/2024/02/23/linux_built_for_a_vm/
It’s part of a series:
https://www.theregister.com/Tag/One%20Way%20Forward/
… based on a FOSDEM talk I did last year:
https://archive.fosdem.org/2024/schedule/event/fosdem-2024-3095-one-way-forward-finding-a-path-to-what-comes-after-unix/
Need a browser? Run Firefox on Linux in a microVM. Need Libreoffice? Run it on a different microVM. Need Slack or Teams? Run another microVM.
> what would it take for a Plan9 system to be minimally viable?
A port of something like ncurses would help a lot.
The UI of Plan 9’s successor, Inferno, is a lot easier to navigate. A port of that would help.
Good lord! This is bloody brilliant in so many ways!! You can run a generic virtualized tiny Linux, or you could run a custom virtualized Plan9! The chicken or egg dilemma is solved for Plan9.
Now we just need some recipes.
> Good lord! This is bloody brilliant in so many ways!!
Why thank you!. 🙂
Your article is brilliant, I don’t know how I missed it the first time around:
https://www.theregister.com/2024/02/26/starting_over_rebooting_the_os/
I think the only thing to add is a use case. What kind of programming warrants the steep learning curve, high productivity curve of a dedicated Smalltalk/LISP/Oberon environment? I’m sure there are plenty out there.
Here are directions to install Open Genera 2 (the LISP OS) on Linux:
https://archives.loomcom.com/genera/genera-install.html
Someone needs to port this to Plan9.
And here is this write-up from 2006: https://www.osnews.com/story/15235/investigating-the-plan-9-operating-system/
Thanks Andrew, your article in 2006 was my introduction to the weird world of Plan9! I was using Slackware as my main OS back then but it had begun feeling stale and I was digging into non-Linux, non-BSD OSes back then.
I never could wrap my head around it, like higher math or programming beyond BASIC, my brain just turns to mush trying to conceptualize it. But I love the idea of it if that makes sense, it’s so different from what we all use everyday; I find it fascinating and I’m a fan even if I never figure out how to properly use it.
A surprisingly amount of great stuff come out of Bell Labs, to this day I still use some great topographic analysis libraries developed by Bell Labs in the IDL and Java language. I would think anybody doing some sort of image analysis owes something to Bell Labs for Topo or Mirage.