FQA INDEX | FQA 1 - Introduction To 9front

FQA 0 - Introduction to Plan 9

html | pdf | troff

0.1 - 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:

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.

0.1.1 - 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 translation (wiki.9front.org), UNIX to Plan 9 command translation (9p.io), 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 (Inferno does share some compatible interfaces with Plan 9, including the 9P/Styx protocol), but is a completely different OS. Many users new to Plan 9 find out about Inferno and immediately decide to abandon Plan 9 and its opaque user interface for this obviously "more advanced" sibling, but usually abandon that, too, upon first contact with Inferno’s Tk GUI. Notable exceptions duly noted.

See: http://www.xs4all.nl/~mechiel/inferno/

0.1.2 - Plan 9 is not a product

0.1.3 - 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 by its creators, 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.

0.2 - Why Plan 9?

You may ask yourself, well, how did I get here? In the words of Plan 9 contributor Russ Cox:

0.2.1 - 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?


Read: How I Switched To Plan 9

See: FQA 8 - Using 9front

0.2.2 - 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:


0.2.3 - 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:

Russ Cox (again):

Russ Cox continues:

Rob Pike: - Why did Plan 9’s users give up on Plan 9?

They probably have their reasons. - Why did CIA give up on Plan 9?

Someone tried to find out:

https://www.muckrock.com/foi/united-states-of-america-10/foia-cia-plan-9-from-bell-labs-82547/ - Why did Rob give up on releasing tracks by The Residents, Wire, Lou Reed, and Debby Harry on the Plan 9 CD-ROM?

0.2.4 - 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:

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 git history) made by 9front are provided under the terms of the MIT License, reproduced in the file /lib/legal/mit, unless otherwise indicated.

Read: /lib/legal/NOTICE. - 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 - Plan 9 is a registered trademark of SouthSuite Inc.

-Plan 9 is a trademark of Lucent Technologies Inc.

+Plan 9 is a registered trademark of SouthSuite Inc.


Brantley Coile noticed the Plan 9 trademark expired and bought it on November 25, 2020. It was before the transfer of the Plan 9 copyrights to the Plan 9 Foundation (March 23, 2021). — 0intro, https://news.ycombinator.com/item?id=26946830

0.3 - Further Reading

0.3.1 - Plan 9 papers

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


0.3.2 - 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.

0.3.3 - 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.

0.3.4 - 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)

FQA INDEX | FQA 0 - Introduction To Plan 9 | FQA 1 - Introduction To 9front