Plan 9 from Bell Labs

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Plan 9 from Bell Labs
Glenda, the Plan 9 Bunny
Glenda, the Plan 9 Bunny
Company / developer Bell Labs
Programmed in Dialect of ISO/ANSI C
OS family Unix successor
Working state Current
Source model Free software/Open source
Initial release 1992 (universities)
1995 (general public)
Latest stable release Fourth Edition/ daily snapshots
Supported platforms x86, MIPS, DEC Alpha, SPARC, PowerPC, ARM
Kernel type Hybrid
Default user interface rio / rc
License Lucent Public License
Website 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 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 filesystem 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 in some circles as a research operating system and by hobbyists.

The name "Plan 9 from Bell Labs" is a reference to the cult science fiction B-movie Plan 9 from Outer Space.[1]

Contents

[edit] 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 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, who had inherited Bell Labs, dropped commercial interest in the project. In 2000, a non-commercial third release was made under an open source license. In 2002, a non-commercial fourth release was made under a new free software license.

A user and development community, including current and former Bell Labs and MIT members, continues to produce daily minor releases as ISO images. Bell Labs still hosts development.[2] The development source tree is accessible over the 9P and HTTP protocols and is used to keep an installation up to date.[3] 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.

[edit] Overview

Plan 9 from Bell Labs was developed by members of the Computing Science Research Center at Bell Labs, the same group that developed UNIX and C.[4] 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 and others.[5]

[edit] All resources as files

Before Unix, most operating systems had different mechanisms for accessing different types of devices. For example, the application programming interface (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.

Unix attempted to remove these distinctions, and model all input/output 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 and cp 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 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