100 comments

[ 4.5 ms ] story [ 76.9 ms ] thread
So it is or it is not possible to run X11 on Plan 9 ? The article says that it runs twm and then later that it is possible to run linux program through an emulation layer.
It's complicated. The port of X11 that the article talks about is the one that's on the old Bell Labs web site[0], and it never really worked all that well for me.

Linuxemu is something of a research project, and I don't recall it working all that well either.

You can get a Unix-alike (e.g., OpenBSD) running under 9front's vmx(1), and that will get you access to X11, albeit not running natively atop a Plan 9 kernel, which is likely not what you're after.

0: http://9p.io/plan9/addons.html

A Plan 9 site that actually talks about Inferno as well, there is some hope after all.
I've actually found Inferno a lot more interesting than Plan 9. Dis is very, very neat, and I sort of wish we had modern runtimes for it.
Same here, another similar endveour around the time was the Amiga reboot attempt as TAO,

https://arstechnica.com/gadgets/2018/03/a-history-of-the-ami...

https://www.eetimes.com/amiga-reborn-via-tao-alliance/

First time about TAO, was in EDGE magazine in the early 90s IIRC about their OS TAOS sounded something from the future , could run on different processor even over a network, they had it running on a machine using transputers. It looked like sci-fi to me.
What do you see as significant advantages of Dis over WASM? [edit: my guess would be channel support, but it would be interesting to hear more about that]
Its not so much dis but the whole concept of an OS built on top of a VM. This means the entirety of user space is portable across platforms. There is no way to run native code.

It is possible to port wasm to inferno and replace dis. That could open up some interesting possibilities. You could write code in any language, spit out wasm and run it on any cpu/OS via inferno.

Welcome to Burroughs (nowadays ClearPath MCP), Xerox PARC workstations, UCSD Pascal, Lilith, Oberon, IBM i and z/OS, and a couple more.

J2ME, Windows Phone 7, watchOS and Android are arguably the closest to it in mainstream computing.

> J2ME, Windows Phone 7, watchOS and Android are arguably the closest to it in mainstream computing.

From my pointy of view none of these come close. The interesting part of Inferno is that it only runs Dis code. It can not exec native code. All the platforms you listed save for j2me (which is not anything like inferno save for being a vm) are OS's which run native code or exec a vm.

https://en.m.wikipedia.org/wiki/Burroughs_large_systems

The Xerox PARC machines used a microcoded CPU, where the required interpreter was loaded before Smalltalk, Mesa, Mesa/Cedar, Interlisp-D.

Pascal USCD computers used mostly an interpreter, with exception of Convex Computer, which also had AOT compilation.

IBM i and z/OS have language environments, which has allowed several applications to survive multiple hardware generations without ever being recompiled, besides the AOT done at installation time.

Windows Phone 7, only allowed for Silverlight and XNA based games, native code was reserved to Microsoft.

WatchOS uses Apple's special bitcode flavour.

Inferno also executes native code, kernel and Dis implementation.

EDIT: Inferno's source code, https://bitbucket.org/inferno-os

> there is some hope after all

Inferno was created as a potential Java competitor. That hope is long gone.

Imagine today an OS from Google built on top of Linux+Inferno, or well, maybe, Golang and a custom UI.
Well, we have to contend ourselves with the Java/Kotlin, JavaScript and Dart flavours, of which Android is probably the closest, although quite twisted implementation.

However I do like the idea, either a Goberon or Ginferno version of Go's influences, but that is above all just nostalgia, they wouldn't be the same, and the time has pasted when their ideas were new.

My point was that plenty of Plan 9 fan sites ignore Inferno, so there is some hope that it isn't a trend.
This is by far the most comprehensive Plan 9 walkthrough I've read in the past couple of years.

I've been running a Raspberry Pi as an all-in-one Plan 9 setup for a long while now (as a sort of catch-all minimalist dev environment/console), and the two main showstoppers for me have been:

- The reliance on a three button mouse, which makes it impossible to use Plan 9 on a modern laptop without finagling with modifier keys (no, I don't want to go back to using a mouse, thanks).

- The utter lack of any minimally usable browser (I know, the browser would be larger than the OS, but it is a major issue for any kind of work today).

It is an excellent system to dig into and learn from, but there are many paper cuts when using it daily: SSH/terminals work differently, VNC/Remote Desktop clients are... weird, etc. (rd sort of works, and sort of doesn't, and without it really working I can't even read documentation online unless it's plaintext).

All in all, this is a great thing to see as I hope new things are built atop Plan 9 (when it makes sense), but as a minimal desktop environment I've moved to Openbox + xterm + Firefox, and have been pondering setting up Chromium OS on a beefier Raspberry Pi, since most "consoles" are just web-based these days anyway...

It's probably unfair to compare Plan9 to "modern" operating systems. Why not talk about everything it got right and smart instead of all the things which behave differently than what our expectations set?
I'm just pointing out the shortcomings I found. I've been using it and keeping tabs on resources for Plan 9 and Inferno since 2014:

- https://taoofmac.com/space/os/plan9

...so I do know a lot about it in practice. It's just that, also in practice, nearly ten years of tinkering with it have been mesmerising, mostly fun, but not useful enough for my particular use cases. YMMV.

I want to answer trying to interpret the GP. For me, I want to be able to tinker with Plan 9. I love everything I have read about it. But I also need a practical environment where this is possible. I would love to be able to do minimal (frugal?) development work on a pi running Plan 9, but the lack of a browser, an editor that feels familiar (at least for a while, until I learn the ropes) and the languages I want to tinker with, it is very hard to get going.
You can install it on a virtual machine and start playing.
Try 9Front, they have two browsers ;)
The strong point of plan9 is the universal IPC. This kills the need for a separate clients and servers that communicate with their own protocols to get access to remote resource. You can simply import / export anything, this isn't limited to static content as daemons can also export virtual resources. It also makes lots of programs unnecessary as traditional shell tools can access and modify resources and even system settings. Sort of like sysfs on linux but more on steroids.

Plan9 was also far ahead with sandboxing by having namespaces, which means you can expose restricted views of the "filesystem" to each process. Since in plan9 there's no ioctls and every resource access is simply read/write syscall (even networking!), restricting the "filesystem" is all you need to restrict what a process can do on your system.

No it wasn't.

UNIX world had sandboxing via stuff like Tru64 and HP-UX vaults, while the cloud kind stuff kind of traces back to IBM System 360 capabilities, later improved in z/VM.

>cloud kind stuff kind of traces back to IBM System 360 capabilities

Yes true with VM/370 (today called z/VM) released in 1972, but it's not directly the same, however pretty impressive what IBM did (in the past)

One can test-drive it from here:

http://www.vm370.org/vm

Plan9 is a more "modern" operating systems than UNIX. WindowsNT is also a more modern operating system than UNIX.

In so far as when they were created long after UNIX. And Plan9 certainly was at some point hoped to be a successor.

That did not happen.

and the new ideas they had.

Although Windows NT was in many ways a version of the operating system VMS that failed against UNIX including having the same main architect, Dave Cutler, who hated everything about UNIX and who refused to learn from its success. Plan 9 on the other hand was created by some of the very same people who created UNIX. It learned from UNIX and while it failed, it failed because to most people UNIX was "good enough" and the improvements of Plan 9 weren't compelling enough to switch.
Mostly because VMS was commercial and UNIX free beer.

History would have played quite differently had AT&T been allowed to sell UNIX from the get go.

I've only been trying Plan 9 (via 9front) the past few days, just in a VM, but I agree about the mouse. My mouse hand cramps up very easily, and I've become so accustomed to keyboard driven interfaces (I use dwm as my window manager, for example) it almost feels weird using a mouse so much.

Definitely a very interesting system though.

> The reliance on a three button mouse, which makes it impossible to use Plan 9 on a modern laptop without finagling with modifier keys

Some modern laptops which have both a touchpad and a trackpoint or similar have two sets of mouse buttons, with the top one (for the trackpoint) having three buttons. The Wikipedia article (https://en.wikipedia.org/wiki/Trackpoint) has a list of models (note however that, for some models, it's optional so you can have it either with or without the trackpoint) and a couple of pictures of these laptops with two sets of mouse buttons.

+1 on the browser issue. So much of basic development these days requires a browser (I'm even using one to read this Plan 9 Desktop Guide) that not having one hosted by the OS moves the OS from "Desktop development" to "Embedded system development" for all practical purposes for me.
Browsrs? Just get this and read it with page.

https://doc.cat-v.org/plan_9/9.intro.pdf

Sorry, I never received this suggestion on Plan9 because I can't read Hacker News without a browser... ;)

(... and so on and so on. HTTP, as a protocol, has eaten the world. A "desktop" anything without a native browser in it really sticks out.)

Turns out that you can browse hacker news (and a lot of the internet) fairly well from both netsurf and mothra.

[Posted from 9front.]

A PSP, Lynx or Opera Mini 4 user agent may do wonders.

webfs(4) supports custom ones.

> The reliance on a three button mouse, which makes it impossible to use Plan 9 on a modern laptop without finagling with modifier keys (no, I don't want to go back to using a mouse, thanks).

Thinkpad ;)

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.

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.
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.
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?

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.
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.
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).

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.
If P9 had been able to run a reasonable number of computer programs not written by people at the Labs, it might have survived or at least been more influential beyond "UTF-8, some odd remnant uses of 9P, and /dev/proc". The gratuitous incompatibility assured that the other interesting ideas were buried.
Plan 9 has had a very active development community during the past decade, nothing is preventing people from coming up with interesting ideas and patches, even to APE if that floats one's boat. Mixing different contrasting cultures usually just doesn't work, if you want POSIX, use a POSIX system, if you want Plan 9, go native, i.e. how the system was intended to be used.
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.

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.

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.

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.

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.

"Popular", "Modern Workloads", "meaningful ideas"

You are a buzzword machine with no substance. All of these are nothing more than an obsession with some idea of success.

Will modern apps, workloads, quote on quote "meaningful" things run on uxn? No! But we can still research what you can do with modern aspirations and knowledge on an 8bit computer.

The goal is not to run some existing software, the goal is to learn. To make new software, new workloads, new ideas.

If you want to run "modern workloads", these days just grab a web browser- you can probably even do your GPU research in there!

Do that, that's wonderful if your research is about things you can do on normal operating systems like a web browser. But if your research is about computers, you probably need to say, design a new computer (uxn) or expose yourself to different kinds of computers. I suggest you do both, write a compiler and write a VM for it!

You'll get maybe a dozen users, and you'll learn, and you'll teach people things. All without any "success"

> You are a buzzword machine with no substance. All of these are nothing more than an obsession with some idea of success.

Why are you so abrasive? The poster is saying nothing bad to you, but you keep insulting them. Why?

> Will modern apps, workloads, quote on quote "meaningful" things run on uxn? No! But we can still research what you can do with modern aspirations and knowledge on an 8bit computer.

uxn is a badly built architecture. It's an 8-bit computer with 16-bit addresses, no overflow flags/bits/registers, and inefficient jump modes. It makes no sense. It tries to ape 8-bit computers of its time without understanding the limitations of transistors and budgets at the time. You just need a passing understand of computer architecture and registers to understand that. And if you want something didactic, there's architectures like the LC-3 which do make sense, so this is definitely not a dead end as much as a bad implementation. I'm not sure why so many folks on HN have been latching onto uxn recently, I presume it's become popular in some computing minimalism circle.

> Do that, that's wonderful if your research is about things you can do on normal operating systems like a web browser. But if your research is about computers, you probably need to say, design a new computer (uxn) or expose yourself to different kinds of computers. I suggest you do both, write a compiler and write a VM for it!

Everyone _knows_ why a computer like uxn is a dead end. It's not like uxn has a monopoloy on 8-bit fantasy architectures either, so there's certainly viable options. There are others that don't have the same issues. nga, the VM underneath RetroForth, doesn't suffer the same issues for example.

Look, lots of people like reenacting period dramas and doing things like renaissance faires. But period drama and RenFaire folks don't act like they're doing fundamental research. They're having fun and expressing their creativity, which is great, but they're not coming up with new historical research. Call a spade a spade and call art art. And let folks have opinions on the way OS research should work without calling them names.

> You just need a passing understand of computer architecture and registers to understand that. And if you want something didactic

I'd say I'm just the only one here not pretending I'm not abrasive. This was abrasive from the start, and every comment has been abrasive.

> Look, lots of people like reenacting period dramas and doing things like renaissance faires. But period drama and RenFaire folks don't act like they're doing fundamental research.

Honestly look at this. Do you just want me to be abrasive in your special style instead? Should I make sure I patronize everyone subtly? Is that the end goal?

If you think that computers are solved, that you have to do some specific thing to research computers like use Linux, or run Docker, or get popular, you've missed the mark.

There's no reason you get to decide what research is because you came up with a funny insult, and if you're saying people can't learn more about computers by using them, you're just a gatekeeper.

> And let folks have opinions on the way OS research should work without calling them names.

Are you kidding me? You just literally wrote that it's comparable to the renaissance fair instead of research. How can be you so hypocritical?

You have a strange notion of what 'research' might be, which doesn't really map to either a academic notion of research ("write papers that might appeal to an {OS,PL,NS}DI committee") or a practical notion of research ("build cool things that might help people do things with computers that couldn't be done before"). I've actually done these things, as it happens, so spare me your frothing at the mouth about "buzzword machines" and substance please - a bit much coming from an anonymous account.

I'm not going to denigrate noodling around with uxn, which seems quite neat, but it's not in any way shape or form something that most people would recognize as "research": it might be cool, and it might be an effective way of learning things, but it is not going to let anyone do anything substantially new they couldn't do before.

The point of "popularity" is not to win internet brownie points: it's to get outside your own head and find out what other people's workloads look like. If "modern" workloads sounds too much like a cliche (and I admit it does sound a bit like I feel like all research OS work should be centered around supporting an Electron stack or some hipster NoSQL database running in Kubernetes when I talk like that) - it could just as easily be "scientific workloads" or even, god help us, COBOL workloads.

Just something that you didn't yourself make up. That's noodling. That's a hobby. We're all really good at asking ourselves questions and providing good answers for them.

Anyhow, enjoy your noodling. I'm sure you'll have some absurd and reactive response to this, and yell and scream some more about how I don't have any substance and how your notion of research is Super Awesome and we all should invest more time playing with 8-bit computers, but I have some 256-bit and 512-bit stuff to get to, so have a nice day.

> 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/

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' ...

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

Been using 9front on a Raspberry pi for many months as my primary coding environment.

Thinking about getting a better workstation for it, but so far, there's no real problem using a raspberry pi. (and you just don't need a ton of resources to make it work really well!)

This article is great and has very few errors. I won't point any out as they'd just be some old curmudgeonly person pointing out historical inaccuracies that don't really matter that much to a "here's how you can use Plan 9/9front".

Really nice!

I've been particularly excited about Plan 9 and 9front since the MIT licensing that happened this year. Great outcome, and I wish it'd have happened 10 years sooner!

I really wish this would have become a major force.

It has a lot of great architecture that would make it a preferred platform in these "cloud", "distributed" ways.

Smack Erlang and Elxir on it and you got something.

Someone's working on Zig, but I'm not sure how much time they have.

Also, if I had more time, I'd get Zig working on it too.

There's always Go, and it works pretty well too!

So what's the Plan 9 filesystem interface for GPUs and/or 3D acceleration?
None. Send patches. Though, there are ideas floating around and supposedly someone working on something but its vaporware as of now.

A plan 9 interface to a GPU would have to be as general as possible by excluding API specific interfaces. This way you have a GPGPU interface which you build applications/api's on top of.

edit: Here's a very back of napkin idea that was lightly discussed recently, https://marc.info/?l=9fans&m=162965057312200&w=2

SDF recently started hosting a Plan 9 bootcamp.

https://sdf.org/plan9

Love this idea!

  Plan9 wants a network
  Plan9 wants to be distributed
  Plan9 wants a community
I've always heard about Plan9's networking, does this include having good leverage for tasks like audio streaming?
People were just streaming to twitch from 9front not very long ago (within the last month).

So I assume so.

There is just something about these 'old' Operating Systems that takes me back to my super geeky youth :)

Sitting in my bedroom with my 386 and trying to install Linux from stiffies and getting IPChains to dnsmasq/forward basically share the dial up connection for 'the house' lol the other 386 !

#GoodTimes :)

As with a lot of people here, one of my first thoughts was, "yes, but how do I browse the web?". So after reading a bit, then skimming and skipping a bit, I found the section on mothra and abaco. By far my favorite line in the article is:

Recently, NetSurf has been ported to Plan 9 by the 9front developers. The browser is slow and glitchy with a ton of bugs, and thus provides a fairly convincing web 2.0 experience.

Based on this alone I think I shall give Plan 9 another try in the not too distant future!

Or better, skip the web completely and read HN over gopher: gopher://hngopher.com

HN works under Links, so it could work under Mothra.

Here is what I thought after reading an article: Linux should provide an API for drivers. So that the drivers can be reused by other OS like FreeBSD or Plan9. If you are making a new OS, it is prohibitively expensive to reinvent the USB stack, write your own ACPI interpreter or port millions of lines of code. There should be an API, otherwise these drivers don't differ much from proprietary drivers.

Other OS like Windows, Android or MacOS implement such an API. Therefore it is possible. I think that truly open source drivers should be available for everyone, not only to the users of one specific kernel.

I also wonder why other OSs don't implement a Linux binary interface for drivers, so they can reuse at least some Linux drivers.
I think the answer to both of these is that the Linux driver interface on Linux changes over time!
Sure, but even in this case it is better to change an interface and be able to benefit from all the drivers written for Linux.
The millions of lines of code aren't inherent to the problem.

Here's the 9front ACPI interpreter:

http://git.9front.org/plan9front/plan9front/HEAD/sys/src/lib...

And the USB stack, user and kernel side:

http://git.9front.org/plan9front/plan9front/HEAD/sys/src/cmd... http://git.9front.org/plan9front/plan9front/HEAD/sys/src/9/p... http://git.9front.org/plan9front/plan9front/HEAD/sys/src/9/p...

Even the complex drivers, like wifi, are relatively small:

http://git.9front.org/plan9front/plan9front/HEAD/sys/src/9/p...

Linux code is unpleasant. I don't want to deal with it.

Give me clear, well-written docs instead. Of course, since that never happens, we just end up reading the linux code and reimplementing it in a way that's acceptably clean.