code: fqa.9front.org

ref: 6c57f9aca14292fc3d3015a9d29003b2bab61c06
dir: /fqa0.ms/

View raw version
.\" This troff source is processed to create all forms of the
.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
.\" NOTE: Purely experimental. Methods employed may change.
.\" troff -ms -mpictures fqa0.ms | page
.\" htmlroff -u -ms -mhtml fqa0.ms >fqa0.html
.de FG	\" .FG <basename>
.ie h .html - <img src="\\$1.\\$2" />
.el .BP \\$1.ps
.br
..
.po 1i \" page offset (from left)
.fp 1 R LucidaSans
.fp 2 I LucidaSansI
.fp 3 B LucidaSansB
.fp 4 BI LucidaSansI
.fp 5 CW LucidaCW
.paragraph 0
.margin 0
.HTML "FQA 0 - Introduction To Plan 9
.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
.html - <a href="fqa.html">FQA INDEX</a> |
.html - <a href="fqa1.html">FQA 1 - Introduction To 9front</a>
.html - <hr />
.SH
.LG
.ihtml h1 <h1>
FQA 0 - Introduction to Plan 9
.ihtml h1
.NL
.R
.html - <a href="fqa0.html">html</a> |
.html - <a href="fqa0.pdf">pdf</a> |
.html - <a href="fqa0.ms">troff</a>
.html - <a name="0.1" />

.ihtml h2 <h2>
.SH
0.1 - What is Plan 9?
.R
.ihtml h2
.html - <br />
.FG csrc jpg
.html - <br />
.FG plan9team1995 jpg

Plan 9 is a research operating system from the same group who created UNIX at
.ihtml a <a href="https://web.archive.org/web/20150221121232/http://cm.bell-labs.com/cm/cs/alumni.html">
Bell Labs Computing Sciences Research Center
.ihtml a
(CSRC). It emerged in the late 1980s, and its early development coincided with continuing development of the later versions of
.ihtml a <a href="http://en.wikipedia.org/wiki/Research_Unix">
Research UNIX.
.ihtml a
Plan 9 can be seen as an attempt to push some of the same ideas that informed UNIX
.ihtml a <a href="https://www.westword.com/music/my-bus-wants-to-have-sex-with-your-bus-psychic-tvs-special-connection-to-denver-7415384">
.I
even further
.R
.ihtml a
into the era of networking and graphics.
.ihtml a <a href="http://en.wikipedia.org/wiki/Rob_Pike">
Rob Pike
.ihtml a
has described Plan 9 as "an argument" for simplicity and clarity, while others have described it as "UNIX, only moreso."

From
.I
.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/names">
The Use of Name Spaces in Plan 9:
.ihtml a
.R
.html ul <ul>
.QS
Plan 9 argues that given a few carefully implemented abstractions it
is possible to produce a small operating system that provides support
for the largest systems on a variety of architectures and networks.
.QE
.html ul

From the
.ihtml a <a href="http://man.9front.org/1/intro">
.CW
intro(1)
.R
.ihtml a
man page:

.html ul <ul>
.QS
Plan 9 is a distributed computing environment assembled from
separate machines acting as terminals, CPU servers, and file
servers.  A user works at a terminal, running a window
system on a raster display.  Some windows are connected to
CPU servers; the intent is that heavy computing should be
done in those windows but it is also possible to compute on
the terminal.  A separate file server provides file storage
for terminals and CPU servers alike.
.QE
.html ul

The two most important ideas in Plan 9 are:

.ihtml ul <ul>
.IP
•
.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/names">
private namespaces
.ihtml a
(each process constructs a unique view of the hierarchical file system)

•
.ihtml a <a href="http://man.9front.org/5/intro">
file interfaces
.ihtml a
(familiar from UNIX, but taken to the extreme: all resources in Plan 9 look like file systems)
.LP
.ihtml ul

Most everything else in the system falls out of these two basic ideas.

.ihtml ul <ul>
.IP
.I
Plan 9 really pushes hard on some ideas that Unix has that haven't
really been fully developed, in particular, the notion that just about
everything in the system is accessible through a file.  In other
words, things look like an ordinary disk file.  So all the devices are
controlled this way by means of ASCII strings, not complicated data
structures.  For example, you make network calls by writing an ASCII
string, not the files.  This notion is something that's actually
leaking quite fast.

The second thing is sort of more subtle and sort of hard to appreciate
until you've actually played with it.  That is that the set of files
an individual program can see depends on that program itself.  In a
standard kind of system, either with Unix remote file systems or
Windows attached file systems, all the programs running in the machine
see the same thing.  In Plan 9, that's adjustable per program.  You
can set up specialized name stations that are unique to a particular
program.  I mean, it's not associated with the program itself but with
the process, with the execution of the process.
.R

\(em Dennis Ritchie
.LP
.ihtml ul

Read:
.ihtml a <a href="http://man.9front.org/1/intro">
.CW
intro(1);
.R
.ihtml a
.ihtml a <a href="http://doc.cat-v.org/plan_9/4th_edition/papers/9">
.I
Plan 9 from Bell Labs;
.R
.ihtml a
.ihtml a <a href="http://doc.cat-v.org/plan_9/1st_edition/designing_plan_9">
.I
Designing Plan 9,
.R
.ihtml a
originally delivered at the
.ihtml a <a href="https://groups.google.com/forum/#!topic/uk.announce/wEUdLbrb_Uk">
UKUUG Conference in London, July 1990;
.ihtml a
and
.ihtml a <a href="fqa7.html">
.I
FQA 7 - System Management;
.R
.ihtml a
for a more detailed overview of Plan 9's design.
.bp
.html - <br />
.FG fork jpg

Today, Plan 9 continues in its original form, as well as in several derivatives and forks.
.SH
The United States of Plan 9
.R

.ihtml a <a href="http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs">
Plan 9 from Bell Labs
.ihtml a
\(em The original Plan 9.  Effectively dead, all the developers have been run out of the Labs and/or are on display at Google.

.ihtml a <a href="http://en.wikipedia.org/wiki/Plan_9_from_User_Space">
Plan 9 from User Space
.ihtml a
\(em Plan 9 userspace ported/imitated for UNIX (specifically OS X).

.ihtml a <a href="http://www.9legacy.org">
9legacy
.ihtml a
\(em David du Colombier's cherry picked collection of patches from various people/forks to Bell Labs Plan 9. (It is not a fork.)

.ihtml a <a href="http://www.9atom.org">
9atom
.ihtml a
\(em Erik Quanstrom's fork of Plan 9, maintained to Erik's needs and occasionally pilfered by 9front.

.ihtml a <a href="http://9front.org">
9front
.ihtml a
\(em (that's us) (we rule (we're the tunnel snakes))

.ihtml a <a href="http://lsub.org/ls/nix.html">
NIX 
.ihtml a
\(em High performance cloud computing is NIX \(em imploded in a cloud of political acrimony and retarded bureaucratic infighting.

.ihtml a <a href="http://nxm.coreboot.org/NxM">
NxM
.ihtml a
\(em A kernel for manycore systems \(em never spotted in the wild.

.ihtml a <a href="http://lsub.org/ls/research.html">
Clive
.ihtml a
\(em A new operating system from Francisco J. Ballesteros, designed to generate grantwriting practice material and research projects for otherwise indolent students.

.ihtml a <a href="http://akaros.cs.berkeley.edu/akaros-web/news.php">
Akaros
.ihtml a
\(em Akaros is an open source, GPL-licensed operating system for manycore architectures.  Has no bearing on anything but has attracted grant money.

.ihtml a <a href="http://harvey-os.org/">
Harvey
.ihtml a
\(em Harvey is an effort to get the Plan 9 code working with gcc and clang.

.ihtml a <a href="http://www.vitanuova.com/inferno/index.html">
Inferno
.ihtml a
\(em Inferno is a distributed operating system started at Bell Labs, but is now developed and maintained by
.ihtml a <a href="http://www.vitanuova.com/">
Vita Nuova Holdings
.ihtml a
as free software. Just kidding it is not developed or maintained.

.ihtml a <a href="http://9gridchan.org">
ANTS
.ihtml a
\(em Advanced Namespace Tools for Plan 9. ANTS is a collection of modifications and additional software which adds new namespace manipulation capabilities to Plan 9.

.ihtml a <a href="http://jehanne.io">
Jehanne
.ihtml a
\(em Jehanne:Harvey::William King Harvey:J. Edgar Hoover

.ihtml a <a href="http://9pf.org">
Plan 9 Foundation
.ihtml a
\(em Now offering downloads of historical Plan 9 releases.

.html - <a name="0.1.1" />
.ihtml h3 <h3>
.SH
0.1.1 - Plan 9 is not UNIX
.R
.ihtml h3
.html - <br />
.FG notunix jpg

In the words of the
.ihtml a <a href="https://9p.io/wiki/plan9/plan_9_wiki/fqa.html">
Bell Labs Plan 9 wiki:
.ihtml a

.html ul <ul>
.QS
Plan 9 is not Unix.  If you think of it as Unix, you may become
frustrated when something doesn't exist or when it works differently
than you expected.  If you think of it as Plan 9, however, you'll find
that most of it works very smoothly, and that there are some truly
neat ideas that make things much cleaner than you have seen before.
.QE
.html ul

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
.ihtml a <a href="http://doc.cat-v.org/bell_labs/upas_mail_system">
.CW
upas
.R
.ihtml a
mail interface, the
.ihtml a <a href="http://sam.cat-v.org">
.CW
sam
.R
.ihtml a
text editor, and the
.ihtml a <a href="http://man.9front.org/1/rc">
.CW
rc
.R
.ihtml a
shell) are carried over directly from
.ihtml a <a href="https://web.archive.org/web/20170601063844/http://www.cs.bell-labs.com/10thEdMan">
Research UNIX 10th Edition.
.ihtml a
Further investigation reveals that many ideas found in Plan 9 were explored in more primitive form in the later editions of
.ihtml a <a href="http://en.wikipedia.org/wiki/Research_Unix">
Research UNIX.
.ihtml a

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
.I
for a reason.
.R

Read:
.ihtml a <a href="https://9p.io/wiki/plan9/Unix_to_Plan_9_command_translation/index.html">
.I
UNIX to Plan 9 command translation,
.R
.ihtml a
.ihtml a <a href="http://harmful.cat-v.org/cat-v/">
.I
UNIX Style, or cat -v Considered Harmful
.R
.ihtml a

.html - <a name="0.1.1.1" />
.ihtml h4 <h4>
.SH
0.1.1.1 - Plan 9 is not plan9port
.R
.ihtml h4

.ihtml a <a href="https://en.wikipedia.org/wiki/Plan_9_from_user_space">
Plan 9 from User Space
.ihtml a
(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
.ihtml a <a href="https://9fans.topicbox.com/groups/9fans/T15127d7ddd5c7310/sam-and-samterm-in-go">
slowly ported
.ihtml a
to the Go programming language.

.html - <a name="0.1.1.2" />
.ihtml h4 <h4>
.SH
0.1.1.2 - Plan 9 is not Inferno
.R
.ihtml h4
.html - <br />
.FG inferno png

.ihtml a <a href="http://www.vitanuova.com/inferno/index.html">
Inferno
.ihtml a
is a distributed operating system also created at Bell Labs, but which is now developed and maintained by
.ihtml a <a href="http://www.vitanuova.com/">
Vita Nuova Holdings
.ihtml a
as free software. It employs many ideas from Plan 9 (and even shares some source code), but is a completely different OS.

.B Note:
Inferno shares some compatible interfaces with Plan 9, including the
.ihtml a <a href="http://9p.cat-v.org">
9P/Styx
.ihtml a
protocol.
.bp
.html - <a name="0.1.2" />
.ihtml h3 <h3>
.SH
0.1.2 - Plan 9 is not a product
.R
.ihtml h3

.html ul <ul>
.DS
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...
.DE
.html ul

.html - <a name="0.1.3" />
.ihtml h3 <h3>
.SH
0.1.3 - Plan 9 is not for you
.R
.ihtml h3

.B
Let's be perfectly honest.
.R
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:
.ihtml a <a href="http://harmful.cat-v.org/software/">
http://harmful.cat-v.org/software/
.ihtml a

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.

.FG itsbeyondmycontrol jpg

.html - <a name="0.2" />
.ihtml h2 <h2>
.SH
0.2 - Why Plan 9?
.R
.ihtml h2

You may ask yourself, well, how did I get here? In the words of Plan 9 contributor
.ihtml a <a href="http://swtch.com">
Russ Cox:
.ihtml a

.html ul <ul>
.QS
Why Plan 9 indeed.  Isn't Plan 9 just another Unix clone?  Who cares?

Plan 9 presents a consistent and easy to use interface.  Once you've
settled in, there are very few surprises here.  After I switched to
Linux from Windows 3.1, I noticed all manner of inconsistent behavior
in Windows 3.1 that Linux did not have.  Switching to Plan 9 from
Linux highlighted just as much in Linux.

One reason Plan 9 can do this is that the Plan 9 group has had the
luxury of having an entire system, so problems can be fixed and
features added where they belong, rather than where they can be.  For
example, there is no tty driver in the kernel.  The window system
handles the nuances of terminal input.

If Plan 9 was just a really clean Unix clone, it might be worth using,
or it might not.  The neat things start happening with user-level file
servers and per-process namespace.  In Unix, /dev/tty refers to the
current window's output device, and means different things to
different processes.  This is a special hack enabled by the kernel for
a single file.  Plan 9 provides full-blown per-process namespaces.  In
Plan 9 /dev/cons also refers to the current window's output device,
and means different things to different processes, but the window
system (or telnet daemon, or ssh daemon, or whatever) arranges this,
and does the same for /dev/mouse, /dev/text (the contents of the
current window), etc.

Since pieces of file tree can be provided by user-level servers, the
kernel need not know about things like DOS's FAT file system or
GNU/Linux's EXT2 file system or NFS, etc.  Instead, user-level servers
provide this functionality when desired.  In Plan 9, even FTP is
provided as a file server: you run ftpfs and the files on the server
appear in /n/ftp.

We need not stop at physical file systems, though.  Other file servers
synthesize files that represent other resources.  For example, upas/fs
presents your mail box as a file tree at /mail/fs/mbox.  This models
the recursive structure of MIME messages especially well.

As another example, cdfs presents an audio or data CD as a file
system, one file per track.  If it's a writable CD, copying new files
into the /mnt/cd/wa or /mnt/cd/wd directories does create new audio or
data tracks.  Want to fixate the CD as audio or data?  Remove one of
the directories.

Plan 9 fits well with a networked environment, files and directory
trees can be imported from other machines, and all resources are files
or directory trees, it's easy to share resources.  Want to use a
different machine's sound card?  Import its /dev/audio.  Want to debug
processes that run on another machine?  Import its /proc.  Want to use
a network interface on another machine?  Import its /net.  And so on.

Russ Cox
.QE
.html ul

.html - <a name="0.2.1" />
.ihtml h3 <h3>
.SH
0.2.1 - What do people like about Plan 9?
.R
.ihtml h3

Descriptive testimony by long time Plan 9 users Charles Forsyth, Anthony Sorace and Geoff Collyer:

.ihtml a <a href="https://9p.io/wiki/plan9/what_do_people_like_about_plan_9/index.html">
https://9p.io/wiki/plan9/what_do_people_like_about_plan_9/index.html
.ihtml a

.html - <a name="0.2.1.1" />
.ihtml h4 <h4>
.SH
0.2.1.1 - What do you use Plan 9 for?
.R
.ihtml h4

Computing.

Read:
.ihtml a <a href="http://helpful.cat-v.org/Blog/2019/12/03/0/">
.I
How I Switched To Plan 9
.R
.ihtml a

See:
.ihtml a <a href="fqa8.html">
.I
FQA 8 - Using 9front
.R
.ihtml a

.html - <a name="0.2.2" />
.ihtml h3 <h3>
.SH
0.2.2 - What do people hate about Plan 9?
.R
.ihtml h3

.ihtml a <a href="http://jfloren.net">
John Floren
.ihtml a
provides a humorous(?) overview of
.ihtml a <a href="http://jfloren.net/b/2012/4/27/0">
a typical new user's reactions to Plan 9:
.ihtml a

.html ul <ul>
.QS
Hi! I'm new to Plan 9. I'm really excited to work with this
new Linux system.

I hit some questions.
.br
1  How do I run X11?
.br
2  Where is Emacs?
.br
3  The code is weird. It doesn't look like GNU C at all.
Did the people who wrote Plan 9 know about C?
.br
4  I tried to run mozilla but it did not work. How come?
.QE
.html ul

Is this guy you?

Related:
.ihtml a <a href="http://9front.org/buds.html">
http://9front.org/buds.html
.ihtml a

.html - <a name="0.2.2.1" />
.ihtml h4 <h4>
.SH
0.2.2.1 - What is not in Plan 9
.R
.ihtml h4

A summary of common features you may have been expecting that are missing from Plan 9:

.ihtml a <a href="http://c2.com/cgi/wiki?WhatIsNotInPlanNine">
http://c2.com/cgi/wiki?WhatIsNotInPlanNine
.ihtml a

.html - <a name="0.2.3" />
.ihtml h3 <h3>
.SH
0.2.3 - Why did Plan 9's creators give up on Plan 9?
.R
.ihtml h3
.html - <br />
.FG belllabs jpg

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.

.ihtml a <a href="http://russ.cox.usethis.com">
Russ Cox:
.ihtml a

.html ul <ul>
.QS
I ran Plan 9 from Bell Labs as my day to day work environment until
around 2002.  By then two facts were painfully clear.  First, the
Internet was here to stay; and second, Plan 9 had no hope of keeping
up with web browsers.  Porting Mozilla to Plan 9 was far too much
work, so instead I ported almost all the Plan 9 user level software to
FreeBSD, Linux, and OS X.
.QE
.html ul

Russ Cox
.ihtml a <a href="http://marc.info/?l=9fans&m=126697423223383">
(again):
.ihtml a

.html ul <ul>
.QS
The standard set up for a Plan 9 aficionado here seems to
be a Mac or Linux machine running Plan 9 from User Space
to get at sam, acme, and the other tools.  Rob, Ken, Dave, and I
use Macs as our desktop machines, but we're a bit of an exception.
Most Google engineers use Linux machines, and I know of
quite a few ex-Bell Labs people who are happy to be using
sam or acme on those machines.  My own setup is two
screens.  The first is a standard Mac desktop with non-Plan 9
apps and a handful of 9terms, and the second is a full-screen
acme for getting work done.  On Linux I do the same but the
first screen is a Linux desktop running rio (formerly dhog's 8½).

More broadly, every few months I tend to get an email from
someone who is happy to have just discovered that sam is still
maintained and available for modern systems.  A lot of the time
these are people who only used sam on Unix, never on Plan 9.
The plan9port.tgz file was downloaded from 2,522 unique
IP addresses in 2009, which I suspect is many more than
Plan 9 itself.  In that sense, it's really nice to see the tools
getting a much wider exposure than they used to.

I haven't logged into a real Plan 9 system in many years,
but I use 9vx occasionally when I want to remind myself how
a real Plan 9 tool worked.  It's always nice to be back,
however briefly.

Russ
.QE
.html ul

Russ Cox
.ihtml a <a href="http://marc.info/?l=9fans&m=126700061820789">
continues:
.ihtml a

.html ul <ul>
.QS
> Can you briefly tell us why you (Russ, Rob, Ken and Dave)
.br
> no longer use Plan9 ?
.br
> Because of missing apps or because of missing driver for your hardware ?
.br
> And do you still use venti ?

Operating systems and programming languages have
strong network effects: it helps to use the same system
that everyone around you is using.  In my group at MIT,
that meant FreeBSD and C++.  I ran Plan 9 for the first
few years I was at MIT but gave up, because the lack of
a shared system made it too hard to collaborate.
When I switched to FreeBSD, I ported all the Plan 9 libraries
and tools so I could keep the rest of the user experience.

I still use venti, in that I still maintain the venti server that
takes care of backups for my old group at MIT.  It uses
the plan9port venti, vbackup, and vnfs, all running on FreeBSD.
The venti server itself was my last real Plan 9 installation.
It's Coraid hardware, but I stripped the software and had installed
my own Plan 9 kernel to run venti on it directly.  But before
I left MIT, the last thing I did was reinstall the machine using
FreeBSD so that others could help keep it up to date.

If I wasn't interacting with anyone else it'd be nice to keep
using Plan 9.  But it's also nice to be able to use off the shelf
software instead of reinventing wheels (9fans runs on Linux)
and to have good hardware support done by other people
(I can shut my laptop and it goes to sleep, and even better,
when I open it again, it wakes up!).  Being able to get those
things and still keep most of the Plan 9 user experience by
running Plan 9 from User Space is a compromise, but one
that works well for me.

Russ
.QE
.html ul

.ihtml a <a href="http://marc.info/?l=9fans&m=126704318227120">
Rob Pike:
.ihtml a

.html ul <ul>
.QS
What Russ says is true but for me it was simpler. I used Plan 9 as my
local operating system for a year or so after joining Google, but it
was just too inconvenient to live on a machine without a C++ compiler,
without good NFS and SSH support, and especially without a web
browser.  I switched to Linux but found it very buggy (the main
problem was most likely a bad graphics board and/or driver, but still)
and my main collaborator (Robert Griesemer) had done the ground work
to get a Mac working as a primary machine inside Google, and Russ had
plan9port up, so I pushed plan9port onto the Mac and have been there
ever since, quite happily.  Nowadays Apples are officially supported
so it's become easy, workwise.

I miss a lot of what Plan 9 did for me, but the concerns at work override that.

-rob
.QE
.html ul

.html - <a name="0.2.3.1" />
.ihtml h3 <h3>
.SH
0.2.3.1 - Why did Plan 9's users give up on Plan 9?
.R
.ihtml h3
.html - <br />
.FG suncart png

They probably have their reasons.


.html - <a name="0.2.3.2" />
.ihtml h3 <h3>
.SH
0.2.3.2 - Why did CIA give up on Plan 9?
.R
.ihtml h3

Someone tried to find out:

.ihtml a <a href="https://www.muckrock.com/foi/united-states-of-america-10/foia-cia-plan-9-from-bell-labs-82547/">
https://www.muckrock.com/foi/united-states-of-america-10/foia-cia-plan-9-from-bell-labs-82547/
.ihtml a

.ihtml h3 <h3>
.SH
0.2.4 - What is the deal with Plan 9's weird license?
.R
.ihtml h3
.html - <br />
.FG intellectualproperty jpg

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
.ihtml a <a href="fqa2.html#2.2.2">
Plan 9 Internet mailing list.
.ihtml a

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.

.html - <a name="0.2.4.1" />
.ihtml h4 <h4>
.SH
0.2.4.1 - Richard Stallman hates the Plan Nine license (circa 2000)
.R
.ihtml h4

In the year 2000, the third edition of Plan 9 was finally released under a custom "open source" license, the
.ihtml a <a href="https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs#History">
Plan 9 License.
.ihtml a
.ihtml a <a href="https://stallman.org/">
Richard Stallman
.ihtml a
was not impressed:

.html ul <ul>
.QS
When I saw the announcement that the Plan Nine software had been released
as "open source", I wondered whether it might be free software as well.
After studying the license, my conclusion was that it is not free; the
license contains several restrictions that are totally unacceptable for
the Free Software Movement. (See 
.ihtml a <a href="http://www.gnu.org/philosophy/free-sw.html">
http://www.gnu.org/philosophy/free-sw.html
.ihtml a
.)

.QE
.html ul

Read more here:

.ihtml a <a href="http://www.linuxtoday.com/developer/2000070200704OPLFSW">
http://www.linuxtoday.com/developer/2000070200704OPLFSW
.ihtml a

.html - <a name="0.2.4.2" />
.ihtml h4 <h4>
.SH
0.2.4.2 - Theo de Raadt hates the Plan 9 license (circa 2003)
.R
.ihtml h4

In the year 2002, the fourth edition of Plan 9 was released under the
.ihtml a <a href="http://git.9front.org/plan9front/plan9front/HEAD/lib/legal/lpl/f.html">
Lucent Public License.
.ihtml a
This time, Theo de Raadt was not impressed:

.html ul <ul>
.QS
The new license is utterly unacceptable for use in a BSD project.

Actually, I am astounded that the OSI would declare such a license
acceptable.

That is not a license which makes it free.  It is a *contract* with
consequences; let me be clear -- it is a contract with consequences
that I am unwilling to accept.
.html ul
.QE

Read more here:

.ihtml a <a href="http://marc.info/?l=9fans&m=111558887521594">
http://9fans.net/archive/2003/06/270
.ihtml a

.html - <a name="0.2.4.3" />
.ihtml h4 <h4>
.SH
0.2.4.3 - Everyone hates the Plan 9 license (circa 2014)
.R
.ihtml h4

In 2014, portions of the Plan 9 source code were again re-licensed, this time under the
.ihtml a <a href="http://www.gnu.org/licenses/gpl-2.0.html">
GPLv2,
.ihtml a
for distribution with the
.ihtml a <a href="http://en.wikipedia.org/wiki/University_of_California,_Berkeley">
University of California, Berkeley's
.ihtml a <a href="http://akaros.cs.berkeley.edu/akaros-web/">
Akaros
.ihtml a
operating system. Predictably, various parties were not impressed.

Russ Cox tried to make sense of the situation by commenting in a
.ihtml a <a href="https://news.ycombinator.com/item?id=7232511">
Hacker News thread:
.ihtml a

.html ul <ul>
.QS
When you ask "why did big company X make strange choice Y regarding
licensing or IP", 99 times out of 100 the answer is "lawyers". If the Plan
9 group had had its way, Plan 9 would have been released for free under a
trivial MIT-like license (the one used for other pieces of code, like the
one true awk) in 2003 instead of creating the Lucent Public License. Or in
2000 instead of creating the "Plan 9 License". Or in 1995 instead of as a
$350 book+CD that came with a license for use by an entire "organization".
Or in 1992 instead of being a limited academic release.

Thankfully I am not at Lucent anymore and am not privy to the tortured
negotiations that ended up at the obviously inelegant compromise of "The
University of California, Berkeley, has been authorised by Alcatel-Lucent
to release all Plan 9 software previously governed by the Lucent Public
License, Version 1.02 under the GNU General Public License, Version 2." But
the odds are overwhelming that the one-word answer is "lawyers".
.QE
.html ul

Some have suggested that confusion about licensing may have contributed to Plan 9's failure to supplant UNIX in the wider computing world.

.html - <a name="0.2.4.4" />
.ihtml h4 <h4>
.SH
0.2.4.4 - PRAISE FOR 9FRONT'S BOLD ACTION RE: LICENSING
.R
.ihtml h4

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
.ihtml a <a href="http://git.9front.org/plan9front/plan9front/HEAD/lib/legal/mit/f.html">
.CW /lib/legal/mit ,
.ihtml a
unless otherwise indicated.

Read:
.ihtml a <a href="http://git.9front.org/plan9front/plan9front/HEAD/lib/legal/NOTICE/f.html">
.CW /lib/legal/NOTICE .
.ihtml a

.html - <a name="0.2.4.5" />
.ihtml h4 <h4>
.SH
0.2.4.5 - Everyone loves the Plan 9 license (circa 2021)
.R
.ihtml h4

In 2021, the
.ihtml a <a href="http://9pf.org">
Plan 9 Foundation
.ihtml a
(aka P9F\(emno relation) convinced Nokia to
.ihtml a <a href="https://9fans.topicbox.com/groups/9fans/Tf20bce89ef96d4b6-M63f81768e4ffdfa4df402ec5">
re-license
.ihtml a
all historical editions of the Plan9 source code under the MIT Public License.

As a consequence,
.I
all
.R
of 9front is now provided under the MIT License unless otherwise indicated.

Re-read:
.ihtml a <a href="http://git.9front.org/plan9front/plan9front/HEAD/lib/legal/mit/f.html">
.CW /lib/legal/mit
.ihtml a

.html - <a name="0.3" />
.ihtml h2 <h2>
.SH
0.3 - Further Reading
.R
.ihtml h2
.html - <a name="0.3.1" />
.ihtml h3 <h3>
.SH
0.3.1 - Plan 9 papers
.R
.ihtml h3

Academic papers that describe the Plan 9 operating system are available here:

.ihtml a <a href="http://doc.cat-v.org/plan_9/">
http://doc.cat-v.org/plan_9/
.ihtml a

.html - <a name="0.3.2" />
.ihtml h3 <h3>
.SH
0.3.2 - Man pages
.R
.ihtml h3

.ihtml a <a href="http://man.9front.org/1/">
Section (1)
.ihtml a
for general publicly accessible commands.

.ihtml a <a href="http://man.9front.org/2/">
Section (2)
.ihtml a
for library functions, including system calls.

.ihtml a <a href="http://man.9front.org/3/">
Section (3)
.ihtml a
for kernel devices (accessed via bind(1)).

.ihtml a <a href="http://man.9front.org/4/">
Section (4)
.ihtml a
for file services (accessed via mount).

.ihtml a <a href="http://man.9front.org/5/">
Section (5)
.ihtml a
for the Plan 9 file protocol.

.ihtml a <a href="http://man.9front.org/6/">
Section (6)
.ihtml a
for file formats.

.ihtml a <a href="http://man.9front.org/7/">
Section (7)
.ihtml a
for databases and database access programs.

.ihtml a <a href="http://man.9front.org/8/">
Section (8)
.ihtml a
for things related to administering Plan 9.

.html - <a name="0.3.3" />
.ihtml h3 <h3>
.SH
0.3.3 - Web pages
.R
.ihtml h3

The official website for the Plan 9 project is located at:
.ihtml a <a href="https://9p.io/wiki/plan9">
https://9p.io/wiki/plan9
.ihtml a

The official website for the Plan 9 Foundation is located at:
.ihtml a <a href="http://p9f.org">
http://p9f.org
.ihtml a

The 9front fork of Plan 9 (that's us):
.ihtml a <a href="http://9front.org">
http://9front.org
.ihtml a

A community wiki setup by 9front users:
.ihtml a <a href="http://wiki.a-b.xyz">
http://wiki.a-b.xyz
.ihtml a

Much other valuable information can be found at
.ihtml a <a href="http://cat-v.org">
http://cat-v.org
.ihtml a
regarding aspects of UNIX, Plan 9, and software in general.

.html - <a name="0.3.4" />
.ihtml h3 <h3>
.SH
0.3.4 - Books
.R
.ihtml h3
.html - <br />
.FG books jpg

.ihtml a <a href="http://plan9.stanleylieber.com/_books/comp/plan9/Introduction.To.OS.Abstractions.Using.Plan.9.From.Bell.Labs.draft.2007.pdf">
.I
Introduction to OS Abstractions Using Plan 9 From Bell Labs,
.R
.ihtml a
by
.ihtml a <a href="http://lsub.org/who/nemo">
Francisco J Ballesteros (nemo)
.ihtml a

.ihtml a <a href="http://plan9.stanleylieber.com/_books/comp/plan9/Notes.On.The.Plan.9.3rd.Edition.Kernel.Source.pdf">
.I
Notes on the Plan 9 3rd Edition Kernel,
.R
.ihtml a
by
.ihtml a <a href="http://lsub.org/who/nemo">
Francisco J Ballesteros (nemo)
.ihtml a

.ihtml a <a href="http://books.cat-v.org/computer-science/unix-programming-environment/">
.I
The UNIX Programming Environment,
.R
.ihtml a
by
.ihtml a <a href="http://genius.cat-v.org/brian-kernighan/">
Brian W. Kernighan (bwk)
.ihtml a
and
.ihtml a <a href="http://genius.cat-v.org/rob-pike/">
Rob Pike (rob)
.ihtml a
(this book is the most clear, concise and eloquent expression of the Unix and 'tool' philosophies to date)

.ihtml a <a href="http://9front.org/propaganda/books">
.I
9FRONT DASH 1
.R
.ihtml a
(the document you are reading right now, but in book form)

.html - <hr />
.html - <a href="fqa.html">FQA INDEX</a> |
.html - FQA 0 - Introduction To Plan 9 |
.html - <a href="fqa1.html">FQA 1 - Introduction To 9front</a>