Plan 9 From Bell Labs
Take-away points
- 9P: network protocol
- everything is file
- customize namespace
Reading Notes
- 9P: a network-level protocol, enable machines to access files on remote systems.
- implement RPCs for all file “methods"
- naming system: let people and their computing agents build customized views of the resources in the network.
Design
- Terminal: home-resident workstations or PCs.
- Personalized terminal: file-oriented
- 9P protocol: a set of transactions
- control file system
- file access is at the level of bytes
Command-level View
- Each window is created in a separate name space.
File Server
- single tree hierarchy
- memory buffer, disk, WORM
- WORM is for backup.
- Access permissions of files in the dump are the same as they were when the dump was made.
- Once a file is written to WORM, it cannot be removed.
Unusual File Server
- cpu: connects the local terminal to CPU
Configuration and administration
- central servers - amortize costs and administration
- files
- administration and maintenance
- network information
- dump file system (how about the file changes? or permission changes?)
Name Spaces
In computing, a namespace is a set of symbols that are used to organize objects of various kinds, so that these objects may be referred to by name.
- file systems are namespaces that assign names to files
- programming languages organize their variables and subroutines in namespaces
- computer networks and distributed systems assign names to resources, such as computers, printers, websites, (remote) files, etc.
- 9P treats files as a sequence of bytes rather than blocks.
- fids: established pointers to objects in the remote file server.
- mount table: The kernel representation of the name space
- Each file in Plan 9 is uniquely identified by a set of integers
- type of the channel
- server or device number
- qid (analogous to the i-number): formed from two 32-bit numbers called path and version (used to maintain cache coherency between clients and servers).
File caching
- The large memory of central file server acts as a shared cache for all its clients.
Networks and Communication Devices
- Call setup and shutdown are achieved by writing text strings to the control file associated with the device.
- Information is sent and received by reading and writing the data file.
- a call is initiated by writing a connect message with a network-specific address as its argument.
- a listener to specific port indicates its willingness to receive calls to this port.
Authenication
The Data Encryption Standard (DES) was once a predominant symmetric-key algorithm for the encryption of electronic data.
- Each user has an associated DES authenication key
- Authetication is bilateral
- authentication server: maintain the database of keys
- no super user
- None: a special user (analogous to the anonymous user in FTP services)
Q: What does it mean, "9P is really the core of the system; it is fair to say that the Plan 9 kernel is primarily a 9P multiplexer"?
In electronics, a multiplexer (or mux) is a device that selects one of several analog or digital input signals and forwards the selected input into a single line.
An electronic multiplexer can be considered as a multiple-input, single-output switch, and a demultiplexer as a single-input, multiple-output switch.
Class Notes
Plan9 Mode
- node specialized for particular task
- cost-effective
Uniform abstraction
- Key Abstractions: Files + file servers + name spaces
- Plan 9 treat everything as a file
- All objects have same interface: a file
- All objects implement file operation/methods
Name Space
- Everything is visible in the file system name space
Storage Hierarchy
- WORM
- no backups
- daily snapshots
- why are daily snapshots feasible
- only changes -> incremental backup
- every month -> full backup
- why are daily snapshots feasible
Influence to today
- UTF-8
- rfork: BSD, Linux (clone)
- /n/dump: .snapshot in Waffle (NetApp)