All Topics  
Plan 9 from Bell Labs

 
Plan 9 From Bell Labs

   Email Print
   Bookmark   Link






 

Plan 9 from Bell Labs



 
 
Plan 9 from Bell Labs is a distributed operating system, primarily used for research. It was developed as the research successor to Unix
Unix

Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
 by the Computing Sciences Research Center at Bell Labs
Bell Labs

Bell Laboratories is the research organization of Alcatel-Lucent and previously of the American Telephone & Telegraph Company .Bell Laboratories has had its headquarters at Berkeley Heights, New Jersey, and it has research and development facilities throughout the world....
 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 filesystem rather than specialized interfaces.






Discussion
Ask a question about 'Plan 9 from Bell Labs'
Start a new discussion about 'Plan 9 from Bell Labs'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Plan 9 from Bell Labs is a distributed operating system, primarily used for research. It was developed as the research successor to Unix
Unix

Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
 by the Computing Sciences Research Center at Bell Labs
Bell Labs

Bell Laboratories is the research organization of Alcatel-Lucent and previously of the American Telephone & Telegraph Company .Bell Laboratories has had its headquarters at Berkeley Heights, New Jersey, and it has research and development facilities throughout the world....
 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 filesystem 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 systemas the means of connecting the components of a Plan 9 system....
 protocols. Plan 9 continues to be used and developed in some circles as a research operating system and by hobbyists.

The name "Plan 9 from Bell Labs" is a reference to the 1959 cult science fiction
Science fiction

Science fiction is a broad genre of fiction that often involves speculations based on current or future science or technology. Science fiction is found in books, art, television, films, games, theatre, and other media....
 B-movie
B-movie

A B movie is a low-budget commercial film conceived neither as an art film nor as pornography. In its original usage, during the so-called Cinema of the United States#Golden Age of Hollywood, the term more precisely identified a film intended for distribution as the less-publicized, bottom half of a double feature....
 Plan 9 from Outer Space
Plan 9 from Outer Space

Plan 9 from Outer Space is a 1959 in film science fiction/horror film written, produced, and directed by Edward D. Wood, Jr. The film features Gregory Walcott, Mona McKinnon, Tor Johnson and Maila Nurmi....
.

History

Plan 9 replaced Unix at Bell Labs as the organization's primary platform for research and explores several changes to the original Unix model that facilitate the use and programming of the system, notably in distributed multi-user
Multi-user

Multi-user is a term that defines an operating system or application software that allows concurrent access by multiple User s of a computer. Time-sharing systems are multi-user systems....
 environments. Plan 9 was a Bell Labs internal project from its start during the mid 1980s. In 1992, the first public release was made available to universities. In 1995, a commercial second release version was made available to the general public. In the late 1990s, Lucent Technologies
Lucent Technologies

Lucent Technologies was a technology company composed of what was formerly AT&T Technologies, which included Western Electric and Bell Labs. It was spun off from AT&T on September 30, 1996....
, who had inherited Bell Labs, dropped commercial interest in the project. In 2000, a non-commercial third release was made under an open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 license. In 2002, a non-commercial fourth release was made under a new free software
Free software

Free Software or software libre 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 minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 license.

A user and development community, including current and former Bell Labs
Bell Labs

Bell Laboratories is the research organization of Alcatel-Lucent and previously of the American Telephone & Telegraph Company .Bell Laboratories has had its headquarters at Berkeley Heights, New Jersey, and it has research and development facilities throughout the world....
 and MIT
Massachusetts Institute of Technology

The Massachusetts Institute of Technology is a private university research university located in Cambridge, Massachusetts, Massachusetts, United States....
 members, continues to produce daily minor releases as ISO image
ISO image

An ISO image is an archive file of an optical disc in a format defined by the International Organization for Standardization . This format is supported by many software vendors....
s. Bell Labs still hosts 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 systemas the means of connecting the components of a Plan 9 system....
 and HTTP
Hypertext Transfer Protocol

Hypertext Transfer Protocol is an application-level protocol for distributed, collaborative, hypermedia information systems. Its use for retrieving inter-linked resources led to the establishment of the World Wide Web....
 protocols and is used to keep an installation up to date. 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.

Overview

Plan 9 from Bell Labs was developed by members of the Computing Science Research Center at Bell Labs
Bell Labs

Bell Laboratories is the research organization of Alcatel-Lucent and previously of the American Telephone & Telegraph Company .Bell Laboratories has had its headquarters at Berkeley Heights, New Jersey, and it has research and development facilities throughout the world....
, the same group that developed UNIX
Unix

Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
 and C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
. The Plan 9 team was originally led by Rob Pike
Rob Pike

Robert C. Pike is a software engineer and author. He is best known for his work at Bell Labs, where he was a member of the Unix team and was involved in the creation of the Plan 9 from Bell Labs and Inferno operating systems, as well as the Limbo programming language....
, Ken Thompson, Dave Presotto and Phil Winterbottom with support from Dennis Ritchie
Dennis Ritchie

Dennis MacAlistair Ritchie is an American computer science notable for his influence on C and other programming languages, and on operating systems such as Multics and Unix....
 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 computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Dennis Ritchie and contributed greatly to Unix and its school of thought....
, 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, Ontario. 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 is a computer scientist at the College of Engineering Chair Professor of Computer Science at Texas A&M University. He is most notable for developing the 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....
 and others.

All resources as files

Before Unix, most operating systems had different mechanisms for accessing different types of devices. For example, the application programming interface
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
 (API) to access a disk drive was vastly different from the API used to send and receive data from a serial port, which in turn was different from the API used to send data to a printer
Computer printer

File:Lexmark X5100 Series.jpgIn computing, a printer is a peripheral which produces a hard copy of documents stored in computer file form, usually on physical print media such as paper or Transparency ....
.

Unix attempted to remove these distinctions, and model all 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....
 as file operations. All device drivers were required to support meaningful read and write operations as a means of control. This lets programmers use utilities like mv
MV

MV can stand for:...
 and cp
Cp (Unix)

cp is the command entered in a Unix shell to copy a computer file from one place to another, possibly on a different filesystem. The original file remains unchanged, and the new file may have the same or a different name....
 to send data from one device to another without being aware of the underlying implementation details. However, at the time, many key concepts (such as the control of process state) did not seem to map neatly onto files. As new features like Berkeley sockets and the X Window System
X Window System

The X Window System is a computing software system and network protocol that provides a graphical user interface for networked computers. It implements the X Window System protocols and architecture and provides windowing system on raster graphics Visual display units and manages Keyboard and pointing device control functions....
 were added, they were incorporated to exist outside the file system. New hardware features (such as the ability to eject a CD in software) also encouraged the use of hardware-specific control mechanisms like the ioctl
Ioctl

In computing, an ioctl is part of the userspace-to-kernel interface of a conventional operating system. Short for "Input/output control", ioctls are typically employed to allow userspace code to communicate with hardware devices or kernel components....
 system call.

The Plan 9 research project rejected these different approaches and returns to the file-centric view of the system. Each Plan 9 program views all available resources, including networking and the user-interface resources (like the window it is running in), as part of a hierarchical file system, rather than specialized interfaces.

Distributed architecture

Plan 9 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 prototypical Plan 9 installation, users work at lightweight terminals running the Rio GUI
Gui

Gui or guee is a generic term to refer to grillinged 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....
 and connect via the network to CPU servers that handle computation-intensive processes, with permanent data storage provided by additional machines 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 microkernel
Microkernel

In computer science, a microkernel is a computer kernel which provides the mechanisms needed to implement an operating system, such as low-level address space management, thread management, and inter-process communication....
s, but made different architecture and design choices to achieve them. Plan 9's design goals included:
  • Resources as files: all resources
    Resource (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....
     are represented as files within a hierarchical file system
    File system

    In computing, a file system is a method for store and organize computer files and the data they contain to make it easy to find and access them....
  • Namespaces: the application view of the network is a single, coherent namespace
    Namespace (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 with that namespace....
     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 heterogenous namespaces
  • Standard communication protocol: a standard protocol, called 9P
    9P

    9P , is a network protocol developed for the Plan 9 from Bell Labs distributed operating systemas the means of connecting the components of a Plan 9 system....
    , is used to access all resources, both local and remote


Filesystems, files, and names

Plan 9 extended the system beyond files to "names", that is, a unique path to any object whether it be a file
Computer file

A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable computer storage....
, screen, user
User

:For information on Wikipedia user accounts, see...
, or computer
Computer

A computer is a machine that manipulates Data according to a list of Code .The first devices that resemble modern computers date to the mid-20th century , although the computer concept and various machines similar to computers existed earlier....
. All are handled using the existing Unix standards, but extended such that any object can be named and addressed (similar in concept to the more widely known URI
Uniform Resource Identifier

In Information technology, a Uniform Resource Identifier is a Character string of Character s used to Identifier or name a Resource on the Internet....
 system of the world wide web
World Wide Web

The World Wide Web is a very large set of interlinked hypertext documents accessed via the Internet. With a Web browser, one can view Web pages that may contain writing, s, videos, and other multimedia and navigate between them using hyperlinks....
). In Unix, devices such as printers
Computer printer

File:Lexmark X5100 Series.jpgIn computing, a printer is a peripheral which produces a hard copy of documents stored in computer file form, usually on physical print media such as paper or Transparency ....
 are represented by names using software converters in /dev, but these addressed only devices attached by hardware, and did not address networked devices. Under Plan 9 printers are virtualized
Virtualization

In computing, platform virtualization is a virtualization of computers or operating systems. It hides the physical characteristics of computing platform from the users, instead showing another abstract, emulated computing platform....
 as files, and both can be accessed over the network from any workstation.

Another Plan 9 innovation was the ability for users to have different names for the same "real world" objects. Each user could create a personalized environment by collecting various objects into their namespace. Unix has a similar concept in which users gain privileges by being copied from another user, but Plan 9 extends this to all objects. Users can easily spawn "clones" of themselves, modify them, and then remove them without affecting the resources from which they were created.

Union directories

Unix allows filesystems to be built up from disparate resources using concepts such as links and filesystem mounts. These commands make the original directory disappear; if one mounts a new filesystem on the directory named "net", one can no longer access its previous contents.

Plan 9 introduced the idea of union directories, directories that combine resources across different media or across a network, binding transparently to other directories. For example, another computer's /bin (applications) directory can be bound to one's own, and then this directory will hold both local and remote applications and the user can access both transparently. Using the same system, under Plan 9 external devices and resources can be bound to /dev, allowing any device to be shared over the network without any additional code.

Today, many live CD
Live CD

A live CD or live DVD is a CD or DVD containing a booting computer operating system. Live CDs are unique in that they have the ability to run a complete, modern operating system on a computer lacking Computer_storage , such as a hard disk drive....
s for Linux distributions implement a limited form of this feature as union mount
Union mount

A union mount is a Mount that allows several filesystem to be mounted at one time, appearing to be one filesystem.Generally one of the filesystems will be mounted read-write, while other filesystems are mounted read-only....
ing.

/proc

The /proc directory, in which all running processes are listed, illustrates how these features work together to produce a greater whole. This special Plan 9 "file system" has also been adopted by Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
 and other later operating systems. Processes appear as named objects (sub-directories with info and control files) under /proc, along with other kernel resources, giving the user a dynamic I/O channel to send commands to them and read data from them. The user does not have to use a limited set and form of system calls to interact with the kernel from compiled programs; rather, he or she can use tools such as ls
Ls

In 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....
and cat
Cat (Unix)

The cat command is a standard Unix program used to Concatenation and display files. The name is from :wikt:catenate, a synonym of concatenate....
to search, query and manipulate processes.

Users can also mount /proc directories (and any other special file systems) from any other machines into their namespace as well, interacting with them as if they are local. 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
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 using the existing hierarchical directory/name system familiar to most computer users. A user can "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 personal namespace running on a terminal.

/net

Plan 9 does not have system calls for the multitude of communication protocols or device driver interfaces. For example /net is the API for all TCP/IP, and it can be used even with scripts or shell tools, writing data to control files to write and read connections. Relevant sub-directories like /net/tcp and /net/udp are used to interface to respective protocols. You can implement a NAT by mounting a /net from a perimeter machine with a public IP, while connecting to it from an internal network of private IP addresses, using the Plan 9 protocol 9P in the internal network. Or you can implement a VPN by mounting a /net directory from a remote gateway, using secured 9P over the public Internet.

Here would be an example of using union (a stack) directories in /net: just like inheritance in OOP, you can take one (possibly remote) /special directory and bind another local special directory on top of that, adding some new control files and hiding others. The union directory now is like a child object instance of the original parent. The functionality of the original can be partially modified. Consider the /net file system. If you modify or hide its /net/udp sub-directory you may control or extend the UDP interface with local filter processes, still leaving the original /net/tcp running intact, perhaps in a remote machine. Note that name space is per process: if you give an untrusted application a limited, modified /net union directory, you restrict its access to the net.

All this makes it easy to combine "objects" or file systems written in different languages on different systems, while using standard naming, access control and security of the file system, largely transparently to the programmer.

This is similar to the facility offered by the mount_portal command in BSD which by convention is mounted on /p instead of /net with only /tcp available.

Networking and distributed computing

Plan 9 is based on UNIX but was developed to demonstrate the concept 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
Network transparency

Network Transparency in its most general sense refers to the ability of a protocol to transmit data over the network in a manner which is Transparency_%28computing%29 to those using the applications that are using the protocol....
 of Plan 9 was a new low-level networking protocol known as 9P. The 9P protocol and its implementation connected named network objects and presented a file-like system interface. 9P is a fast byte-oriented (rather than block-oriented) distributed file system
Distributed file system

A network file system is any computer file system that supports resource sharing of computer file, printers and other resources as persistent storage over a computer network....
 that can virtualize any object, not only those presented by an NFS server on a 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 modified and renamed 9P2000.

Unicode

Plan 9 uses Unicode
Unicode

Unicode is a computing industry standard allowing computers to consistently represent and manipulate Character expressed in most of the world's writing systems....
 throughout the system. UTF-8
UTF-8

UTF-8 is a Variable-width encoding character encoding for Unicode. It is able to represent any character in the Unicode standard, yet the initial encoding of byte codes and character assignments for UTF-8 is backward compatibility with ASCII....
 was invented by Ken Thompson to be used as the native encoding in Plan 9 and the whole system was converted to general use in 1992. Note that Plan 9 only supports the codes defined in the Basic Multilingual Plane of Unicode.

Implementations

Rio in Plan 9 Install
An installable runtime environment exists for x86
X86 architecture

The generic term x86 refers to the most commercially successful instruction set architecture in the history of personal computing. It derived from the model numbers, ending in "86", of the first few processor generations Backward compatibility with the original Intel 8086....
, and Plan 9 has been ported to MIPS
MIPS architecture

MIPS is a RISC instruction set architecture developed by MIPS Technologies . In the mid to late 1990s, it was estimated that one in three RISC microprocessors produced were MIPS implementations....
, DEC Alpha
DEC Alpha

Alpha, originally known as Alpha AXP, was a 64-bit reduced instruction set computer instruction set architecture developed by Digital Equipment Corporation , designed to replace the 32-bit VAX complex instruction set computer ISA and its implementations....
, SPARC
SPARC

SPARC is a Reduced Instruction Set Computer microprocessor instruction set Computer architecture originally designed in 1985 by Sun Microsystems....
, PowerPC
PowerPC

PowerPC is a RISC instruction set architecture created by the 1991 Apple Inc.?IBM?Motorola alliance, known as AIM alliance. Originally intended for personal computers, PowerPC CPUs have since become popular embedded system and high-performance processors....
, ARM
ARM architecture

The ARM architecture is a 32-bit RISC central processing unit architecture developed by ARM Limited that is widely used in embedded system designs....
 and other architectures. The system is written in a dialect of ISO
International Organization for Standardization

The International Organization for Standardization , widely known as ISO , is an international standard-setting body composed of representatives from various national standards organizations....
/ANSI
American National Standards Institute

The American National Standards Institute or ANSI is a private non-profit organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States....
 C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
. Several applications were originally written in a language called Alef, but have since been rewritten in the same C dialect. Plan 9 can import POSIX
POSIX

POSIX or "Portable Operating System Interface" is the collective name of a family of related standardizations specified by the Institute of Electrical and Electronics Engineers to define the application programming interface , along with shell and utilities interfaces for software compatible with variants of the Unix operating system, altho...
 applications and can emulate the Berkeley socket interface through ANSI/POSIX Environment APE. Recently, a new application called linuxemu was developed that can be used to run Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
 binaries; it is, however, 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 implemented and made functional in a modern distributed system. Some features from Plan 9, like the UTF-8
UTF-8

UTF-8 is a Variable-width encoding character encoding for Unicode. It is able to represent any character in the Unicode standard, yet the initial encoding of byte codes and character assignments for UTF-8 is backward compatibility with ASCII....
 character encoding of unicode, have been implemented in other operating systems. Unix-like operating systems such as Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
 have implemented 9P
9P

9P , is a network protocol developed for the Plan 9 from Bell Labs distributed operating systemas the means of connecting the components of a Plan 9 system....
, 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 Porting of many Plan 9 from Bell Labs libraries and applications to Unix-like operating systems. Currently it has been tested on a variety of operating systems including: Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, Solaris /SunOS....
, 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 computer operating system composed entirely of free software. Its name is a recursive acronym for GNU's Not Unix; it was chosen because its design is Unix-like, but differs from Unix by being free software and containing no Unix code....
 operating system programs surrounding the Linux kernel with the Plan 9 operating system programs, or to replace the Plan 9 kernel with the Linux kernel if you prefer.

However, Plan 9 itself has never approached Unix in popularity, and was primarily a research tool. Plan 9 has been criticized as "seem[ing] to function mainly as a device for generating interesting papers on operating-systems research." Eric S. Raymond
Eric S. Raymond

Eric Steven Raymond , often referred to as ESR, is a computer programmer, author and open source software advocate. His name became known within the hacker culture when he became the maintainer of the "Jargon File"....
 in his book The Art of Unix Programming
The Art of Unix Programming

The Art of Unix Programming by Eric Raymond is a book about the history and culture of Unix programming from its earliest days in 1969 to now, covering both genetic derivations such as BSD and conceptual ones such as Linux....
 speculates on Plan 9's lack of acceptance:
"Plan 9 failed simply because it fell short of being a compelling enough improvement on Unix to displace its ancestor. Compared to Plan 9, Unix creaks and clanks and has obvious rust spots, but it gets the job done well enough to hold its position. There is a lesson here for ambitious system architects: the most dangerous enemy of a better solution is an existing codebase that is just good enough."


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....
" school of operating system design
Unix philosophy

The Unix philosophy is a set of cultural norms and philosophical approaches to developing computer software based on the experience of leading developers of the Unix operating system....
. Common criticisms include the relative lack of "polish" and development in Plan 9's windowing system and Plan 9's relative 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 an operating system for creating and supporting distributed services.It was based on the experience of Plan 9 from Bell Labs, and the further research of Bell Labs into operating systems, languages, on-the-fly compilers, graphics, security, networking and portability....
, through its hosted capabilities, has been a vehicle to bring Plan 9 technologies to other systems as part of heterogeneous computing grids.

License

The is freely available under Lucent Public License
Lucent 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

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 by the OSI
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....
 and free software
Free software

Free Software or software libre 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 minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 by the FSF
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 distribute and modify computer software without restriction....
 (although incompatible with the GNU General Public License
GNU General Public License

The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
). 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


Standard Plan 9 utilities

  • rc - the Plan 9 shell
  • sam
    Sam (text editor)

    Sam is a multi-file text editor originally designed at Bell Labs by Rob Pike in the early 1980s for the Blit windowing terminal running on Unix, and later ported to other systems....
     - a text editor
  • acme
    Acme (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....
     - a user interface for programmers
  • plumber - interprocess messaging
  • mk - a tool for building software, analogous to the traditional Unix make utility
  • acid - debugger
  • rio - the new Plan 9 windowing system
  • 8½ (Plan 9)

    8? is a Windowing system developed for the Plan 9 from Bell Labs Operating System by Rob Pike. According to its documentation, the system has little graphical fanciness, a fixed user interface, and depends on a three-button mouse....
     - the old Plan 9 windowing system
  • Fossil
    Fossil (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....
     and Venti
    Venti

    Venti 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. This enforces a write-once policy since no other data block can be found with the same address....
     - the new archival file system and permanent data store


Implementation artifacts

  • 9P
    9P

    9P , is a network protocol developed for the Plan 9 from Bell Labs distributed operating systemas the means of connecting the components of a Plan 9 system....
     (or Styx) - a filesystem protocol
  • rendezvous
    Rendezvous (Plan 9)

    Rendezvous is a synchronization mechanism in Plan 9 from Bell Labs. It is a system call that allows two Process to exchange a single data item while synchronizing....
     - a basic synchronization mechanism
  • Brazil
    Brazil (operating system)

    Brazil, was the 'code name' for what became the Fourth Edition of the Plan 9 from Bell Labs operating system; it was designed for high-performance networks....
     - what became the Fourth Edition of Plan 9


Influenced

  • Plan 9 from User Space
    Plan 9 from User Space

    Plan 9 from User Space is a Porting of many Plan 9 from Bell Labs libraries and applications to Unix-like operating systems. Currently it has been tested on a variety of operating systems including: Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, Solaris /SunOS....
     - a port of many Plan 9 libraries and applications to Unix-like operating systems
  • Inferno
    Inferno (operating system)

    Inferno is an operating system for creating and supporting distributed services.It was based on the experience of Plan 9 from Bell Labs, and the further research of Bell Labs into operating systems, languages, on-the-fly compilers, graphics, security, networking and portability....
     - distributed operating system following up Plan 9
  • - research operating system based on Plan 9
  • - a new approach to Plan B
  • 9wm
    9wm

    9wm is an X11 window manager written by David Hogan in 1994 to emulate the Plan 9 from Bell Labs SecondEdition window manager, 8? . Many later minimalist window managers for...
     - an X window manager
    Window manager

    A window manager is computer software that controls the placement and appearance of window within a windowing system in a graphical user interface....
     that clones the Plan 9 interface
  • wmii
    Wmii

    wmii is a dynamic tiling window manager window manager for X11. It supports classic and dynamic window management with extended Computer keyboard, computer mouse, and filesystem based remote control....
     - an X window manager that uses a file system-like interface based on 9P
    9P

    9P , is a network protocol developed for the Plan 9 from Bell Labs distributed operating systemas the means of connecting the components of a Plan 9 system....


External links


Bell Labs

  • by Brian W. Kernighan
  • - powered by wikifs
    Wikifs

    wikifs is a wiki file system for the Plan 9 from Bell Labs and Inferno operating systems. It allows wiki pages to be served as web pages, and viewed and edited with the Acme text editor....


Lectures

  • - from FOSDEM 2006
    FOSDEM

    FOSDEM is a European event centered around Free and Open Source software development. It is aimed at developers and all interested in the Free and Open Source news in the world....
  • at


Other native and virtual machines


native
  • in a boxed version by Vita Nuova Holdings


virtual
  • as a Qemu
    QEMU

    QEMU is a central processing unit emulator that relies on dynamic binary translation to achieve a reasonable speed while being easy to port on new host CPU architectures....
     image
  • as a VMware
    VMware

    VMware, Inc. is a software developer of virtualization software. The company was founded in 1998 and is based in Palo Alto, California. The Company is majority owned by EMC Corporation ....
     VMPlayer virtual machine
  • as a Vx32
    VX32

    The VX32 virtual extension environment is an virtual machine implemented as an ordinary user-mode library and designed to run native x86 code. Applications can link with and use VX32 in order to create safe, operating system-independent execution environments, in which to run untrusted plugin or other extensions written in any language that...
     Extension Environment binary image


Other sources of information

  • , the Plan 9 mailing list
    Mailing list

    A 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 list"....
     hosted by http://9fans.net
  • Plan 9, Inferno, Unix, and Bell Labs operating systems news
  • [irc://irc.freenode.net/plan9 #plan9], the Plan 9 IRC channel hosted by freenode
    Freenode

    freenode, formerly known as Open Projects Network, is a popular Internet Relay Chat computer network used to discuss peer-directed projects....
  • from The Art of Unix Programming
    The Art of Unix Programming

    The Art of Unix Programming by Eric Raymond is a book about the history and culture of Unix programming from its earliest days in 1969 to now, covering both genetic derivations such as BSD and conceptual ones such as Linux....
     by Eric S. Raymond
    Eric S. Raymond

    Eric Steven Raymond , often referred to as ESR, is a computer programmer, author and open source software advocate. His name became known within the hacker culture when he became the maintainer of the "Jargon File"....
  • , by Hancock, B., Giarlo, M.J., & Triggs, J. A., published in Library Hi Tech, 21(4), 471-476.
  • , 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.com
    Lulu.com

    Lulu is a company offering diverse publishing and printing services. Its headquarters is in Raleigh, North Carolina. The company is international with staff in 12 countries, and offices in Raleigh, London, Toronto and Bangalore....
    .