Introduction to Plan 9
What is Plan 9
Plan 9 is a research operating system from the same group who created UNIX at Bell Labs Computing Sciences Research Center (CSRC). It emerged in the late 1980s, and its early development coincided with continuing development of the later versions of Research UNIX. Plan 9 can be seen as an attempt to push some of the same ideas that informed unix even further into the era of networking and graphics. Rob Pike has described Plan 9 as "an argument" for simplicity and clarity, while others have described it as "UNIX, only moreso."
From The Use of Name Spaces in Plan 9:
From the intro(1)
man page:
The two most important ideas in Plan 9 are:
- Private namespaces (Each process constructs a unique view of the hierarchical file system)
- File interfaces (familiar from UNIX, but taken to the extreme: all resources in Plan 9 look like file systems)
Most everything else in the system falls out of these two basic ideas.
Read: intro(1); Plan 9 from Bell Labs; Designing Plan 9, originally delivered at the UKUUG Conference in London, July 1990; and FQA 7 - System Management; for a more detailed overview of Plan 9's design.
Today, Plan 9 continues in its original form, as well as in several derivatives and forks.
The United States of Plan 9.
- Plan 9 from Bell Labs: The original Plan 9. Effectively dead, all the developers have been run out of the Labs and/or are on display at Google.
- Plan 9 from User Space: Plan 9 userspace ported/imitated for UNIX (specifically OS X).
- 9legacy: David du Colombier's cherry picked collection of patches from various people/forks to Bell Labs Plan 9. (It is not a fork.)
- 9atom: Erik Quanstrom's fork of Plan 9, maintained to Erik's needs and occasionally pilfered by 9front.
- 9front: (that's us) (we rule (we're the tunnel snakes))
- NIX: High performance cloud computing is NIX (imploded in a cloud of political acrimony and retarded bureaucratic infighting).
- NxM: A kernel for manycore systems (never spotted in the wild).
- Clive: A new operating system from Francisco J. Ballesteros, designed to generate grantwriting practice material and research projects for otherwise indolent students.
- Akaros: Akaros is an open source, GPL-licensed operating system for manycore architectures. Has no bearing on anything but has attracted grant money.
- Harvey: Harvey is an effort to get the Plan 9 code working with gcc and clang.
- Inferno: Inferno is a distributed operating system started at Bell Labs, but is now developed and maintained by Vita Nuova Holdings as free software. Just kidding it is not developed or maintained.
- ANTS: Advanced Namespace Tools for Plan 9. ANTS is a collection of modifications and additional software which adds new namespace manipulation capabilities to Plan 9.
- Jehanne: Jehanne:Harvey::William King Harvey:J. Edgar Hoover
- Plan 9 Foundation: Now offering downloads of historical Plan 9 releases.
Plan 9 is not UNIX
In the words of the Bell Labs Plan 9 wiki:
Confusion is compounded by the fact that many UNIX commands exist on
Plan 9 and behave in similar ways. In fact, some of Plan 9's userland
(such as the upas
mail interface, the sam
text editor, and the
rc
shell) are carried over directly
from
Research UNIX 10th Edition.
Further investigation reveals that many ideas found in Plan 9 were
explored in more primitive form in the later editions of
Research UNIX.
However, Plan 9 is a completely new operating system that makes no attempt to conform to past prejudices. The point of the exercise (circa the late 1980s) was to avoid past problems and explore new territory. Plan 9 is not UNIX for a reason.
Read: UNIX to Plan 9 command translation, UNIX Style, or cat -v Considered Harmful.
Plan 9 is not plan9port
Plan 9 from User Space (also known as plan9port or p9p) is a port of many Plan 9 from Bell Labs libraries and applications to UNIX-like operating systems. Currently it has been tested on a variety of operating systems including: Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, Solaris and SunOS.
Plan9port consists of a combination of mostly unaltered Plan 9 userland utilities packaged alongside various attempts to imitate Plan 9's kernel intefaces using miscellaneous available UNIX programs and commands. Some of the imitations are more successful than others. In all, plan9port does not accurately represent the experience of using actual Plan 9, but does provide enough functionality to make some users content with running acme on their Macbooks.
It is now being slowly ported to the Go programming language.
Plan 9 is not Inferno
Inferno is a distributed operating system also created at Bell Labs, but which is now developed and maintained by Vita Nuova Holdings as free software. It employs many ideas from Plan 9 (and even shares some source code), but is a completely different OS.
Note: Inferno shares some compatible interfaces with Plan 9, including the 9P/Styx protocol.
Plan 9 is not a product
Path: utzoo!utgpu!water!watmath!clyde!bellcore!faline!thumper!ulysses!smb
From: s...@ulysses.homer.nj.att.com (Steven Bellovin)
Newsgroups: comp.unix.wizards
Subject: Re: Plan 9? (+ others)
Message-ID: <10533@ulysses.homer.nj.att.com>
Date: 23 Aug 88 16:19:40 GMT
References: <846@yunexus.UUCP> <282@umbio.MIAMI.EDU> <848@yunexus.UUCP>
Organization: AT&T Bell Laboratories, Murray Hill
Lines: 33
``Plan 9'' is not a product, and is not intended to be. It is research --
an experimental investigation into a different way of computing. The
developers started from several basic assumptions: that CPUs are very
cheap but that we don't really know how to combine them effectively; that
*good* networking is very important; that an intelligent user interface
(complete with dot-mapped display and mouse) is a Right Decision; that
existing systems with networks, mice, etc., are not the correct way to
do things, and in particular that today's workstations are not the way to
go. (No, I won't bother to explain all their reasoning; that's a long
and separate article.) Finally, the UNIX system per se is dead as a
vehicle for serious research into operating system structure; it has grown
too large, and is too constrained by 15+ years of history.
Now -- given those assumptions, they decided to throw away what we have
today and design a new system. Compatibility isn't an issue -- they are
not in the product-building business. (Nor are they in the ``let's make
another clever hack'' business.) Of course aspects of Plan 9 resemble
the UNIX system quite strongly -- is it any surprise that Pike, Thompson,
et al., think that that's a decent model to follow? But Plan 9 isn't,
and is not meant to be, a re-implementation of the UNIX system. If you
want, call it a UNIX-like system.
Will Plan 9 ever be released? I have no idea. Will it remain buried?
I hope not. Large companies do not sponsor large research organizations
just for the prestige; they hope for an (eventual) concrete return in the
form of concepts that can be made into (or incorporated into) products.
--Steve Bellovin
Disclaimer: this article is not, of course, an official statement from AT&T.
Nor is it an official statement of the reasoning behind Plan 9. I do think
it's accurate, though, and I'm sure I'll be told if I'm wrong...
Plan 9 is not for you
Let's be perfectly honest. Many features that today's "computer experts" consider to be essential to computing (JavaScript, CSS, HTML5, etc.) either did not exist when Plan 9 was abandoned, or were purposely left out of the operating system. You might find this to be an unacceptable obstacle to adopting Plan 9 into your daily workflow. If you cannot imagine a use for a computer that does not involve a web browser, Plan 9 may not be for you.
See: http://harmful.cat-v.org/software/
On the other hand, the roaring 2020s have seen Plan 9 sprout a substantial presence on social media, so if you're here for that, YMMV.
Why Plan 9?
You may ask yourself, well, how did I get here? In the words of Plan 9 contributor Russ Cox:
What do people like about Plan 9?
Descriptive testimony by long time Plan 9 users Charles Forsyth, Anthony Sorace and Geoff Collyer:
https://9p.io/wiki/plan9/what_do_people_like_about_plan_9/index.html
What do you use Plan 9 for?
Computing.
Read: How I Switched To Plan 9
See: FQA 8 - Using 9front
What do people hate about Plan 9?
John Floren provides a humorous(?) overview of a typical new user's reactions to Plan 9:
Is this guy you?
Related: http://9front.org/buds.html
What is not in Plan 9
A summary of common features you may have been expecting that are missing from Plan 9:
http://c2.com/cgi/wiki?WhatIsNotInPlanNine
Why did Plan 9's creators give up on Plan 9?
All of the people who worked on Plan 9 have moved on from Bell Labs and/or no longer work on Plan 9. Various reasons have been articulated by various people.
Russ Cox (again)
Russ Cox continues:
Why did Plan 9's users give up on Plan 9?
They probably have their reasons.
Why did CIA give up on Plan 9?
What is the deal with Plan 9's weird license?
Over the years Plan 9 has been released under various licenses, to the consternation of many.
The first edition, released in 1992, was made available only to universities. The process for acquiring the software was convoluted and prone to clerical error. Many potential users had trouble obtaining it within a reasonable time frame and many complaints were voiced on the eventual Plan 9 Internet mailing list.
The second edition, released in 1995 in book-and-CD form under a relatively standard commercial license, was available via mailorder as well as through a special telephone number for a price of approximately $350 USD. It was certainly easier to acquire than the first edition, but many potential users still complained that the price was too high and that the license was too restrictive.
Richard Stallman hates the Plan Nine license (circa 2000)
In the year 2000, the third edition of Plan 9 was finally released under a custom "open source" license, the Plan 9 License. Richard Stallman was not impressed:
http://www.gnu.org/philosophy/free-sw.html
Read more here:
http://www.linuxtoday.com/developer/2000070200704OPLFSW
Theo de Raadt hates the Plan 9 license (circa 2003)
In the year 2002, the fourth edition of Plan 9 was released under the Lucent Public License. This time, Theo de Raadt was not impressed:
Read more here:
http://9fans.net/archive/2003/06/270
Everyone hates the Plan 9 license (circa 2014)
In 2014, portions of the Plan 9 source code were again re-licensed, this time under the GPLv2, for distribution with the University of California, Berkeley's Akaros operating system. Predictably, various parties were not impressed.
Russ Cox tried to make sense of the situation by commenting in a Hacker News thread:
Some have suggested that confusion about licensing may have contributed to Plan 9's failure to supplant UNIX in the wider computing world.
PRAISE FOR 9FRONT'S BOLD ACTION RE: LICENSING
Any additions or changes (as recorded in Mercurial history) made by
9front are provided under the terms of the MIT License, reproduced in
the file
/lib/legal/mit
,
unless otherwise indicated.
Everyone loves the Plan 9 license (circa 2021)
In 2021, the Plan 9 Foundation (aka P9F--no relation) convinced Nokia to re-license all historical editions of the Plan9 source code under the MIT Public License.
As a consequence, all of 9front is now provided under the MIT License unless otherwise indicated.
Re-read:
/lib/legal/mit
Further Reading
Plan 9 papers
Academic papers that describe the Plan 9 operating system are available here: http://doc.cat-v.org/plan_9/
Man pages
- Section (1) for general publicly accessible commands.
- Section (2) for library functions, including system calls.
- Section (3) for kernel devices (accessed via bind(1)).
- Section (4) for file services (accessed via mount).
- Section (5) for the Plan 9 file protocol.
- Section (6) for file formats.
- Section (7) for databases and database access programs.
- Section (8) for things related to administering Plan 9.
Web pages
The official website for the Plan 9 project is located at: https://9p.io/wiki/plan9
The official website for the Plan 9 Foundation is located at: http://p9f.org
The 9front fork of Plan 9 (that's us): http://9front.org
A community wiki setup by 9front users: http://wiki.a-b.xyz
Much other valuable information can be found at http://cat-v.org regarding aspects of UNIX, Plan 9, and software in general.
Books
Introduction to OS Abstractions Using Plan 9 From Bell Labs, by Francisco J Ballesteros (nemo)
Notes on the Plan 9 3rd Edition Kernel, by Francisco J Ballesteros (nemo)
The UNIX Programming Environment, by Brian W. Kernighan (bwk) and Rob Pike (rob) (this book is the most clear, concise and eloquent expression of the Unix and 'tool' philosophies to date)
9FRONT DASH 1 (the document you are reading right now, but in book form)
.bp