Plan 9 From User Space
Posted3 months agoActive3 months ago
github.comTechstory
supportivepositive
Debate
20/100
Plan 9Operating SystemsUnixOpen Source
Key topics
Plan 9
Operating Systems
Unix
Open Source
The Plan 9 from User Space project is a port of Plan 9 tools and utilities to Unix-like systems, sparking discussion about the influence and relevance of Plan 9's design ideas.
Snapshot generated from the HN discussion
Discussion Activity
Active discussionFirst comment
53m
Peak period
13
0-6h
Avg / period
4.1
Comment distribution29 data points
Loading chart...
Based on 29 loaded comments
Key moments
- 01Story posted
Sep 28, 2025 at 10:27 AM EDT
3 months ago
Step 01 - 02First comment
Sep 28, 2025 at 11:20 AM EDT
53m after posting
Step 02 - 03Peak activity
13 comments in 0-6h
Hottest window of the conversation
Step 03 - 04Latest activity
Sep 30, 2025 at 5:30 PM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45404573Type: storyLast synced: 11/20/2025, 9:01:20 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
I despair at your (and GGP) lack of comprehension
It's a port of a collection of plan 9 userspace to a non-9 operating system.
Perhaps you've now learnt something
GG
Also, this project is designed for operating systems other than Plan 9.
The interesting part is the two references to a person who has long since passed, Uriel. The make file and configure files both print "read the README file." I am sure he complained that most people would blindly unpack the source and immediately run make or configure without ever reading anything. It could be a way to force people to RTFM. But that is just my opinion. If you really want an answer, drop an email to the 9fans mailing list and ask. It's still active.
IBM systems have the famous Red Books, but ok it isn't included.
Windows before the Internet days, when the SDK came in CD, having a MSDN subscription meant receiving a box with all documentation from Microsoft.
Inferno as Plan 9's successor also included all documentation.
Niklaus Wirth OSes for Modula-2 and Oberon, had the OS documentation as hypertext.
All Xerox PARC OSes, across Smalltalk, Interlisp-D and Mesa/Cedar had online help with the system documentation.
Plan 9 is what Unix could have been, the whole idea that 'everything is a file' is so powerful that we ended up not believing it and the resulting hacks are all so ugly in comparison. Plan 9 does this so consistently that you can test a new version of the window manager in a window on the currently running window manager.
For fun I ran the Bell-Core window manager inside a Plan 9 window at some point just to see if it could be done.
https://en.wikipedia.org/wiki/ManaGeR
And yes, you could do it, and fairly easily so. This kind of structural coherency is a great feature for an operating system to have.
I agree. People find it hard to wrap their heads around simple and uniform interfaces. They can’t simplify what they want to accomplish, they want to inflict their complexity on everyone.
Simplifying is maybe emotionally deflating, it makes for a less satisfying solution. Career-wise, it is better to propose complex solutions that take lots of manpower. That’s how you climb the ladder.
echo kill > /proc/123/ctl
Sure, that works if you know kill, but you cannot inspect ctl and understand the interface, its a write interface. so you can certainly RTFM, read the dev proc list, etc. it's not discoverable
so like /proc/net/stat or whatever, it means nothing to me... its gonna just be a TSV of bytes that mean something, unless you know it.
so for all the simplicity, it's what i would call, not very usable.
To the user it doesn't matter.
To the developer, it makes a difference.
/proc/<pid>/ctl is not any more or less simple or discoverable for the end user than TerminateProcess or kill(2). It's all opaque esoteric stuff.
But for the developer /proc/<pid>/ctl is MORE discoverable than TerminateProcess or kill(2), since it's a file you can list, so you know it exists. Yeah, you still have to read the man page (you always have to read the docs as a developer), but you know there's a ctl file that probably controls some stuff about the process there. And you already know how to interact with it (the same IO interface as everything else).
I've spent a lot of time with these 'kludges' as well as all of the alternatives available and I far prefer the kludges. They make working with resources remote or local a breeze, they allow the same software to work with a COM port or a SCSI channel, they allow for all kinds of abstractions and get rid of an enormous amount of cruft in code to special case each and every device under the sun.
The 'Unix' version of that statement is the one that is kludgy, I'll give you that. But I was looking well beyond Unix, see TFA.
[0]: https://en.wikipedia.org/wiki/Inferno_(operating_system)
Can you port existing software to it, or do you have to rewrite everything in Limbo? Because if you do, that right there almost completely kills it IMO.
The C compiler is there, the same way as in Plan 9, Inferno is the evolution of Plan 9, in one way it was Bell Labs response to Java, in other way it was another take to what went wrong in Plan 9 like the failure to design Alef to be usable.
Naturally Limbo was prefered as the main userspace language, from safety and usability point of view.
https://inferno-os.org/solutions/embedded
[0] - as per what its creators worked on following it