Plan9

Specialize

Different nodes have different functions.

  • Terminals
  • CPU Server
  • File Server

Unified

  • Everything like a file (same as Unix, even more in some place, like control device is a file in Plan9)
  • Everything becomes a file server
  • 9P protocol connects all clients and servers

Local Name Space

  • Different from Unix's global name space.
  • Customize the name space, no uniform one. Every process sees a different one.
  • Name convention /dev/con -> console windown. Change what /dev/con is mapped to, to have a local or remote console.
  • Associated with process

WORM

Three levels of storage. The disk is a cache for the WORM and the memory is a cache for the disk. Every day, a dump of the file system occurs automatically, written to the WORM.

RFORK

rfork falls somewhere between processes and kernel threads. rfork create a new process, and specify what should be shared. BSD has rfork, and Unix has clone, which is similar.

Union Directory

We can have concatenation of directories.

No $PATH needed.

/bin is a union dir of every dir we can find runnable programs. It is built as a union of $cputype/bin, /rc/bin and perhaps more defined by the user.

The lookup in a union directory obeys the rule that search in turn, the first one match will be taken.

Influences

/proc is later used in Linux.

rfork exists in BSD, Linux.