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

Influence to today

  • UTF-8
  • rfork: BSD, Linux (clone)
  • /n/dump: .snapshot in Waffle (NetApp)

results matching ""

    No results matching ""