Plan 9 (operating system)
Plan 9 is an operating system descended from Unix and developed by Bell Laboratories. It is not a Unix variant, but is very similar. Plan 9 explored several "simplifications" to the original Unix model that improved the experience of using and programming the system, notably in distributed multi-user environments. Plan 9 was a Bell Labs internal project for a number of years, but a public release was made in 1993, followed by a shrink-wrapped version in 1995. Bell lost commercial interest in the project in the later 1990s, and released a third version under a non-free license (but with source code available) in 2000, and finally under a new open source license in 2002. This is the 4th, and current, edition of the system.
Design concepts
Plan 9's designers were interested in similar goals as the microkernel world, but made rather different architecture and design choices to achieve them. Instead of asking the question "what do all operating systems want to do?", Plan 9 asked "what is Unix really trying to do?" The answers to these two questions are very different, and in the case of Plan 9 this included:
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
- represent everything as a file
- make no distinction between local and remote objects
Unix was the first operating system to attempt to describe the computing environment largely as a file system. However many key concepts simply didn't seem to map onto files at the time, and as new features were added they tended to exist "outside" the file system concept. By the time Plan 9 started to be developed, these distinctions no longer seemed to be as obvious.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Plan 9 extended the system beyond files to "names", that is, a unique path to any object whether it be a file, screen, user, or computer. All were handled using the existing Unix standards, but extended such that any object could be named and addressed, similar in concept to the more widely known URI system of the internet. In prior versions of Unix, devices such as printers had been represented by names using software converters in /dev, but these were local names only and somewhat artificial. Under Plan 9 these distinctions no longer existed, files were as virtualized as printers, and both could be accessed anywhere.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Another key addition in Plan 9 was the ability for users to have different names for the same "real world" objects. In effect each user could create their own customized "meta-computer" by collecting various named objects into their workspace. Unix has a similar concept in which users gain privileges by being copied from another user, but in Plan 9 this can be extended to any object. In fact the user can easily spawn another copy of themselves, modify that copy, and then kill it without affecting any of the original resources.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
A particularly interesting feature of Plan 9 was union directories, allowing directories across different media or across a network to be bound to other directories transparently. For example, another computer's /bin directory can be bound to one's own, and then this directory will hold both local binaries and the remote binaries and can use both transparently. Under Unix, mapping directories in this fashion would make the original disappear, one "covered" the other. Using the same system, under Plan 9 external devices and resources can be bound to /dev, making all devices network devices without additional code.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
To illustrate how these features worked together to produce a greater whole, consider the rather interesting /proc directory, in which all running applications were listed. Applications are named objects under Plan 9, like anything else, and therefore it made sense to list them in a directory, like anything else. This simple change has fairly useful side-effects, allowing the user to use tools such as ls to search and sort the process list, which was previously available only to specialized tools. But even more interesting, users could union remote applications into their namespace as well, interacting with them as if they were local, and making network-wide processing almost a triviality.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
The result is a distributed computing environment assembled from separate machines – terminals that sit on users' desks, file servers that store permanent data, and other servers that provide faster CPUs, user authentication, and network gateways, all using the existing hierarchical directory/name system familiar to most computer users. A user could "build" a system by collecting up directories on fileservers, applications running on servers, printers on the network and then bind them all together into their account running on a terminal.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Plan 9 is based on the best features of UNIX but was developed to demonstrate a concept, that of making communication the central function of the computing system. All system resources are named and accessed as if they were files and multiple views of the distributed system can be defined dynamically for each program running on a particular machine. This approach improves generality and modularity of application design by encouraging servers that hold any information to appear to users and to applications just like collections of ordinary files.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Key to supporting the network transparency of Plan 9 was a new low-level networking protocol known as 9P. Simply put, 9P was a system for connecting one named object to another using a file-like system. 9P can be thought of as a fast byte-oriented (as opposed to block-oriented) version of NFS, one that can talk to any object and not just an NFS server on the remote machine. The protocol is used to refer to and communicate with processes, programs, and data, including both the user interface and the network. With the release of the 4th edition, it was upgraded and renamed 9P2000.
Related Topics:
9P - Byte - NFS - 9P2000
~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ Table of Content ~
| ► | Introduction |
| ► | Background |
| ► | Design concepts |
| ► | License |
| ► | See also |
| ► | External links |
~ What's Hot ~
~ Community ~
| ► | History Forum Come and discuss about History, Civilizations, Historical Events and Figures |
| ► | History Web-Ring A community of sites, blogs and forums dedicated to History. Do not hesitate to submit your site. |
and are licensed under the GNU Free Documentation License.
Lexicon - Privacy Policy - Spiritus-Temporis.com ©2005.
