Hacker News new | ask | show | jobs
by glangdale 1712 days ago
This is worse than retrocomputing; it's necrocomputing, a pathetic attempt to mate with the corpse of a dead concept operating system. Instead of drawing any interesting lessons from Plan 9 for OS and distributed system design, it's an attempt to turn a burned-out wreck into a daily driver, generally by redefining driving as "sitting in a car and making brrr noises".

They are remarkably honest about it: "There is no advanced auto-completion of program names and flags, like hipster zsh and fish users might be accustomed to. But this really isn't an issue since Plan 9 has virtually no programs or flags to speak of, as you will discover soon enough."

Those with any kind of spidey sense for going down tech rabbit holes might also notice how front-and-center features for, ummn, connecting/emulating computers not running Plan 9 are in this guide.

Randomly cutting into the document presents you with a plethora of the usual fetishization of the fact that a nearly useless operating system, window manager, etc. doesn't take nearly as many LoC as something that more than a handful of people use, not to mention a giant list of things that you apparently shouldn't do, like use files made in Office: "There are a great many office suits (sic) on most operating systems, and other office utilities besides too numerous to count. So many are the choices in fact that it's easy to forget that "office" is just a fancy word for working with text."

It seems to close on some daft explication of how everything can be a database and how you don't need a real one, presumably after having invested thousands of words on how you don't need a spreadsheet, don't need a web browser, don't need an office suite, etc.

I cannot think of anything that captures the spirit of Plan 9 less than attempting to revive a dead, nearly 30 year old operating system and pretend that it's a useful daily driver. At the time Plan 9 was built it was a quirky and clean take on technology of the time, built on cutting edge and interesting hardware. At a time when distributed systems in Unix (not really Linux, then) were a tooth-grinding exercise in frozen NFS mounts and awkward, irritating incompatibilities, Plan 9 was a breath of fresh air. Honoring its spirit would be building a new operating system that applies this kind of simplicity to modern hardware (a hell of a task) - and learns from its mistakes, not trying to set up a homestead in this utter wreck.

10 comments

Operating systems grinded to a halt a decade before Plan 9 came out. I wish what you were saying was true, I wish that I didn't have to use a teletype emulator on Linux with no real mouse support, I wish I could do unprivileged resource organization (I'll give you ten minutes to try 'unshare', bind mounts, and "unionfs" on Linux before giving up).

It is pathetic that operating systems have remained crap for 30 years, but given that nothing has moved forward, there's no reason not to start with the newest operating system we have: Plan 9.

Starting with a stripped-out Linux kernel and a standard toolchain (whether gcc or clang) would start you light-years ahead of Plan 9 and still permit you to do the kind of research a lot of us (including former 9fans) would love to see. This really depends on an expansive view of "operating systems" (i.e. kernel + a lot of other stuff), but most of what you're saying is not exclusively the domain of the most privileged code.

As a bonus, you'd get a vast array of device drivers and be able to run actual computer programs used by more than a handful of people, which I hear is neat for attempting to build an innovative research operating system with some relevance.

I'm not going to argue that a standard Linux distribution is not a giant mountain of cruft, but imo it's the user space and system software that's alarming, not the kernel per se. And to the extent that the kernel is crufty: well, it's supporting orders of magnitude more things that Plan 9 ever did, and that's a good thing.

I share your irritation at all the things you outline, but you don't need to be running a wacky Thompson C codebase on top of an old kernel to fix any of these things.

I'm also far from convinced that there's any aspect of the Plan 9 design that should be accepted uncritically for a clean sheet new OS design. Saying "nothing has moved forward" is hyperbole, and plenty of things have changed since 1990, even if we accept your claim about OS stagnation as a given. I'm far from convinced that the insights of the Plan 9 guys circa 1989 are so wonderful and timeless that they are better than what could be done with a clean sheet design on top of modern hardware and a minimalist Linux kernel now.

> Starting with a stripped-out Linux kernel and a standard toolchain (whether gcc or clang)...

Harvey OS[1] is a Plan-9 based OS but with a modern toolchain using C11 and Go. Not much activity in the last few years, but then a burst of activity this summer.

1. https://harvey-os.org/

I'm not interested in any capitalist perspective of an OS- this kind of thinking is exactly why I'm using a damn teletype emulator. Profitable, "successful" computing that gets more than "a handful" of users is web tech. They can keep it.

I'll just stop at the top- no, I can't use Linux as a base, except perhaps as a host for a virtual system. For me I've been playing with uxn, but Inferno does exist. And you're right, using Inferno on a stripped Linux system WOULD be better than using Linux.

How is an OS "capitalist"? What...?
That's all OP cares about, success. To them, computing isn't worth it if it's not popular. There's no reason to write code that won't be used, no reason to research if it won't literally change the landscape of consumer computing.

But consumer computing will never change, it will remain made of a stack of legacy parts in a trenchcoat. The only real change we've gotten in a decade is Vulkan/DX12- and those APIs just expose graphics the way consoles do. We've done that for decades it's still not new.

Research because it's fun, because it's an artistic outlet. make tiny virtual computers you can run in weird places and then run them in weird places! Because you can! Learn because it is engaging, and because sharing what you learn is rewarding.

You mistake my reasons. Popularity is not an end in itself. Popularity, in this case, is a requirement to capture meaningful workloads to test what is purportedly a research operating system.

The reason that Plan 9 failed as a platform for exploring OS design (not strictly speaking "OS research" in a narrow sense) is that modern workloads didn't run there.

Honestly, who cares which platform supports a handful of processes running the moral equivalent of xclock, a few shells, a 1980s looking terminal and the occasional build? This isn't a proxy for anything that anyone cares about, and all modern hardware is ludicrously overpowered to do that. Give me a modern machine, and I could probably write you something that simulated a decent-looking 1989-level experience in pure Python (I am not saying this is a good idea).

It rapidly became impossible to test any meaningful ideas on Plan 9 because what consensus reality regards as "software" doesn't really run there. This filters down into potentially bad decisions about design of OS and runtimes. You can't test out ideas that come from anywhere outside your narrow circle of "the Unix room and miscellaneous fanboys and trainspotters".

For example, is "everything is a file" a good abstraction for a modern graphical interface of any kind? Who knows, we'll never see one ported to Plan 9, just a bunch of bitblt-level fingerpainting.

If Plan 9 had stayed popular (there's that word) enough to attract enough users to matter, maybe we could have explored these ideas. Not necessarily building a dumb clone of Windows and doing everything the same way, but having enough interoperability to make it a plausible daily driver.

My family comes from a country that only economically liberalized in the last 25 years. Trust me, popularity is _not_ a capitalist thing. Capitalism feeds into pageant show dynamics, absolutely, but popularity is still a driving force in non-capitalist economies.

There's nothing wrong with playing around with these concepts for purely recreational/artistic reasons, but I don't think that's where OP is coming from. OP talks about their reasoning in a sibling comment.

Thanks to plan9 we have 9p and UTF-8 today.

Also, rant whatever you want, but importing /net it's far better than all of the IPTABLES NAT crap you have to write in order to have an usable system build on top of stacked crap again and again.

9front is the future, and not that turd based on half baked networked file systems from Sun named NFS, or worse, Java as the 'standard' of enterprise 'computing'.

Don't let me start on X11, Bash having /dev/tcp and so on.

Or having to use VNC instead of X11's forwarding in order to be usable today (Or NX, Xpra...), thus, defying the basic scheme of X11's client/server model.

https://en.wikipedia.org/wiki/Everything_is_a_file

Why is the socket interface the way it is? Why isn't it like /dev/tcp in bash?

I tried Plan 9 about 10 years ago. Since then I use VPNs everyday and it can be tricky to setup at times.

The Plan 9 concept of just importing /net from the VPN machine as a union overlay is so elegant.

https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs#Combinin...

>Why is the socket interface the way it is? Why isn't it like /dev/tcp in bash?

That's wrong. /dev/tcp or /dev/udp should be devices themselves, not a fake one for bash.

I know the one in bash is fake but I'm saying that /dev/tcp and /dev/udp could be filesystems like /dev or /proc

Open /dev/tcp/google.com/80 or /dev/tcp/192.168.1.1/22 or whatever.

Instead of having your web server start as root and then do some UID switching to drop priveleges why not have it start as a non priveleged user from the beginning?

The ports under 1024 are reserved for root but how about we get rid of that and have files for every port number? Then use chown and chmod to set permissions and only let the httpd user account read and write to port 80?

Plan9 doesn't work like that, you have a /net equivalent per namespace.

https://doc.cat-v.org/plan_9/4th_edition/papers/names

I think in order to achieve your final point, these kinds of things are necessary. I agree that it would be great to see a project that revives the core concepts of Plan9 in a modern sense, however, you have to attract people and give them a baseline for what that is. You do that by introducing people to Plan9. Talk about its features and how it does things. Stir enough interest then go, "Hey, lets either take the code base and modernize it into a full fledged modern OS" or "Lets start from scratch with the target of where Plan9 would be today if it got decent user adoption back then." That or get a Linux or BSD dev to play with Plan9, finding a feature they really like, then they go, "Hey, I think I can implement that feature over here."
There's a huge distinction between reviving the spirit of Plan 9 and reviving the ideas. Trying to retroactively revive the direction of an experimental early-90s OS to intercept 2020-era hardware is goofy. Computers are very different now than they were then; surely some of the things invented in the past 30 years might influence OS design?

The thing that still appeals to me about Plan 9 as a concept - is the willingness to do a clean-sheet design and not be bound by the way that everyone else is doing things.

A better design would also not fetishize uselessness. It's one thing to have a cool environment but it's quite another to point-blank refuse to maintain a compatibility layer that allows people to run significant programs that people want to use. Plan 9 didn't have to allow the APE (ANSI POSIX Environment, a project from Howard Trickey) to run down into uselessness.

There are a lot of interesting system design questions that arise from letting people use computers the way they want to, for 2021 workloads. I think we probably know how to let people use shell, ed/vi/emacs/... and cc to make hand-built astronomy databases and manually paint a time of day clock into a window. But you don't get to find out the demands of modern computing without having enough compatibility layers to let someone run a database or a reasonably-complete 3D engine or a web browser on your system.

The funny part about this comment is, if one filters out all the bitter and out of place adjectives it reads like you're describing a worthwhile and fun educational exercise.
And you are so deeply affected by this why?

It’s just a guide on how to do things with an operating system. The author isn’t even really advocating it’s use as a daily driver, just providing instruction for how to do so, if someone was so inclined. There’s nothing in there that’s warrants a multi-paragraph whining about OP is using something.

There seems to be a very negative option towards retrocomputing on HN unless it related to bitching about electron or resource usage, but this is the most virile I’ve seen it.

It's not just a guide on how to do things with an operating system; it frequently veers off into the usual bizarre stuff about how no-one really needs proper office suites, databases, browsers, etc. In that, it's an encapsulation of the worst things about Plan 9. It was already dumb to go on like than in 1994; it's ridiculous in 2021.

I'm deeply affected by this because I loved Plan 9 in 1992-1994. I wrote multiple user level file servers for my silly honours project and for summer research projects. I built compiler passes for Thompson C while I was at the Labs between ugrad and starting my PhD (mixed caller save, callee save register allocation and a retargeting to the R4000). I wanted it to succeed because of the things that were good about it - but even then was starting to realize how worrying the NIH stuff in Plan 9 was. I started CMU still wanting to talk to people about Plan 9, but it didn't last.

My complaint comes from disappointment: Plan 9 was exciting because it was a clean sheet design, coming from the best judgement of a bunch of very smart people looking around at what was going on with hardware and software in around 1989. People poking the corpse now are working in the opposite of that spirit.

Everyone is free to do what they want, of course (I'd love to fire up a Commodore 64 or an Amiga!) but it feels like a tremendous waste of time to me (subjectively, of course).

I suppose that makes sense. I actually did agree with a point from your original comment * building a new operating system that applies this kind of simplicity to modern hardware* and well as the hellishness of that task :)

Apologies for the aggressive tone in my comment. I do a lot of weird stuff with retrocomputig and have found myself having to defend my time in the past

Whatever suckiness Plan 9 has, it's either incomparable to other systems, or it is not worth caring about, or if it is, something can most likely be done about it with relatively little effort, and if not, you can always run multiple operating systems in parallel.
I'm reminded of the rant given by Billy Madison during the academic decathlon.
Let's watch that movie in a WSL2 machine from the Windows partition :)
Yeah, but they have Glenda.
The Cisco PIX firewall OS was built on top of Plan9.

It was developed by a single developer.

Perhaps the use of Plan9 can spark a similar good idea?

After all 'art cannot be created in the absence of limitations' ...

Seems the above posting is botty. Text generated by one of those Ai influop language models? Anyway, you can decide for yourself if Plan 9 is for you by following along the 9SDF Boot Camp. They are two weeks in and the journey ends 10dec. A lot of quality of life experiences is lost stepping from a modern GNU Emacs/Linux/BSD platform to gain the 9p simplicity concept oriented connectivity. Apple could do worse than transition macOS from its FreeBSD foundation to Plan 9 coupling with a variety of new ISA. Compiling to multiple objtypes on Plan 9 would put a smile on Larry Tesler up there in heaven seated next to Steve Jobs doing a demo.
>Seems the above posting is botty. Text generated by one of those Ai influop language models?

How so? GP's post may be a little bit too harsh, but it's definitely well written and coherent.

Yeah, I wish I could unflag it.
I've decided to vouch it, but as basic criticism: the purpose of this site is intellectual curiosity, and criticizing Plan 9 as "dead" is the opposite of intellectual curiosity.

Even dead things are worth studying, if for no other reason than to explore the question of why everyone isn't using them (in Plan 9's case, it has a lot more to do with accident of history than any technical limitations... Once POSIX standardized what a UNIX-like OS that managed processes and allowed IPC looked like, everything close-to-but-not-that became also-ran, no matter its technical merits. Esperanto is a fine language, but useless if almost everyone you meet knows English instead).

If plan 9 were dead it wouldn't have a fork that receives patches on a near daily basis with an active community.
My criticism of Plan 9 as dead is realism, not intellectual incuriosity. Speaking of intellectual incuriosity, I find it astonishing that people are still poking the corpse in an effort to turn it into a daily driver, rather than discussing the insights that made P9 fresh at the time or attempting to discover and apply similar insights today.

Also intellectually incurious: assuming that P9 expired due to POSIX eating its lunch. My personal take on it is that P9 expired partly due to bad licensing decisions but mainly due to a preposterously shitty attitude to Other People's Code. I vividly remember people in the Unix room clustered around the one Windows machine there that could do radical stuff like "run games" and "run a browser". If just a bit more effort had been put into Howard Trickey's APE Plan 9 might well have kept evolving and become useful, but NIH was more important. Or "Invented Here, But Not By The Right People" (C++).

POSIX could have been an asset to Plan 9 - a target to track instead of having to emulate a bunch of disparate Unixen.

If you want POSIX you know where to find it.
The rant was about making Plan 9 out as something potentially useful as a daily driver.
And here I sit, using it daily, and productively.

Strange that.

I will agree it's not for everyone, but I still wouldn't put my mom on Linux either (not for a desktop... absolutely not).