Plan 9 — The Documents (Volume 2)

Introduction

Plan 9 From Bell Labs (html | ps | pdf)

Rob Pike, Dave Presotto, Sean Dorward, Bob Flandrena, Ken Thompson, Howard Trickey, and Phil Winterbottom

An overview of the system; read at least this paper before you install.

The Use of Name Spaces in Plan 9 (html | ps | pdf)

Rob Pike, Dave Presotto, Ken Thompson, Howard Trickey, and Phil Winterbottom

What’s in a name?

The Organization of Networks in Plan 9 (html | ps | pdf)

Dave Presotto and Phil Winterbottom

Connecting the pieces. The details in the paper are outdated but the ideas still apply.

Security in Plan 9 (html | ps | pdf)

Russ Cox, Eric Grosse, Rob Pike, Dave Presotto, and Sean Quinlan

An overview of the security architecture.

Programming

How to Use the Plan 9 C Compiler (html | ps | pdf)

Rob Pike

The starting point for C programming under Plan 9.

Changes to the Programming Environment in the Fourth Release of Plan 9 (html | ps | pdf)

Rob Pike

An overview of the changes to the C library since the Third Release.

APE — The ANSI/POSIX Environment (html | ps | pdf)

Howard Trickey

Moving C code between UNIX and Plan 9.

Acid: A Debugger Built From A Language (html | ps | pdf)

Phil Winterbottom

An overview paper about the Acid debugger.

Acid Manual (html | ps | pdf)

Phil Winterbottom

The reference manual for the language and its libraries.

Maintaining Files on Plan 9 with Mk (html | ps | pdf)

Andrew G. Hume and Bob Flandrena

An introduction to Plan 9’s replacement for make .

Plan 9 Mkfiles (html | ps | pdf)

Bob Flandrena

The conventions for using mk in Plan 9.

A Manual for the Plan 9 assembler (html | ps | pdf)

Rob Pike

Things you’d rather not know.

User Interfaces

8½, the Plan 9 Window System (html | ps | pdf)

Rob Pike

An introduction to the (previous) window system and its unusual implementation.

Rc — The Plan 9 Shell (html | ps | pdf)

Tom Duff

An introduction to the new shell, complete with examples.

The Text Editor sam (html | ps | pdf)

Rob Pike

Sam is the standard editor on Plan 9.

Acme: A User Interface for Programmers (html | ps | pdf)

Rob Pike

A system with a more radical approach to programming and editing.

Plumbing and Other Utilities (html | ps | pdf)

Rob Pike

Inter-process communication that enlivens the interactive user interface.

Implementation

Hello World, or Καλημέρα κόσμε, or こんにちは 世界 (html | ps | pdf)

Rob Pike and Ken Thompson

The details about Plan 9’s character set: the Unicode Standard plus an ASCII-compatible encoding.

Plan 9 C Compilers (html | ps | pdf)

Ken Thompson

The design and some internals of the compiler suite.

Adding Application Support for a New Architecture in Plan 9 (html | ps | pdf)

Bob Flandrena

The procedures necessary to add a new instruction set to Plan 9’s programming environment.

The Plan 9 File Server (html | ps | pdf)

Ken Thompson

The design of the central file server and its novel backup system.

Venti: A new approach to archival storage (html | ps | pdf)

Sean Quinlan and Sean Dorward

Archival block-level storage using secure hashes as block identifiers.

The IL protocol (html | ps | pdf)

Dave Presotto and Phil Winterbottom

A description of the Internet protocol Plan 9 uses for internal communication.

Lexical File Names in Plan 9, or, Getting Dot-Dot Right (html | ps | pdf)

Rob Pike

A vexing old problem solved: how to make pwd get the right answer in the face of multiply-bound directories.

Process Sleep and Wakeup on a Shared-memory Multiprocessor (html | ps | pdf)

Rob Pike, Dave Presotto, Ken Thompson, and Gerard Holzmann

A detailed study of a central issue in the Plan 9 kernel.

Miscellany

A Guide to the Lp Printer Spooler (html | ps | pdf)

Paul Glick

Adminstering the suite of tools to drive PostScript printers.

Troff User’s Manual (ps | pdf)

Joseph F. Ossanna and Brian W. Kernighan

The old warhorse, updated for Unicode characters.

Using SPIN (html | ps | pdf)

Gerard Holzmann

An introduction to a tool for analyzing parallel and distributed programs.

Installation

The Various Ports (html | ps | pdf)

The hardware requirements for the Plan 9 compilers and kernels.