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 evolve some of the same ideas that informed UNIX 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:

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.

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 command translation, UNIX Style, or cat -v Considered Harmful

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

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

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, 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/

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 testmony by long time Plan 9 users Charles Forstyh, Anthony Sorace and Geoff Collyer:

http://www.plan9.bell-labs.com/wiki/plan9/what_do_people_like_about_plan_9/

0.2.1.1 - What do you use Plan 9 for?

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: BUD/S

0.2.2.1 - 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

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:

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.

0.2.4.1 - 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

0.2.4.2 - 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

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

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

Read: /lib/legal/NOTICE.

0.3 - Further Reading

0.3.1 - Plan 9 papers

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

http://doc.cat-v.org/plan_9/

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: http://plan9.bell-labs.com/plan9

Bell Labs Plan 9 wiki: http://www.plan9.bell-labs.com/wiki/plan9/plan_9_wiki

Much 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 Ballestros (nemo)

Notes on the Plan 9 3rd Edition Kernel, by Francisco J Ballestros (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, in book form)


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