Plan 9 from Bell Labs
Encyclopedia
Plan 9 from Bell Labs is a distributed operating system
. It was developed primarily for research purposes as the successor to Unix
by the Computing Sciences Research Center at Bell Labs
between the mid-1980s and 2002. Plan 9 is most notable for representing all system interfaces, including those required for networking and the user interface, through the file system rather than specialized interfaces. Plan 9 aims to provide users with a workstation-independent working environment through the use of the 9P
protocols. Plan 9 continues to be used and developed by operating system researchers and hobbyists.
The name Plan 9 from Bell Labs is a reference to the 1959 cult science fiction
Z-movie Plan 9 from Outer Space
.
environments. Plan 9 was a Bell Labs internal project from its start during the mid 1980s. In 1992, Bell Labs provided the first public release to universities. In 1995, a commercial
second release version became available to the general public. In the late 1990s, Lucent Technologies
, having inherited Bell Labs, dropped support for commercial interests in the project. In 2000, a non-commercial third release was distributed under an open source
license. A fourth release under a new free software
license occurred in 2002.
A user and development community, including current and former Bell Labs
members and Massachusetts Institute of Technology
personnel, continues to produce minor daily releases in form of ISO image
s. Bell Labs still hosts the development. The development source tree is accessible over the 9P
and HTTP
protocols and is used to update existing installations. In addition to the official components of the OS included in the ISOs, Bell Labs also hosts a repository of externally developed applications and tools.
Several projects actively work to extend the Plan 9:
, the same group that developed original UNIX
and C
.
The Plan 9 team was originally led by Rob Pike, Ken Thompson, Dave Presotto and Phil Winterbottom with support from Dennis Ritchie
as head of the Computing Techniques Research Department. Over the years many notable developers have contributed to the project including Brian Kernighan
, Tom Duff
, Doug McIlroy, Bjarne Stroustrup
, Bruce Ellis
, Steve Simon and others. Plan 9 is engineered for modern distributed environments, designed from the start to be a networked operating system. It has graphics built-in, unlike Unix, which added these features to the design later. Plan 9 has yet to become as popular as Unix derivatives, but it has an expanding community of developers.
Plan 9 has a distributed architecture. It can be installed and used on a single self-contained system, but also has the capability to separate the functional components of the OS between separate hardware platforms. In a typical Plan 9 installation, users work at lightweight terminals running the rio GUI
and connect via the network to CPU servers that handle computation-intensive processes, with permanent data storage provided by additional hosts acting as file servers and archival storage. Currently available desktop computers can also re-create this architecture internally using multiple virtual machines.
s, but chose different architecture and design details to achieve them. Plan 9's design goals included:
The typical mode of operation for Plan 9 application is a file server, which is accessible with 9P regardless of the application's nature. Thus 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 modified and renamed 9P2000.
s (like Berkeley sockets
, X resources
or ioctl
system calls) to access the devices. Instead, Plan9 device drivers implement the control interfaces as file system hierarchies, so that the hardware functionality can be accessed by the ordinary file input/output
operations read and write.Consequently, sharing the device across the network can be accomplished regardless of driver's networking capabilities by mounting the corresponding directory tree to the target machine.
ing one directory on top of another, so that names from both directories are visible simultaniously. The name resolution is then performed from top top bottom: if the name doesn't exist in top directory, it is looked up in lower one, so the duplicate entries in lower directories are hidden.
The union direcory concept can be seen as an implementation of inheritance in object-oriented programming
: the union directory can be regarded as a child object instance of the original parent, partially modifying the functionality of the original.
Union directories can be used to simplify programming and using Plan9. Eg., the shell
executes all commands (except those starting with
Many live CD
s of Linux distributions implement a limited form of this feature — union file systems
.
first appeared in Version 8 Unix
and later ported to SVR4. Plan 9 implemented a process file system, but went further than V8. V8's process file system implemented a single file per process. Plan 9 created a hierarchy of separate files to provide those functions, and made /proc a real part of the file system. This approach was also adopted by Linux
and other modern Unix-like operating systems. Processes appear as named objects (sub-directories with info and control files) under
s Plan 9 uses Unicode
throughout the system. Though initial Unicode implementation was the ISO 10646, Ken Thompson invented UTF-8
, which became the native encoding in Plan 9. The entire system was converted to general use in 1992.
For example, to implement network address translation
(NAT) server one can simply create a union directory overlaying the router (computing)'s
(VPN) by overlaying in a union directory a
, using secured 9P over the public Internet. Union direcory with
an untrusted application or to implement a Firewall
.
The same way the distributed computing network can be composed with union directory of
Combining the above methods one can assemble a complex distributed computing environment with user terminals, file servers that store permanent data, and other servers that provide additional processors, user authentication, and network gateways
, all reusing the existing hierarchical directory/name system.
Though Plan 9 was supposed to be a further development of UNIX
concepts, the compatibility with preexisting UNIX software was never the goal for the project.
Plan 9 can support POSIX
applications and can emulate the Berkeley socket interface through the ANSI/POSIX Environment
(APE). Some Linux
binaries can be used with the help of linuxemu application; however, it is still a work in progress.
have implemented 9P
, Plan 9's file system and limited forms of rfork-like system calls. Additionally, in Plan 9 from User Space
, several of Plan 9's applications and tools, including the rc shell, have been ported to Unix and Linux systems and have achieved some level of popularity. Glendix is a project seeking to replace the GNU
operating system programs surrounding the Linux kernel with the Plan 9 operating system programs, or, alternatively, replace the Plan 9 kernel with the Linux kernel. Similar project is developed by the Gentoo project
. Port to L4
kernel is also developed. 9wm
window manager
is designed after 8½
(the older windowing system of Plan 9), and wmii
is controled via 9P
protocol.
However, Plan 9 has never approached Unix in popularity, and was primarily a research tool:
Other critics of Plan 9 include those critical of Unix in general, where Plan 9 is considered the epitome of the Worse is better
school of operating system design
. Common criticisms include the relative lack of "polish" and development in Plan 9's windowing system and Plan 9's lack of maturity as a commercial-grade body of software.
Plan 9 proponents and developers claim that the problems hindering its adoption have been solved, and its original goals as a distributed system, development environment, and research platform have been met, and that it enjoys moderate but growing popularity. Inferno
, through its hosted capabilities, has been a vehicle to bring Plan 9 technologies to other systems as hosted part of heterogeneous computing grids.
1.02, and considered to be open source
by the Open Source Initiative
(OSI) and free software
by the Free Software Foundation
(FSF). However, it is incompatible with the GNU General Public License
. It passes the Debian Free Software Guidelines
.
Distributed operating system
A distributed operating system is the logical aggregation of operating system software over a collection of independent, networked, communicating, and spatially disseminated computational nodes. Individual system nodes each hold a discrete software subset of the global aggregate operating system...
. It was developed primarily for research purposes as the successor to Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
by the Computing Sciences Research Center at Bell Labs
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...
between the mid-1980s and 2002. Plan 9 is most notable for representing all system interfaces, including those required for networking and the user interface, through the file system rather than specialized interfaces. Plan 9 aims to provide users with a workstation-independent working environment through the use of the 9P
9P
9P is a network protocol developed for the Plan 9 from Bell Labs distributed operating system as the means of connecting the components of a Plan 9 system. Files are key objects in Plan 9. They represent windows, network connections, processes, and almost anything else available in the operating...
protocols. Plan 9 continues to be used and developed by operating system researchers and hobbyists.
The name Plan 9 from Bell Labs is a reference to the 1959 cult science fiction
Science fiction
Science fiction is a genre of fiction dealing with imaginary but more or less plausible content such as future settings, futuristic science and technology, space travel, aliens, and paranormal abilities...
Z-movie Plan 9 from Outer Space
Plan 9 from Outer Space
Plan 9 from Outer Space is a 1959 science fiction film written and directed by Edward D. Wood, Jr. The film features Gregory Walcott, Mona McKinnon, Tor Johnson and Maila "Vampira" Nurmi...
.
History
Plan 9 replaced Unix at Bell Labs as the organization's primary platform for research. It explored several changes to the original Unix model that facilitate the use and programming of the system, notably in distributed multi-userMulti-user
Multi-user is a term that defines an operating system or application software that allows concurrent access by multiple users of a computer. Time-sharing systems are multi-user systems. Most batch processing systems for mainframe computers may also be considered "multi-user", to avoid leaving the...
environments. Plan 9 was a Bell Labs internal project from its start during the mid 1980s. In 1992, Bell Labs provided the first public release to universities. In 1995, a commercial
Commercial software
Commercial software, or less commonly, payware, is computer software that is produced for sale or that serves commercial purposes.Commercial software is most often proprietary software, but free software packages may also be commercial software....
second release version became available to the general public. In the late 1990s, Lucent Technologies
Lucent Technologies
Alcatel-Lucent USA, Inc., originally Lucent Technologies, Inc. is a French-owned technology company composed of what was formerly AT&T Technologies, which included Western Electric and Bell Labs...
, having inherited Bell Labs, dropped support for commercial interests in the project. In 2000, a non-commercial third release was distributed under an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
license. A fourth release under a new free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
license occurred in 2002.
A user and development community, including current and former Bell Labs
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...
members and Massachusetts Institute of Technology
Massachusetts Institute of Technology
The Massachusetts Institute of Technology is a private research university located in Cambridge, Massachusetts. MIT has five schools and one college, containing a total of 32 academic departments, with a strong emphasis on scientific and technological education and research.Founded in 1861 in...
personnel, continues to produce minor daily releases in form of ISO image
ISO image
An ISO image is an archive file of an optical disc, composed of the data contents of every written sector of an optical disc, including the optical disc file system...
s. Bell Labs still hosts the development. The development source tree is accessible over the 9P
9P
9P is a network protocol developed for the Plan 9 from Bell Labs distributed operating system as the means of connecting the components of a Plan 9 system. Files are key objects in Plan 9. They represent windows, network connections, processes, and almost anything else available in the operating...
and HTTP
Hypertext Transfer Protocol
The Hypertext Transfer Protocol is a networking protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web....
protocols and is used to update existing installations. In addition to the official components of the OS included in the ISOs, Bell Labs also hosts a repository of externally developed applications and tools.
Several projects actively work to extend the Plan 9:
- 9atom (improved Upas (e-mailE-mailElectronic mail, commonly known as email or e-mail, is a method of exchanging digital messages from an author to one or more recipients. Modern email operates across the Internet or other computer networks. Some early email systems required that the author and the recipient both be online at the...
file system), better hardware support and some additional features) - Plan 9 from The People's Front of Cat-v.org (plan9front) (goGo (programming language)Go is a compiled, garbage-collected, concurrent programming language developed by Google Inc.The initial design of Go was started in September 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. Go was officially announced in November 2009. In May 2010, Rob Pike publicly stated that Go was being...
compiler, MercurialMercurial (software)Mercurial is a cross-platform, distributed revision control tool for software developers. It is mainly implemented using the Python programming language, but includes a binary diff implementation written in C. It is supported on Windows and Unix-like systems, such as FreeBSD, Mac OS X and Linux...
support, many new userland programs and miscellaneous improvements) - Plan B (quick development of distributed environment)
- Octopus (provide a centralized environment for users; derived from Plan B)
Overview
Plan 9 from Bell Labs was originally developed by members of the Computing Science Research Center at Bell LabsBell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...
, the same group that developed original UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
and C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
.
The Plan 9 team was originally led by Rob Pike, Ken Thompson, Dave Presotto and Phil Winterbottom with support from Dennis Ritchie
Dennis Ritchie
Dennis MacAlistair Ritchie , was an American computer scientist who "helped shape the digital era." He created the C programming language and, with long-time colleague Ken Thompson, the UNIX operating system...
as head of the Computing Techniques Research Department. Over the years many notable developers have contributed to the project including Brian Kernighan
Brian Kernighan
Brian Wilson Kernighan is a Canadian computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Dennis Ritchie and contributed to the development of Unix. He is also coauthor of the AWK and AMPL programming languages. The 'K' of K&R C and the 'K' in AWK both stand for...
, Tom Duff
Tom Duff
Thomas Douglas Selkirk Duff is a computer programmer. He was born in Toronto, Ontario, Canada and grew up in Toronto and Leaside. In 1974 he graduated from the University of Waterloo with a B.Math and, two years later, got an M.Sc...
, Doug McIlroy, Bjarne Stroustrup
Bjarne Stroustrup
Bjarne Stroustrup ; born December 30, 1950 in Århus, Denmark) is a Danish computer scientist, most notable for the creation and the development of the widely used C++ programming language...
, Bruce Ellis
Bruce Ellis
Bruce Ellis was a computer scientist at Bell Labs during the 1980s and 90s. He was educated at the University of Sydney, Australia, where he earned First Class Honours with the University Medal...
, Steve Simon and others. Plan 9 is engineered for modern distributed environments, designed from the start to be a networked operating system. It has graphics built-in, unlike Unix, which added these features to the design later. Plan 9 has yet to become as popular as Unix derivatives, but it has an expanding community of developers.
Plan 9 has a distributed architecture. It can be installed and used on a single self-contained system, but also has the capability to separate the functional components of the OS between separate hardware platforms. In a typical Plan 9 installation, users work at lightweight terminals running the rio GUI
Gui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...
and connect via the network to CPU servers that handle computation-intensive processes, with permanent data storage provided by additional hosts acting as file servers and archival storage. Currently available desktop computers can also re-create this architecture internally using multiple virtual machines.
Design concepts
Plan 9's designers were interested in goals similar to those of microkernelMicrokernel
In computer science, a microkernel is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system . These mechanisms include low-level address space management, thread management, and inter-process communication...
s, but chose different architecture and design details to achieve them. Plan 9's design goals included:
- File system based devices: All resourcesResource (computer science)A resource, or system resource, is any physical or virtual component of limited availability within a computer system. Every device connected to a computer system is a resource. Every internal system component is a resource...
are represented by nodes in the hierarchical file systemHierarchical File SystemHierarchical File System is a file system developed by Apple Inc. for use in computer systems running Mac OS. Originally designed for use on floppy and hard disks, it can also be found on read-only media such as CD-ROMs...
. - Namespaces: The application view of the network is a single, coherent namespaceNamespace (computer science)A namespace is an abstract container or environment created to hold a logical grouping of unique identifiers or symbols . An identifier defined in a namespace is associated only with that namespace. The same identifier can be independently defined in multiple namespaces...
that appears as a hierarchical file system but may represent local or remote physically separated resources. The namespace of each process can be constructed independently, and the user may work simultaneously with applications with heterogeneous namespaces. - Standard communication protocol: a standard protocol, called 9P9P9P is a network protocol developed for the Plan 9 from Bell Labs distributed operating system as the means of connecting the components of a Plan 9 system. Files are key objects in Plan 9. They represent windows, network connections, processes, and almost anything else available in the operating...
, is used to access all resources, both local and remote.
9P protocol
To reduce the number of custom APIs and system calls, Plan 9 makes heavy use of universal 9P protocol. 9p is generic medium-agnostic byte-oriented protocol that allows delivering messages between server and client.The typical mode of operation for Plan 9 application is a file server, which is accessible with 9P regardless of the application's nature. Thus 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 modified and renamed 9P2000.
Unified input/output model
Unlike most other operating systems Plan9 doesn't provided special application programming interfaceApplication programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
s (like Berkeley sockets
Berkeley sockets
The Berkeley sockets application programming interface comprises a library for developing applications in the C programming language that perform inter-process communication, most commonly for communications across a computer network....
, X resources
X resources
In the X Window System, the X resources are parameters of computer programs such as the name of the font used in the buttons, the background color of menus, etc. They are used in conjunction with or as an alternative to command line parameters and configuration files.- Format :At the X protocol...
or ioctl
Ioctl
In computing, ioctl, short for input/output control, is a system call for device-specific operations and other operations which cannot be expressed by regular system calls. It takes a parameter specifying a request code; the effect of a call depends completely on the request code. Request codes are...
system calls) to access the devices. Instead, Plan9 device drivers implement the control interfaces as file system hierarchies, so that the hardware functionality can be accessed by the ordinary file input/output
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...
operations read and write.Consequently, sharing the device across the network can be accomplished regardless of driver's networking capabilities by mounting the corresponding directory tree to the target machine.
Union directories
Plan9 allows the user to collect the files (names) from different directory trees in a single location. This is done by mountMount (computing)
Mounting takes place before a computer can use any kind of storage device . The user or their operating system must make it accessible through the computer's file system. A user can access only files on mounted media.- Mount point :A mount point is a physical location in the partition used as a...
ing one directory on top of another, so that names from both directories are visible simultaniously. The name resolution is then performed from top top bottom: if the name doesn't exist in top directory, it is looked up in lower one, so the duplicate entries in lower directories are hidden.
The union direcory concept can be seen as an implementation of inheritance in object-oriented programming
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
: the union directory can be regarded as a child object instance of the original parent, partially modifying the functionality of the original.
Union directories can be used to simplify programming and using Plan9. Eg., the shell
Shell (computing)
A shell is a piece of software that provides an interface for users of an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web...
executes all commands (except those starting with
/
) only from /bin
, instead of having to search a PATHPath (variable)PATH is an environment variable on Unix-like operating systems, DOS, OS/2, and Microsoft Windows, specifying a set of directories where executable programs are located...
list as in other operating systems.Many live CD
Live CD
A live CD, live DVD, or live disc is a CD or DVD containing a bootable computer operating system. Live CDs are unique in that they have the ability to run a complete, modern operating system on a computer lacking mutable secondary storage, such as a hard disk drive...
s of Linux distributions implement a limited form of this feature — union file systems
Union mount
A union mount is a mount that allows several filesystems to be mounted at one time, appearing to be one filesystem.Rather than mounting each filesystem at a different place in the directory hierarchy, a union mount overlays the filesystems, creating a unified hierarchy...
.
/proc
The/proc
directory, which contains entries for all running processes, illustrates how these features work together to produce a greater whole. This special file systemFile system
A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...
first appeared in Version 8 Unix
Version 8 Unix
Eighth Edition Unix, also known as Version 8 Unix or V8, was a version of the Research Unix operating system developed and used internally at Bell Labs and a select number of universities. It was "released" in February 1985, ran on VAX hardware, and was a variant of 4.1cBSD with some System V.1 ...
and later ported to SVR4. Plan 9 implemented a process file system, but went further than V8. V8's process file system implemented a single file per process. Plan 9 created a hierarchy of separate files to provide those functions, and made /proc a real part of the file system. This approach was also adopted by Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
and other modern Unix-like operating systems. Processes appear as named objects (sub-directories with info and control files) under
/proc
, and ordinary I/O is used to interrogate and control them. The user does not have to use specialized system calls to interact with processes; rather, he can use common tools such as lsLsIn computing, ls is a command to list files in Unix and Unix-like operating systems. ls is specified by POSIX and the Single UNIX Specification.- History :An ls utility appeared in the original version of AT&T UNIX...
. Other system resources are similarly integrated into the hierarchical namespace./net
Plan 9 does not have system calls for the multitude of communication protocols or device driver interfaces; instead the/net
file server is used as the API for all TCP/IP. This allows to write data to control files to write and read connections (even with scripts or shell tools). Relevant sub-directories like /net/tcp
and /net/udp
are used to interface to respective protocols.Unicode
To reduce the complexity of managing character encodingCharacter encoding
A character encoding system consists of a code that pairs each character from a given repertoire with something else, such as a sequence of natural numbers, octets or electrical pulses, in order to facilitate the transmission of data through telecommunication networks or storage of text in...
s Plan 9 uses Unicode
Unicode
Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...
throughout the system. Though initial Unicode implementation was the ISO 10646, Ken Thompson invented UTF-8
UTF-8
UTF-8 is a multibyte character encoding for Unicode. Like UTF-16 and UTF-32, UTF-8 can represent every character in the Unicode character set. Unlike them, it is backward-compatible with ASCII and avoids the complications of endianness and byte order marks...
, which became the native encoding in Plan 9. The entire system was converted to general use in 1992.
Combining the design concepts
Though interesting on their own, the design concepts of Plan 9 are most useful when used in combination.For example, to implement network address translation
Network address translation
In computer networking, network address translation is the process of modifying IP address information in IP packet headers while in transit across a traffic routing device....
(NAT) server one can simply create a union directory overlaying the router (computing)'s
/net
directory tree with its own /net
. Similarly one can implement a virtual private networkVirtual private network
A virtual private network is a network that uses primarily public telecommunication infrastructure, such as the Internet, to provide remote offices or traveling users access to a central organizational network....
(VPN) by overlaying in a union directory a
/net
hierarchy from a remote gateway (telecommunications)Gateway (telecommunications)
In telecommunications, the term gateway has the following meaning:*In a communications network, a network node equipped for interfacing with another network that uses different protocols....
, using secured 9P over the public Internet. Union direcory with
/net
hierarchy and filters can be used to sandboxSandbox (computer security)
In computer security, a sandbox is a security mechanism for separating running programs. It is often used to execute untested code, or untrusted programs from unverified third-parties, suppliers, untrusted users and untrusted websites....
an untrusted application or to implement a Firewall
Firewall (computing)
A firewall is a device or set of devices designed to permit or deny network transmissions based upon a set of rules and is frequently used to protect networks from unauthorized access while permitting legitimate communications to pass....
.
The same way the distributed computing network can be composed with union directory of
/proc
hierarchies from remote hosts, which allows interacting with them as if they are local.Combining the above methods one can assemble a complex distributed computing environment with user terminals, file servers that store permanent data, and other servers that provide additional processors, user authentication, and network gateways
Gateway (telecommunications)
In telecommunications, the term gateway has the following meaning:*In a communications network, a network node equipped for interfacing with another network that uses different protocols....
, all reusing the existing hierarchical directory/name system.
Standard Plan 9 utilities
- rc - the Plan 9 shell
- samSam (text editor)Sam is a multi-file text editor based on structural regular expressions. It was originally designed in the early 1980s at Bell Labs by Rob Pike with the help of Ken Thompson and other Unix developers for the Blit windowing terminal running on Unix; it was later ported to other systems. Sam...
- a text editor - acmeAcme (text editor)Acme is a text editor and graphical shell from the Plan 9 from Bell Labs operating system, designed and implemented by Rob Pike. It can use the sam command language. The design of the interface was influenced by Oberon. It is different from other editing environments in that it acts as a 9P server...
- a user interface for programmers - plumber - interprocess messaging
- mk - a tool for building software, analogous to the traditional Unix make utility
- rio - the new Plan 9 windowing system
- FossilFossil (file system)Fossil is the default file system in Plan 9 from Bell Labs. It serves the network protocol 9P and runs as a user space daemon, like most Plan 9 file servers. Fossil is different from most other file systems due to its snapshot/archival feature. It can take snapshots of the entire file system on...
and VentiVentiVenti is a network storage system that permanently stores data blocks. A 160-bit SHA-1 hash of the data acts as the address of the data...
- the archival file system and permanent data store
UNIX compatibility
Many command line utilities of Plan 9 have aliases to the names of their UNIX counterparts.Though Plan 9 was supposed to be a further development of UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
concepts, the compatibility with preexisting UNIX software was never the goal for the project.
Plan 9 can support POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
applications and can emulate the Berkeley socket interface through the ANSI/POSIX Environment
ANSI/POSIX Environment
The ANSI/POSIX Environment is a compatibility subsystem for the Plan 9 operating system, that implements an interface close to ANSI C and POSIX, with some common extensions...
(APE). Some Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
binaries can be used with the help of linuxemu application; however, it is still a work in progress.
Impact
Plan 9 demonstrated that a central concept of Unix – that every system interface could be represented as sets of files – could be successfully implemented in a modern distributed system. Some features from Plan 9, like the UTF-8 character encoding of Unicode, have been implemented in other operating systems. Unix-like operating systems such as LinuxLinux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
have implemented 9P
9P
9P is a network protocol developed for the Plan 9 from Bell Labs distributed operating system as the means of connecting the components of a Plan 9 system. Files are key objects in Plan 9. They represent windows, network connections, processes, and almost anything else available in the operating...
, Plan 9's file system and limited forms of rfork-like system calls. Additionally, in Plan 9 from User Space
Plan 9 from User Space
Plan 9 from User Space is a port of many Plan 9 from Bell Labs libraries and applications to Unix-like operating systems...
, several of Plan 9's applications and tools, including the rc shell, have been ported to Unix and Linux systems and have achieved some level of popularity. Glendix is a project seeking to replace the GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
operating system programs surrounding the Linux kernel with the Plan 9 operating system programs, or, alternatively, replace the Plan 9 kernel with the Linux kernel. Similar project is developed by the Gentoo project
Gentoo Linux
Gentoo Linux is a computer operating system built on top of the Linux kernel and based on the Portage package management system. It is distributed as free and open source software. Unlike a conventional software distribution, the user compiles the source code locally according to their chosen...
. Port to L4
L4
L4 or L-4 may refer to :Transportation* SP&S Class L-4, an 1884 steam locomotives class* USS L-4 , a 1915 United States Navy L-class submarine* HMS L4, a 1918 British L class submarine* Lawson L-4, a 1924 American unflown biplane airliner...
kernel is also developed. 9wm
9wm
9wm is an Open Source stacking window manager for X11, written by David Hogan in 1994 to emulate the Plan 9 SecondEdition window manager, 8½...
window manager
X window manager
An X window manager is a window manager which runs on top of the X Window System, a windowing system mainly used on Unix-like systems.Unlike the Mac OS and Microsoft Windows platforms which have historically provided a vendor-controlled, fixed set of ways to control how windows and panes display...
is designed after 8½
8½
8½ is a 1963 Italian fantasy film directed by Federico Fellini. Co-scripted by Fellini, Tullio Pinelli, Ennio Flaiano, and Brunello Rondi, it stars Marcello Mastroianni as Guido Anselmi, a famous Italian film director...
(the older windowing system of Plan 9), and wmii
Wmii
wmii is a tiling window manager for X11. It supports classic and tiling window management with extended keyboard, mouse, and filesystem based remote control...
is controled via 9P
9P
9P is a network protocol developed for the Plan 9 from Bell Labs distributed operating system as the means of connecting the components of a Plan 9 system. Files are key objects in Plan 9. They represent windows, network connections, processes, and almost anything else available in the operating...
protocol.
However, Plan 9 has never approached Unix in popularity, and was primarily a research tool:
Other critics of Plan 9 include those critical of Unix in general, where Plan 9 is considered the epitome of the Worse is better
Worse is better
Worse is better, also called the New Jersey style, was conceived by Richard P. Gabriel to describe the dynamics of software acceptance, but it has broader application. The idea is that quality does not necessarily increase with functionality. There is a point where less functionality is a...
school of operating system design
Unix philosophy
The Unix philosophy is a set of cultural norms and philosophical approaches to developing software based on the experience of leading developers of the Unix operating system.-McIlroy: A Quarter Century of Unix:...
. Common criticisms include the relative lack of "polish" and development in Plan 9's windowing system and Plan 9's lack of maturity as a commercial-grade body of software.
Plan 9 proponents and developers claim that the problems hindering its adoption have been solved, and its original goals as a distributed system, development environment, and research platform have been met, and that it enjoys moderate but growing popularity. Inferno
Inferno (operating system)
Inferno is a distributed operating system started at Bell Labs, but is now developed and maintained by Vita Nuova Holdings as free software. Inferno was based on the experience gained with Plan 9 from Bell Labs, and the further research of Bell Labs into operating systems, languages, on-the-fly...
, through its hosted capabilities, has been a vehicle to bring Plan 9 technologies to other systems as hosted part of heterogeneous computing grids.
License
The full source code is freely available under Lucent Public LicenseLucent Public License
The Lucent Public License is an open-source license created by Lucent Technologies. It has been released in two versions: Version 1.0 and 1.02....
1.02, and considered to be open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
by the Open Source Initiative
Open Source Initiative
The Open Source Initiative is an organization dedicated to promoting open source software.The organization was founded in February 1998, by Bruce Perens and Eric S. Raymond, prompted by Netscape Communications Corporation publishing the source code for its flagship Netscape Communicator product...
(OSI) and free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
by the Free Software Foundation
Free Software Foundation
The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software...
(FSF). However, it is incompatible with the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
. It passes the Debian Free Software Guidelines
Debian Free Software Guidelines
The Debian Free Software Guidelines is a set of guidelines that the Debian Project uses to determine whether a software license is a free software license, which in turn is used to determine whether a piece of software can be included in Debian...
.
See also
- Inferno (operating system)Inferno (operating system)Inferno is a distributed operating system started at Bell Labs, but is now developed and maintained by Vita Nuova Holdings as free software. Inferno was based on the experience gained with Plan 9 from Bell Labs, and the further research of Bell Labs into operating systems, languages, on-the-fly...
- Styx (protocol)
- Alef (programming language)Alef (programming language)The Alef programming language was designed as part of the Plan 9 operating system by Phil Winterbottom of Bell Labs.In a February 2000 slideshow, Rob Pike noted: "…although Alef was a fruitful language, it proved too difficult to maintain a variant language across multiple architectures, so we took...
- Rendezvous (Plan 9)Rendezvous (Plan 9)Rendezvous is a data synchronization mechanism in Plan 9 from Bell Labs. It is a system call that allows two processes to exchange a single datum while synchronizing....
External links
- Plan 9 homepage
- Slides - Video from FOSDEM 2006FOSDEMFOSDEM is a non-commercial volunteer organized European event centered around free and open source software development. It is aimed at developers and anyone interested in the free and open source software movement...
- Plan 9 is not dead at FAST-OS 2005
- 9fans, the Plan 9 mailing listMailing listA mailing list is a collection of names and addresses used by an individual or an organization to send material to multiple recipients. The term is often extended to include the people subscribed to such a list, so the group of subscribers is referred to as "the mailing list", or simply "the...
hosted by http://9fans.net - Ninetimes Plan 9, Inferno, Unix, and Bell Labs operating systems news
- [irc://irc.freenode.net/plan9 #plan9], the Plan 9 IRC channel hosted by freenodeFreenodefreenode, formerly known as Open Projects Network, is an IRC network used to discuss peer-directed projects. Their servers are all accessible from the domain name [irc://chat.freenode.net chat.freenode.net], which load balances connections by using the actual servers in rotation...
- "Plan 9: The Way the Future Was" from The Art of Unix ProgrammingThe Art of Unix ProgrammingThe Art of Unix Programming by Eric S. Raymond is a book about the history and culture of Unix programming from its earliest days in 1969 to 2003 when it was published, covering both genetic derivations such as BSD and conceptual ones such as Linux....
by Eric S. RaymondEric S. RaymondEric Steven Raymond , often referred to as ESR, is an American computer programmer, author and open source software advocate. After the 1997 publication of The Cathedral and the Bazaar, Raymond was for a number of years frequently quoted as an unofficial spokesman for the open source movement... - Reinventing UNIX: An introduction to the Plan 9 operating system, by Hancock, B., Giarlo, M.J., & Triggs, J. A., published in Library Hi Tech, 21(4), 471-476.
- Introduction to OS abstractions using Plan 9 from Bell Labs, by Francisco J Ballesteros
- Das Netzbetriebssystem Plan 9., 1999, ISBN 3-446-18881-9 by Hans-Peter Bischof, Gunter Imeyer, Bernhard Wellhöfer (born as Kühl), Axel-Tobias Schreiner. The book is out of print, but available for free at the print-on-demand service provider Lulu.comLulu.comLulu is a company offering publishing, printing, and distribution services with headquarters in Raleigh, North Carolina. Since their founding in 2002, Lulu has published over 1.1 million titles by creators in over 200 countries and territories and adds 20,000 new titles to their catalogue a month...
.