Plan 9 is an operating system designed by the same people who created the original UNIX. Its development began in the late 1980’s and it was a research project intended to address a variety of system scalability issues that the UNIX and LINUX kernels don’t do particularly well, namely, distributed computing, distributed name spaces, and distributed file systems. Plan 9 is open source and its current and fourth major release was in 2002. It is Plan 9 does not have a lot of flashy demos and is not intended for home users. It is not intended for use by novices or as a starter operating system. Instead, it was intended as a platform for trying out new algorithms, new methodologies, and new technologies and it does these very well. Its development tools and documentation assume a fair amount of familiarity with UNIX fundamentals. Similarities to and differences from UNIX Plan 9 is similar to UNIX in that is has a kernel, a command shell, and various C compilers. It also has man pages and runs standard UNIX Instead of the X11 window management system, Plan 9 has Rio. Rio is small, intuitive, and easy to program. A Plan 9 contributor, Geoff Collyer, wrote a graphics front end for the Reversi game in 469 lines of C code. That’s impressive. Because Rio sits on top of 9P, Rio itself is a distributed windowing system. UNIX’s name server, BIND, has been replaced by ndb, which is easy to configure, much more secure, and is the partial basis for Plan 9’s powerful, Plan 9 does not use UNIX sockets for inter-process and inter-computer communications. Instead, all communications are done through 9P, the distributed file system paradigm. Protocol stacks and network cards are implemented as file system objects. Ethernet packet types are simply subdirectories. Plan 9 does have an extremely robust implementation of TCP/IP including IPV6. The abstraction of network communications separates ordinary programs from the gory details of network connection specifics. New protocols and transport media can be added or changed with virtually no impact on basic applications. How is Plan 9 Better? It was designed as a faster, cleaner, more-lightweight multi-processor operating system with better security in all aspects of operation. It uses The Plan 9 security model is quite different from other mainstream operating systems. It has no root, administrator, or super user. Instead, local host owners have privileges over their own machines and can join various network groups that extend more privileges and access to resources such as printers or the CPU. Authentication is done using the Secstore client application. The Secstore server exchanges encrypted passwords or hardware passkeys, and stores sensitive information in memory. Distributing resources is especially easy. Want to use someone else’s sound card? Simply import their /dev/audio. Remember that everything in Plan 9 is a file system object, including multimedia devices. Want to debug a process running on someone else’s machine? Simply import its /proc file. Because all distributed resources have been rewritten for simplicity and efficiency, network administrators love it for its ease of use. Developers love Plan 9 because its libraries are elegant and the compilers are clean and fast. How is Plan 9 worse? As with other innovative operating systems, Plan 9 suffers from a lack of commercial support, a lack of device driver support, and a lack of mainstream applications. When this article was written Plan 9 did not have a web browser, it does not have support for VMWare virtualization (but does for Xen), it did not have accelerated video card support other than GForce and some Radeons, it supports only a few sound cards beyond AC97 and Soundblaster. It Why use Plan 9? Plan 9 offers only a few advantages to single workstation users running in isolation. Its advantages grow rapidly as the number of networked Plan 9 workstations increase. If you are developing a large distributed computing application, using Plan 9 makes a lot of sense. If, for instance, you are performing large-scale scientific computing that needs to run across a large number of computers you are faced with a variety of difficult challenges. A particular problem in large node computing is that the failure of a single node can bring your whole computing cluster to a halt. This problem is Taking the Plan 9 test drive I downloaded the Plan9 installation ISO, burned the Install/LiveCD and tried it on five different computers with varying degrees of success. The supported hardware is somewhat limited so you should check the Supported Next I decided to install Plan 9 on an ancient IBM 390X Thinkpad laptop. The install script took me through several dozen input steps Here’s how I created an account for myself: I rebooted using reboot: and logged in as andrew with permission to write to the /tmp folder. This permission is not given by default. Next I changed to the /tmp and used the ed editor to enter in a hello world program in the 8C C dialect: I compiled the C program with the 8C compiler: And linked it into an executable with the 8L linker: Then I ran my new executable: Not exactly rocket science but it worked out of the box. What’s happening with Plan 9 now? Although the original Bell Labs department that created Plan 9 was disbanded in October 2005, commercial support continues in the form of Where did the Plan 9 name come from? The name was taken from the infamous sci-fi horror movie by Ed Wood, Plan 9 From Outer Space. RULER: “What plan will you follow now?” EROS: “Plan 9. It’s been absolutely impossible to work through these Earth creatures. Their soul is too controlled.” RULER: “Plan 9… Ah yes. Plan 9 deals with the resurrection of the dead. Long-distance electrodes shot into the pinion pituitary glands of recent dead.” Plan 9 / BeOS Factoid An older version of Plan 9 runs on the original BeOS BeBox hardware. References
available as an install or LiveCD and it can be downloaded here. Note: This is an entry to our Alternative OS Contest.
applications like awk, emacs, cp, ls, and others listed here. It is different from UNIX in that the people who wrote it had 20 years of kernel and user experience to re-think and redesign the entire operating system. One major difference from UNIX and most other operating systems is that all major applications understand 9P, the underlying, distributed file system protocol. And because everything under Plan 9 is part of the file system, and the file system is distributed, everything under Plan 9 is distributed, and easily accessible as a file object.
distributed name space.
lightweight processes that were designed for fine-grained resource control across forks. The thread library uses no kernel support and this makes it very
quick. Plan 9’s system libraries were built with multi-processing and Unicode character support from day 1. In fact, UTF-8 was invented for Plan 9. These
libraries, in conjunction with a new generation of high performance Plan 9 compilers, make application development very fast and very reliable.
did not have office productivity software. And it did not support Windows compatibility through Wine.
increasingly likely as the number of processors increase. Consider that a computer node with a mean time between failure of 10,000 hours (or about 1.15
years), when used in a cluster of 10,000 nodes will fail on average of once an hour. In other words, your large, expensive super-computer will crash once an hour. Plan 9 provides the basis for writing processes that can be mirrored or replicated in more efficient ways and can become fault tolerant. Without
increased fault tolerance, large scale computing just doesn’t scale well.
PC hardware list to avoid the frustration of a failed install with cryptic error messages. After aborted installations on my home BH6, K7S5A, and Proliant systems I successfully booted the LiveCD on a Dell SC400. The default window size is 640*480 which is too small to get much done, but this is easily changed with the aux/vga command. By default you get a nice system load monitor, a date and time window, an rc shell window, and an acme window for integrated editing and executing.
most of which had defaults, which I accepted. The steps are described here. The only tricky part was deleting the existing NTFS file system and creating a new Plan 9 file system. The only frustrating part of the install was copying the distribution files from the install CD to the new file system. This took about 30 minutes. After installation the boot time was an impressive 12 seconds. Not bad on a 400 MHz laptop. Unfortunately the internal NeoMagic VGA was not supported and I couldn’t use the Rio window manager. I proceeded using the command line interpreter, rc.
term% con /srv/fscons
prompt: uname andrew andrew
prompt: uname sys +andew
term% reboot
directory:term% cd /tmp
term% ed
i
#include
term% 8c test.c
term% 8l test.8
term% 8.out
hello world
Vita Nuova’s implementation of Inferno (PDF). Development and non-commercial support can be found on the Plan 9 user group list. Development of Plan 9 still continues but at a slower pace.
Some people call it the worst movie ever made. Other people say it’s so bad it’s good. The Ed Wood movie
by Tim Burton, on the other hand is a great movie and gives a great historic account of Ed Wood’s low budget movie making. Here’s the actual Plan 9 quote:
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.
I request a nomination for the LiveCD/DVD construction kit designed by user “Gradgrind” in archlinux,
This kit permits the scripts provided to organize the data and generate a LiveCD/DVD .iso.
It can be applied to systems other than archlinux and deserves your appraisal.
It performs like a charm!
Its annoying to see word’s like 1980s typ’d with apostrophe’s.
Plan 9 Network (Forsyth, URJC)
http://www.terzarima.net/home9.html
http://plan9.escet.urjc.es/plan9.html
Plan 9 OS Plus
http://www.cs.bell-labs.com/wiki/plan9/download/
SW
http://www.terzarima.net/plan9/index.html
http://pages.cpsc.ucalgary.ca/%7Emirtchov/p9/
VM
http://www.huygens.org/wiki/plan9/vmware4/index.html
http://www.cs.bell-labs.com/wiki/plan9/vmware_playground_for_plan9/…
Plan B
http://plan9.escet.urjc.es/ls/planb.html
Plan B Demo (videos)
http://lsub.org/ls/demos.html
hylas
Plan 9 Concepts In Other Operating Systems Links:
Plan 9 from User Space: http://www.plan9.us
v9fs File System for Linux: http://swik.net/v9fs
I put off testing Plan 9 for a long time because I was under the impression you needed at least 2 networked computers to host a working system.
Then I tried it, and it asked me where to load the kernel from. Err..
Could be a bad cd though.
all you have to do is press enter for the default (local). its in case you want to use a kernel from a networked computer.
I downloaded Plan 9 with the intent of writing an alt OS contest entry, and ended up very put off by the system and never writing the article. It may be very cool under the hood, but the user interaction part was painful. Rio is anything but intuitive, and using Acme is like going back to the old X/Athena apps. It felt like a command line system, but I was constantly reaching for the mouse. Awkward at best.
I would like to install it on a few additional systems and try out some of the distributed features, and see if I can find some positives.
I have to agree with siebharinn…..
Don’t get me wrong – I ***love*** the clean design of Plan 9, in particular the very clean namespace stuff. Oh – the security too – that is also a BIG plus for it. But sheesh – getting used to the **user interaction** is ***painful***.
I’m not exactly a newbie either – I’ve used Linux constantly for the last 4-5 years, and I’m a programmer. But the weird Plan 9 user-interaction feels ***really awkward***.
I am ***absolutely certain*** that the only reason that Plan 9 has not taken off (as Linux has) is because of Plan 9’s interaction awkwardness.
I would LOVE to see someone do a “newbie front-end” to Plan 9. In other words, at login, you could choose a Linux-style control setup (with easy-to-use interaction), or you could choose the guru-level control-setup ( the setup that Plan 9 now uses by default).
– Latte
Edited 2006-07-19 23:49
I am ***absolutely certain*** that the only reason that Plan 9 has not taken off (as Linux has) is because of Plan 9’s interaction awkwardness.
There are complications involving AT&T, Bell Labs, licensing deals, Rob Pike, Lucent, and Lucifer.
I wonder if Rob ever wrote about any of that?
Anyway, during the brief period when there was a window of opportunity for Plan 9, back in the mid 90s, AT&T was divesting itself, Pike et al were trying to position Plan 9/Lucifer as the ultimate embedded device OS, too soon, and the then current licensing terms for access to Plan 9 were too restrictive.
Rob did show me a really nice demo on a tiny embedded system that had a full networking stack and was snappy in some small amount of memory I don’t recall now, but there was too much missing, it was too idiosyncratic, and for reasons I don’t know, Lucent dropped the ball on using it for devices.
That’s a pity, because it would have made a great basis for modern handheld wireles devices.
By the time the license issues were resolved, the lack of applications and hardware support made it a novelty item outside of the embedded community, and the lack of a champion made it uninteresting inside.
Now, for all intents, it’s just another hobby OS, most notable for the fact that it was the last thing done in OS research at Bell Labs that is in any way related to Unix.
It’s not meant to be intuitive. It’s meant to fill its paradigm.
Mothra has been around for a while now.
http://en.wikipedia.org/wiki/Mothra_(web_browser)
From Wikipedia:
“Mothra is a web browser for the Plan 9 operating system. It is a very basic graphical browser and does not support ftp, java, javascript, https or CSS.”
Sounds awesome… sign me up.
All kidding aside though, I’m glad I saw the links to the virtual machine versions.I’m interested to see what all this fun distributed everythingess is about.
User interaction is the least of my worries going into it. Windows, OS X, and Linux all have a ton of people working on making them idiot… excuse me, user friendly. I don’t expect as much out of a research project.
Just following the links on the wiki, I found this which seems perhaps a more modern option (can’t actually say, I am not a plan9 user per say, just been curious about it for a while).
http://freshmeat.net/projects/abaco/
Abaco hasn’t, but it beats mothra.
http://freshmeat.net/projects/abaco/
There’s a port og the GUI version of links too.
I was not able to follow the VMWare link in the first comment. I read in the P9Users (Or something) that VMWare was not and would not be supported for the current version of Plan 9. Does anyone have any info to the contrary?
And When I tried Plan 9 in the now free Microsoft Virtual PC I could not get the install to create a MBR in the filesystem. Has anyone had success here? If so, what is the trick?
vmware5 has graphics issues and you need to remove virtual cdrom device after install. I believe you could still setup a cpu server and use drawterm to connect to your virtual machine. Parallels workstation has networking issues (solution: http://www.tip9ug.jp/who/leimy/parallels.html). Qemu works if you don’t use kqemu module. You can grab a preinstalled qemu image from here http://www.oszoo.org/wiki/index.php/Plan9_060327.zip
And When I tried Plan 9 in the now free Microsoft Virtual PC I could not get the install to create a MBR in the filesystem. Has anyone had success here? If so, what is the trick?
I had it running under VPC. I didn’t have to do anything tricky to get it to work; I just used the defaults.
Just wondering about Plan 9’s implementation.
Regarding the distributed resources, for example, importing the /dev/audio of another computer, if this is already in use (opened by another application), then would the two sound channels be correctly combined if written to?
For example, can multiple applications across multiple computers open and write to the /dev/audio of one machine simulatanuously without distortion and errors, or can only one application be writing to it at any one time ? (Is it blocking or non-blocking on further applications trying to open the /dev/audio)?.
It’s so refreshing to be seeing more articles of this quality about Plan9 on OSNews!
I’ve used Plan9 now for about a year, and I have to say that my most favorite part of Plan9 is the 9P Protocol. The concept of everything being file really makes building a 9 grid and/or a cluster extremely easy and powerful once you get used to how the system acts.
Most UNIX users would feel right at home using Plan9.. well that’s how it is for me.
Anyway, my hats off to Andrew Hudson for the killer article.
đ
</opinions>
Sorry, nobody is going to put development into something that is just Another Incompatible Platform.
Come back, when you compile Gnome desktop!
http://wmii.de/wmii/ a dynamic, 9P speaking window manager for X11.
I’ve been using wmii for about a month now and I really enjoy it. I miss a few features from ion3, but overall I think wmii has a better foundation, in part due to 9P.
emacs(1) is not GNU emacs http://cm.bell-labs.com/magic/man2html/1/emacs đ
The Limbo programming language on Plan9 is an interesting one.
But I’ve never tried Plan9: its user interface is too ugly to live..
The review would have been more interesting if on page 2 he actually demonstrated some of the cool stuff he raves about on page 1 instead of wasting it on a “hello world” and a movie quote. And how can he talk about “Rio is small, intuitive, and easy to program.” when “the internal NeoMagic VGA was not supported and I couldn’t use the Rio window manager” ? That’s not a review it’s copy-paste from an advocacy page, if you talk from experience and let it show you will be more convincing.
Don’t mean to be negative, just offering some hopefully constructive criticism.
The author here. It was my intent to try out some of the cool stuff that Plan 9 is capable of. As I mentioned, I ran into compatibility issues on each of the 5 machines I tried out. I either had no video support or no network capability. What I really wanted to show was the ability to join a Plan 9 grid and actually do some distributed computing. Without both video and network capability I just wasn’t able to pull it off. I did submit a second version of the article where I was able to get the trial CD version running in Microsoft Virtual PC, which is now free for the download. Unfortunately the editors of OSNews (God bless their hard working little hearts đ ) did not use the newer, up-to-date version of this article that included that experience and included a screen shot.
Yes, there are many amazing things that Plan 9 can do, but the out-of-box whiz-bang experience is not especially strong. A reasonable amount of user effort is required to really get things going with Plan 9.
Like I said in the into, Plan 9 is not really a fun toy OS, it is meant for industrial strength heavy lifting.
Looks like this is another good spot to post a link to my plan 9 review, complete with screen shots:
http://penguinpetes.com/b2evo/index.php?title=plan_9_from_bell_labs…
I have gotten a third machine together in the household, and one of the things I plan doing with the 80G hard drive is put plan9 on one of it’s partitions. Eventually (really, REALLY eventually!), I wouldn’t mind installing all the stuff ported to it and working on hacking on it a little myself. I’ll have to agree with everybody else on the UI: it is awkward and bizarre. Moreover, it feels like half an interface; in fact half a project. It feels like somebody sat down in a manic cycle with all these great ideas and got halfway done before losing interest. It needs to be finished; it needs to have three or four desktops and UIs to choose from like Linux/BSD/Solaris has, it needs a ton more features, it needs to have a live CD release with every stick of software released for it bundled, and this system could then kick some butt.
…slipped mention of BeOS in there! LOL
Sorry… anyway, good article. I would liked to have seen more about the threading support and more talk of failover.
I suspect reams could be written about the file system!
While most of the entries for this contest have dealt with relatively unknown OSes, it’s a very nice change to see something not about Linux/Windows/OS-X/*BSD.
Each of these articles has highlighted features unique to these niche projects. Having a repository of knowledge about all this stuff can only help development of mainstream OSes. Take the best from each…
OK, here’s a link to a VMWare image that just might work. Can someone please try it out and report back?