There’s a new 9front release! So, what exactly is 9front, you may ask? Well, after it became clear that Bell Labs wasn’t doing much with plan9, a group of developers took matters into their own hands and created 9front, a fork of plan9. Their latest release is called DO NOT INSTALL, and brings things like more USB audio support, DNS over TLS, WiFi support for the Raspberry Pi, I2C support, and much more.
I’m not particularly well-versed in the world of plan9, and more often than not it feels like a form of high-level programming performance art that I’m just not smart enough to understand. The whole community and its associated web sites have a very unique feel to it, and I always feel like I’m just not cool enough to be part of it. That’s not a dig at the plan9 community – it’s more of an indictment of my lack of coolness.
Which really shouldn’t come as a surprise.
9front is out there. I have used plan9 every so now and again since getting it on floppy at a trade show in the early 1990’s. It’s always interesting, quirky, and even weird. 9front is the most accessible source of plan9 these days, but that accessibility is pretty much limited to materials. The community seems subversive somehow and unfriendly to newbs… at least on the surface. If you reach out for help it’s there, it’s helpful, and even friendly, but the web presence? decidedly discouraging.
> The community seems subversive somehow and unfriendly to newbs… at least on the surface.
Agreed.
On the other hand, I totally understand why. They are working to maintain a genuinely better Unix than Unix and the Unix world just doesn’t care and ignores them, even though they kept the broken promises, improved the design, made it better.
But the folks behind Linux and all the BSDs keep re-implementing the broken turd of 1970s Unix, and polishing it, and ignoring the fact that _it’s a turd_ and it stinks even worse now than it did when it was fresh.
Plan 9 was abandoned because all the useful bits got put into Linux (/proc) , and the rest wasn’t useful enough to convince people to switch over. The only part of Plan 9 that I never got to play around with that I still want is acme the text editor. Its really difficult to get installed, I’ve spent some time trying to get it but have never gotten it to work on linux although I know to this day Rob Pike still runs it somehow. text editors are as interesting as operating systems to me. Maybe I’ll pick that up again some day.
Correct me if I’m mistaken, but what I’ve read of plan 9’s design indicated that it took the “everything is a file” principle several steps further than unix, as well was essentially having network transparency everywhere, e.g. rather than the very different song and dance one has to do to create/connect a socket in *nix, one simply opens a file pointing at a network location and the OS handles all of it without the application layer being aware. I’m not sure how /proc covers that functionality.
“Plan 9 was abandoned because all the useful bits got put into Linux (/proc) , and the rest wasn’t useful enough to convince people to switch over.”
Oh he’s just being provocative. Plan 9 is neither abandoned – as this release demonstrates – nor is it even possible to incorporate *all* the useful bits – only possible with a clean sheet design – into a legacy UNIX.
While it’s probably not feasible to incorporate all of the useful parts of the Plan 9 architecture into a conventional Unix, it is still possible to do so with a system that maintains a high degree of compatibility with conventional Unices unlike Plan 9. I’ve planned out such a system and have been working on it on and off for a while. I’m actually planning to go even further than Plan 9 does and replace anonymous memory with memory-mapped files, and reduce the number of user-visible primitives down to pretty much just read()/write() and variants thereof, with even most file-related APIs that aren’t read/write variants being RPCs over a permanently-open file descriptor; my OS is microkernel-based and will resemble QNX just as much as it does Plan 9 and read/write will be implemented as a very thin layer over microkernel IPC.
Your ideas sound interesting even if I am not qualified to have an opinion on the merits of your proposal. But I disagree everything has to mimic linux because linux is already quite good at being linux! 9front – whilst still niche – is increasingly popular so I would develop from that, like HarveyOS tried to do (which lives on as r9, a rewrite of Plan9 in rust).
Superficially your objectives sound a bit like those of Redox, which also lists Plan9 in its inspirations. Again, a project ready for contributions and ideas.
The last days of April have been a bonanza for practical alternative OS, what with new releases of Genode Sculpt and Plan9 mere days apart.
My point being that your OS is (almost certainly) going to be experimental and for fun. Posix compatibility be damned – if Plan9 is nearest where you want be I’d build from that.
You’d still be able to port the growing library of 9front software which is not to be sniffed at.
I’m writing an OS with the goal of it being a daily driver rather than just because I want to experiment with writing an OS. For my purposes, that means a high degree of compatibility with Linux applications and drivers while avoiding the vast majority of the dysfunction of Linux and also providing various features that are absent or limited in Linux (most of the issues with Linux are due to its lack of a uniform architecture for extensibility and its disjoint development model). I’ve got most of the architecture planned out, and Linux compatibility doesn’t really compromise the design in any particularly significant way (whatever issues would occur would be limited to the Linux binary compatibility layer).
I do think that there’s a fair bit of room for a “better Linux than Linux” to make inroads, assuming such a system is reasonably mature, whereas an alternative OS that just does its own thing and has limited or no compatibility with mainstream OSes is going to be useless to most people since it’s not going to run most of their applications.
Hardly a day goes by when I don’t see someone complaining about issues with mainstream OSes, and I’m certainly tired of having to put up with Linux’s bogosity. Being compatible with Linux but not actually Linux might actually give such a system an advantage over Linux since people might be more likely to approach it with an open mind rather than just assuming it has the usual Linux issues (whereas something that’s just a “better Linux” would be more likely to just be seen as yet another Linux distro).
andreww591,
It’s a noble goal and I agree with many of your points…however alt-os devs typically end up throwing in the towel because the work is endless and usually the payout is minimal. You can dedicate yourself to it as a hobby, and I see nothing wrong with that, in fact I’d encourage it for learning and experience, but realistically it’s almost never the practical choice.
Linux compatibility is going to be a never ending task. I think this is the reason microsoft discontinued WSL 1, their linux compatibility layer for windows. It certainly was useful to developers who don’t want to dual boot, but linux is a moving target and with WSL MS was always playing catch up. MS ultimately replaced WSL with WSL2, providing linux compatibility by running the real thing in a VM. This brings greater linux compatibility long term for a lower cost to microsoft.
So for your project, while I get the appeal of linux compatibility being a goal for your OS, you may find that long term it’s not worth the effort; a VM may get you much better compatibility with much less effort.
In terms of designing things better than linux, I don’t doubt that you can, we both know linux is flawed. Will your work actually go anywhere? It’s fun to think so, but you should know it’s not very likely that you’ll make much of a dent with your new OS since users are notoriously reluctant to change.
> or is it even possible to incorporate *all* the useful bits
100% this.
“Here is my improved bicycle. It has 42 wheels, pedals, and sails, and a windmill, both petrol and diesel engines, and a 100kWh battery pack and all-wheel electric motors. I have incorporated all your improvements so now we don’t need your pedal bicycle any more!”
Acme is easy to install in Arch Linux, just install “plan9port” and a shortcut to Acme appears in the application menu (if you use ie. Xfce4).
I recommend the videos from “Adventures in 9” on YouTube. He provides what is perhaps a less intimidating way into 9front and other Plan9 systems than the “official” 9front materials; although it is still very technical!
https://www.youtube.com/@adventuresin9797
FWIW, for those interested, I tried to explain the significance of Plan 9 here:
https://www.theregister.com/2023/12/01/9front_humanbiologics/
I used some of that as part of my FOSDEM conference talk in February:
https://fosdem.org/2024/schedule/event/fosdem-2024-3095-one-way-forward-finding-a-path-to-what-comes-after-unix/
If you’re into videos, watch that. No slides, but the deck is on the programme page, as is the script.
I also turned it into a series of articles for the Register. They are here:
https://www.theregister.com/Tag/One%20Way%20Forward/
I read your piece on “Humanbiologics”. They are not welcoming because they might have been spurned too many times. That is a recipe for irrelevance. It doesn’t matter how amazing a piece of technology is, if the people around the technology are a royal pain in the butt, it’s easier for a newcomer to just go for the second best option. At the end of the day, having reasonably friendly people to deal with is more conducive to effective use of technology, than having to endure hostile elements with the better mousetrap.
It’s why I am a Linux user today. Young me did a tentative foray into the BSD world, back when they were still top dog in FOSS *Nix. I had made my first cautious steps with Linux, but was curious what the BSD’s were all about. I wasn’t demanding. I wasn’t impolite. What I was immediately met with was condescension and derision. How dare I, a lowlife Linux filth, knock at the hallowed doors of The True Descendants of Unix?! I instantly decided to go back to the merry, ragtag bunch of Linux lovers and never seriously considered BSD ever again.
r_a_trip,
I believe you when you say this was your experience, however I experienced a lot of condescension and unfriendly attitudes on the linux side when I was a windows users. I had to ignore some bad attitudes to make the linux transaction. I’ve seen these attitudes with windows and mac users too, I think you could encounter hostile voices everywhere depending on the circles you enter.
True. Linux certainly has had a dark period where communities around it were less than stellar towards new comers. Where RTFM was the standard answer to all questions. Those days are largely gone.
When it comes to the BSD communities now, I wouldn’t know. The sad truth is, I also have no incentive to find out. Betting on the merry, ragtag bunch was the right bet. Linux serves my needs and then some. Every BSD article I read these days seem to come with some hefty caveats around what they support and in which areas they are behind.
Why would you call a release “DO NOT INSTALL” if you want it to be widely spread and used? That’s like something you would tag known malware with, and seems entirely unprofessional. I’m happy to go along with their recommendation and not install it 😀
I’d probably install it because it says “do not install”. What greater provocation to install could there be to anyone curious?
Also calling your release “Do Not Install” is the sort of refreshing honesty that one only wishes could be adopted by vendors of Linux and Windows.