Plan 9 from Bell Labs (1995) [pdf](plan9.bell-labs.com)
plan9.bell-labs.com
Plan 9 from Bell Labs (1995) [pdf]
http://plan9.bell-labs.com/sys/doc/9.pdf
2 comments
The reason I am posting this is because I'm curious what the community thinks about Plan 9. Is it a failure? Is it the successor to Linux? After reading some of the text, I'm convinced it's a smarter approach to operating system design.
”There is a lesson here for ambitious system architects: the most dangerous enemy of a better solution is an existing codebase that is just good enough.”[1]
In order to replace a popular system it’s often not enough to be 20% or 40% better, you need to be like 300% better.
[1] http://www.catb.org/esr/writings/taoup/html/plan9.html
In order to replace a popular system it’s often not enough to be 20% or 40% better, you need to be like 300% better.
[1] http://www.catb.org/esr/writings/taoup/html/plan9.html
It brings many ideas to the table that are still relevant for new systems being developed now and the future. It is a success through indirect influence imo.
It is not clear if the reliance on external resources is justifiable when existing computing resources are cheap. For example, how do we stream a 4k screen or perhaps why would we stream a 4k screen? Does a Plan 9 system require desktops wired to an infiniband?
While the distributed features in Plan 9 are inspiring, they were unsuited for desktop of the 90s, or the laptop of 2000 or a tablet today. Recall how people used to call Solaris Slowaris, despite defenders saying that it was faster if your computer actually had two processors.
While the distributed features in Plan 9 are inspiring, they were unsuited for desktop of the 90s, or the laptop of 2000 or a tablet today. Recall how people used to call Solaris Slowaris, despite defenders saying that it was faster if your computer actually had two processors.
>how do we stream a 4k screen or perhaps why would we stream a 4k screen?
Exactly! Why would you? Plan9 networks typically consist of File/Auth/CPU Servers and Terminals. Every machine boots from and has its rootfs on the File Server. Your screen content will be computed locally unless you decide to run a computationally intensive task on the cpu server. The content of this window will then be computed on the cpu server.
>[...] distributed features in Plan 9 [...] were unsuited for desktop of the 90s, or the laptop of 2000 or a tablet today.
You can however run all servers on a single standalone machine (though this somewhat defeats the purpose) without considerable performance loss, since all syscalls are implemented as local and as network version and the appropriate will be chosen.
From personal experience I can confirm that Plan9 run at very acceptable speed on a 400MHz,64MB,100MBit machine which is less than your typical smartwatch these days.
Exactly! Why would you? Plan9 networks typically consist of File/Auth/CPU Servers and Terminals. Every machine boots from and has its rootfs on the File Server. Your screen content will be computed locally unless you decide to run a computationally intensive task on the cpu server. The content of this window will then be computed on the cpu server.
>[...] distributed features in Plan 9 [...] were unsuited for desktop of the 90s, or the laptop of 2000 or a tablet today.
You can however run all servers on a single standalone machine (though this somewhat defeats the purpose) without considerable performance loss, since all syscalls are implemented as local and as network version and the appropriate will be chosen.
From personal experience I can confirm that Plan9 run at very acceptable speed on a 400MHz,64MB,100MBit machine which is less than your typical smartwatch these days.
When computing resources were expensive and local (no WiFi) distribution made sense, now computing resources are comparably cheap to bandwidth. I don't see a motivation for such a system, at the level of OS integration.
I do see a lot of potential applications of the idea:
- remote storage. Instead of having some files here, some files there, I'd rather have all my files live somewhere (possibly my NAS at home, replicated on some servers out there) and have my smartphone/laptop remotely fetch data into it. Of course, with a local cache for frequently accessed files. 9P allows that.
- I'd like to proxy all my connexions through a machine I know and control. 9P allows that.
- I'd like to print from anywhere to my printer. 9P allows that.
While it is easy to think Plan 9 is about having the CPU on a remote machine and the display on the local machine, the true killer-feature of Plan 9 is 9P; the protocol that actually allows a user to say everything is a file.
- remote storage. Instead of having some files here, some files there, I'd rather have all my files live somewhere (possibly my NAS at home, replicated on some servers out there) and have my smartphone/laptop remotely fetch data into it. Of course, with a local cache for frequently accessed files. 9P allows that.
- I'd like to proxy all my connexions through a machine I know and control. 9P allows that.
- I'd like to print from anywhere to my printer. 9P allows that.
While it is easy to think Plan 9 is about having the CPU on a remote machine and the display on the local machine, the true killer-feature of Plan 9 is 9P; the protocol that actually allows a user to say everything is a file.
You have it pretty much the other way around.
The reason we have to rely on all this stuff like
* NFS, CIFS, etc for networked files
* Kerberos for network wide auth
* LDAP for network wide user management
* basically all http abuse for music/Video streaming etc.
is because our OSes still follow the 70s One-Big-Machine-Many-Dumb-Teletypes-Paradigm. Basically all our devices, from the biggest server to the smallest Smartphone, think they are a Mainframe. The rest, including networking in general, is fumbled on top.
This is ugly at best but becomes a real PITA as soon as you have to deal with a couple of machines(BYOD or not).
Exactly because the computing landscape has changed from mainframes to networks of desktops was plan9 developed. An OS where it doesn't matter anymore if a resource is local or on the network.
Following your line of thought, since computers become more and more capable, soon we wont need networks at all.
EDIT: Btw. resources here means anything, from all HW devices to the Text in an open editor. Every file can be exported and in plan9 really everything is a file.
* NFS, CIFS, etc for networked files
* Kerberos for network wide auth
* LDAP for network wide user management
* basically all http abuse for music/Video streaming etc.
is because our OSes still follow the 70s One-Big-Machine-Many-Dumb-Teletypes-Paradigm. Basically all our devices, from the biggest server to the smallest Smartphone, think they are a Mainframe. The rest, including networking in general, is fumbled on top.
This is ugly at best but becomes a real PITA as soon as you have to deal with a couple of machines(BYOD or not).
Exactly because the computing landscape has changed from mainframes to networks of desktops was plan9 developed. An OS where it doesn't matter anymore if a resource is local or on the network.
Following your line of thought, since computers become more and more capable, soon we wont need networks at all.
EDIT: Btw. resources here means anything, from all HW devices to the Text in an open editor. Every file can be exported and in plan9 really everything is a file.