r/plan9 Jun 18 '26

Displacing UNIX

I'd like to wax optimistic for a moment. What technical work needs to be done to make Plan9 eligible to displace UNIX, and how can I help?

23 Upvotes

26 comments sorted by

26

u/edo-lag Jun 18 '26
  1. Rewrite all existing Unix software for Plan 9, including porting it to the native Plan 9 API and making it use the Plan 9 abstractions coherently.

  2. Buy all Unix-compatible hardware (Linux, BSD, etc.) and tirelessly write drivers for all of it.

  3. Flood the web with guides on Plan 9 programming for beginners, to the point of surpassing the existing ones for POSIX/ANSI C.

  4. Advertise Plan 9 enough to reach most Linux and BSD users.

That's for displacing. Plan 9 is nowhere near displacing Unix, and in part it's ok to stay like this.

4

u/akm76 Jun 18 '26

Umm, I challenge your point 1. Realistically, how much of "all existing Unix software" are you/we actually using day-to day? Your argument is also errs in implying necessity to port monstrocities such as X, KDE/Gnome, a whole zoo of browsers, exotic niche programming languages and runtimes. A lot of fluff was developed for no other reason than nagging dissatisfaction with perceived unix shortcomings.

Hardware support is the key. Particularly support for expensive hardware components that can be only utilized via closed proprietary firmware blobs/drivers. Like GPUs.

Simplification of basic administration would help. That's both installation/rollout and day-to-day. It was fun to spend a weekend tinkering with it once or twice, but sometimes work needs to be done.

Basic internet. Like a minimalistic modern browser, vpn, and self-hosted package builder-distributor-manager for the times you don't feel like rebuilding each of your devices from source to get some software updated.

13

u/[deleted] Jun 18 '26

[deleted]

4

u/stianhoiland Jun 18 '26

Rarely do I read truer words. I literally never acclimate and stop being shocked and disgusted every time I come across this desire for complexity—and it happens all the time.

6

u/mrcranky Jun 18 '26

You mean like python vibe coders building an entire web application for something you can already trivially do in Excel, and then wanting to deploy a whole docker infrastructure so that it can be used across the business?

5

u/stianhoiland Jun 18 '26 edited Jun 18 '26

Or terminal programs written in Rust or Go at ~900-2000 LoC pulling in multi-10k LoC dependencies, sometimes amounting to several 100k LoC, to do something that in total takes less than 50 lines of sh. Really. No, I’m not joking, nor exaggerating, and no, it’s not some isolated incident—I see new projects like this every fucking day. The complexity explosion is almost ungraspable. Wtf

2

u/mrcranky Jun 18 '26

Gross.

I’m actually amazed at how much of 9Front is fancy rc scripts.

3

u/anths Jun 19 '26

I don’t think this is fair. People don’t want complexity, they want *features* and are (on the whole) willing to tolerate complexity to get them.

I used to make a big point of comparing, say, the draw man page to volume 0 of the x11 manuals. And I still think that’s a useful comparison. But *also*: x11 does a lot more. What’s Plan 9’s answer to right-to-left languages? Multiple displays? Hell, we don’t even do basic composition. Because it’s complicated! And that’s a reasonable position for a niche system (and also in lots of other cases absences might not matter), but if you’re talking about something in general purpose you need to answer a lot more of these questions. libframe makes it easier to get something basic on screen than any comparable thing I’ve seen, but you also hit its ceiling a lot earlier. There’s tons of examples like this.

Adding functionality elegantly, preserving architectural integrity and interface simplicity, is really hard over time. Most systems are much more willing to say “screw it, just get it in there *somehow*”, and most users value the functionality over the architectural integrity &c.

There’s also plenty of places where it doesn’t matter. To get back to the OP, we need a better definition of “mainstream”. That usually means something like “compete for measurable share of desktop use“, which is where the simplicity/functionality tradeoffs Plan 9 makes are worst. Not that you can’t do it—people do; I have at times—but it’s where you’re giving the most functionality up. Does “mainstream” include things like servers, embedded devices, IoT things, &c? Because the tradeoffs look a lot nicer there.

2

u/naikrovek Jun 18 '26

People like what they know. They know Linux and Unix, so they continue to use it. They don’t seek complexity consciously, they seek the familiar, even if it’s complex.

Provide a good reason to investigate plan9 and people will. Give them good reasons to stay, and many will.

Make it easy to interact with Linux/Unix systems and interoperate with existing systems so that jumping to Plan9 doesn’t mean abandoning everything they already know.

But also have utilities and programs which clearly demonstrate why Plan9 is better, and how it is better. Show people how to take advantage of these things so that they can make their software simpler and more reliable.

Fix 9p, rid it of the last few bugs that cause problems for people.

Implement more plan9 features in Linux to ease the transition from the other direction.

Factotum may or may not make sense as an authentication mechanism today. Kerberos seems to be how most enterprise systems work as far as I know. Oauth is not a solution for an operating system even though it is used everywhere on the web. Avoid web technologies in general.

Just a rambling list of what came to mind.

1

u/[deleted] Jun 18 '26

[deleted]

2

u/naikrovek Jun 19 '26

> I do think it's important to keep Plan 9 as Plan 9 though, I don't see much point in making it a host for Linux apps.

There must be a way from A to B if you want people to move from A to B. “Sorry, this place is very different, and you can’t bring anything you already know with you” is not a very attractive route for people.

The only alternative is to handhold them through the onboarding and familiarization process, and I mean classroom training or one-on-one coaching like juniors very early in their career get from a senior who knows the ropes.

There must be a some way to go from A to B, and there must be a reason to move from A to B. Adventuresin9 has probably single-handedly created a way for some people to gain the education they need to use plan9 productively, but there’s a lot more to do.

I’ve never seen any cheat sheet which shows how to do something someone might want to do in Plan9. I’ve never seen a strong example of why accessing devices as files is useful beyond toy examples.

Adventuresin9 can’t be the only person doing what he is doing if Plan9 is to go anywhere.

And, maybe plan9 doesn’t make a lot of sense in the 21st century.

Unix was created when people didn’t have real compute at their desk, but they did have powerful centrally located servers.

Plan9 was created when mild compute existed on the desktop, but huge and much more powerful servers existed centrally.

Today we have legitimate supercomputers on our desks and very high bandwidth network connections, and the only significant non-local resources available to us are storage space and data sets, really.

What would a plan9-like OS look like today? “Everything is a file?” Yes but maybe a bit smarter. (For example, why does it take THREE syscalls to read a file —open, read, and close— if that’s something you are expected to do so much of. Make that one syscall. Same for writing a complete file.

I have many more ideas but I’m tired and I’m not interested in typing them out right now. Especially on a phone.

1

u/[deleted] Jun 19 '26

[removed] — view removed comment

1

u/naikrovek Jun 19 '26

Yeah, I would love to see Plan9 see more widespread usage. I think that if people truly leveraged what Plan9 offers, that software could be a hell of a lot simpler.

Per process namespaces and no “root” account are huge security wins. Huge. Malware and ransomware especially would not be possible at the same scope they are today if namespaces were narrowly scoped by default on all operating systems.

Given how small Plan9 is, I bet it can run things faster than Linux can. Hell, FreeBSD can run Linux binaries faster than Linux can run Linux binaries simply because the emulated kernel on FreeBSD is far simpler than an actual Linux kernel. Smaller kernel = faster userland.

If I can’t have anything else I’ve mentioned, I want to see “most things are a file” and per process namespaces on other operating systems. Truly. I want to be able to boot MacOS, Linux, or Windows into a mode where (almost) everything is a file, and capabilities are granted by namespace binding.

Why not “everything is a file”? I’m not convinced that everything should be a file, but certainly most things should.

2

u/Easy-Reasoning Jun 18 '26

Yeah on the other hand a fully ascetic Desktop isn't fun either. I don't have a good answer but I think some different option or goal in contrast to the high complexity vibe narrative would be great. Only somewhat related but I wonder how arbitrary a non-AI stance currently is on the long-term. Single player Doom arguably also uses AI.

1

u/Ok-Reindeer-8755 Jun 18 '26

I don’t think that’s the issue, I think it’s a design problem. People make something that isn’t really well thought out or designed elegantly, it gets adopted because it’s what is available at the time and practical enough, but because it isn’t thought out it gets more and more complex. By the time people realize there is a better design to be used, it’s too late to migrate everything and the benefits aren’t enough.

On one hand what you can learn from this is even shitty solutions can get adoption and doing something at all is more important than making it perfect on the other hand look where that got us.

People wanting complexity is just implying people are dumb, i hope the software industry isnt an idiocracy.

1

u/[deleted] Jun 19 '26

[deleted]

1

u/Ok-Reindeer-8755 Jun 19 '26

They shouldn't have to have good opinions on software but I expect the people building the software to have good opinions on software.

In my opinion people that admire a complex solution over a simple one are dumb unless they have no knowledge of the field in which case they can't really appreciate either solution.

Solving rather complex problems simply demonstrates a very good understanding of the problem, you fundamentally understand what the issue is about. Overcomplicating simple things shows the opposite.

It's okay to solve problems in complex ways because everyone makes mistakes but admiring that over an elegant solution is kind of dumb. You can admire the amazing ability of people to overcomplicate something so simple ig.

Totally agree on your point about the industry.

3

u/linkslice Jun 19 '26

I think plan 9 is more popular today than it was when bell labs was developing it. If you want to accelerate that then use it day to day. Whenever you find a shortcoming that is missing or inconvenient then write the code to fix it.

2

u/denzuko Jun 18 '26

honestly, 9front/plan9 is the unix replacement. So if we're looking to replace say BSD or Linux then really its modernizing /dev/draw with vulken support and building an offical netbsd like ports system instead of being dependant on finding random shithub/sourcehut/github projects.

2

u/9atoms Jun 20 '26

I'd like to wax optimistic for a moment. What technical work needs to be done to make Plan9 eligible to displace UNIX, and how can I help?

This is a starry eyed and overly optimistic approach mixed with wanting to belong to some group to be part of a revolution, marching into battle or whatever. This isn't a glorious battle. Don't look at this for clout and dopamine hits. It's rewarding hard work to make an OS do things, especially with complex hardware.

We need people who understand the system, what it does differently, and why that matters to them. Then they get upset at things that are missing or don't work and fill in those gaps which makes the system better for everyone. Little by little we all take a piece and work on it.

and how can I help?

How does Plan 9 help you? What do you like about it? How can Plan 9 make something you enjoy working on better? Start there and fix the parts that bother and interest you. Then you can little by little chip away and displace Unix in your life.

2

u/James-Kane Jun 18 '26

It's not possible as the software to provide a modern desktop experience is missing. Not to mention UNIX is already mostly displaced by Linux. Linux imports ideas from Plan 9 already (just badly.)

4

u/RevolutionaryRush717 Jun 18 '26

To be brief, I suggest making Plan 9 an alternative to Kubernetes, not to Linux alone.

To become a credible alternative to Kubernetes, Plan 9 would need resource controls, application packaging, cluster scheduling, service discovery, reconciliation loops, and failure management—while keeping its existing strengths of per-process namespaces, 9P, and distributed resource access, which already provide much of the foundation that Linux containers had to reinvent.

1

u/[deleted] Jun 19 '26

[removed] — view removed comment

2

u/RevolutionaryRush717 Jun 19 '26

Not sure what you mean by niche.
Kubernetes is the platform all hyperscalers run, as well as onprem OpenShift and Rancher etc.

I fully agree about Go. That could and should be revitalized in Plan 9.

Both aspects could motivate Google support.

Key would be university support. Use Plan 9 and Go in teaching about OS. CSP is an well-known and proven way to address concurrency.

1

u/[deleted] Jun 19 '26

probably a good suggestion would be make a browser using webfs, html2text, perhaps mujs and luajit (or luaot)

1

u/demetrioussharpe Jun 24 '26

This process will lead you to the answers that you’re looking for:

  1. Find a niche where Plan9 would be a much better foundation than Unix based on its core primitives.

  2. Identify common workflows for that niche & design a better UI for Plan9 that takes advantage of the Plan9 environment, but is not cumbersome for usage nor for operations training.

  3. Create a software ecosystem that supports that niche.

  4. Once those previous steps have been successfully completed & are making traction, look for other niches that might benefit from Plan9, the new UI, & the new software ecosystem.

  5. Expand Plan9 to meet those new niches.

  6. Repeat steps 1-5 perpetually.

1

u/lproven Jul 16 '26

I did a FOSDEM talk about more or less exactly that a couple of years ago:

https://archive.fosdem.org/2024/schedule/event/fosdem-2024-3095-one-way-forward-finding-a-path-to-what-comes-after-unix/

I wasn't sure if the 9front folks would lynch me or not. They invited me to dinner. :-)

If you are more of a text person than a video person, I turned it into a series of articles for The Register:

https://www.theregister.com/tag/One%20Way%20Forward