fbpx
Wikipedia

Plan 9 from Bell Labs

Plan 9 from Bell Labs is a distributed operating system which originated from the Computing Science Research Center (CSRC) at Bell Labs in the mid-1980s and built on UNIX concepts first developed there in the late 1960s. Since 2000, Plan 9 has been free and open-source. The final official release was in early 2015.

Plan 9 from Bell Labs
Glenda, the Plan 9 mascot in a space suit, drawn by Renée French[1][2]
rio, default user interface of Plan 9 from Bell Labs
DeveloperPlan 9 Foundation, succeeding Bell Labs
Written inDialect of ANSI C
Working stateCurrent[3][4]
Source modelOpen source
Initial release1992; 32 years ago (1992) (universities) / 1995; 29 years ago (1995) (general public)
Final releaseFourth Edition / January 10, 2015; 9 years ago (2015-01-10)[5]
Repository9p.io/sources/plan9/sys[6]
Marketing targetOperating systems research, networked environments, general-purpose use
Available inEnglish
Platformsx86 / Vx32, x86-64, MIPS, DEC Alpha, SPARC, PowerPC, ARM
Kernel typeMonolithic[7]
Influenced byResearch Unix, Cambridge Distributed Computing System[8]
Default
user interface
rio / rc
License2021: MIT[9][10]
2014: GPL-2.0-only[11]
2002: LPL-1.02[12]
2000: Plan 9 OSL[13][14][15][16]
Succeeded byInferno
Other derivatives and forks
Official websitep9f.org

Under Plan 9, UNIX's everything is a file metaphor is extended via a pervasive network-centric filesystem, and the cursor-addressed, terminal-based I/O at the heart of UNIX-like operating systems is replaced by a windowing system and graphical user interface without cursor addressing, although rc, the Plan 9 shell, is text-based.

The name Plan 9 from Bell Labs is a reference to the Ed Wood 1957 cult science fiction Z-movie Plan 9 from Outer Space.[17] The system continues to be used and developed by operating system researchers and hobbyists.[18][19]

History edit

 
Screenshot of Plan 9 installation

Plan 9 from Bell Labs was originally developed, starting in the late 1980s,[19] by members of the Computing Science Research Center at Bell Labs, the same group that originally developed Unix and the C programming language.[20] The Plan 9 team was initially 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 and Bruce Ellis.[21]

Plan 9 replaced Unix as Bell Labs's primary platform for operating systems research.[22] It explored several changes to the original Unix model that facilitate the use and programming of the system, notably in distributed multi-user environments. After several years of development and internal use, Bell Labs shipped the operating system to universities in 1992. Three years later, Plan 9 was made available for commercial parties by AT&T via the book publisher Harcourt Brace. With source licenses costing $350, AT&T targeted the embedded systems market rather than the computer market at large. Ritchie commented that the developers did not expect to do "much displacement" given how established other operating systems had become.[23]

By early 1996, the Plan 9 project had been "put on the back burner" by AT&T in favor of Inferno, intended to be a rival to Sun Microsystems' Java platform.[24] In the late 1990s, Bell Labs' new owner Lucent Technologies dropped commercial support for the project and in 2000, a third release was distributed under an open-source license.[25] A fourth release under a new free software license occurred in 2002.[26] In early 2015, the final official release of Plan 9 occurred.[25]

A user and development community, including current and former Bell Labs personnel, produced minor daily releases in the form of ISO images. Bell Labs hosted the development.[27] The development source tree is accessible over the 9P and HTTP protocols and is used to update existing installations.[28] 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.[29]

As Bell Labs has moved on to later projects in recent years, development of the official Plan 9 system had stopped. On March 23, 2021, development resumed following the transfer of copyright from Bell Labs to the Plan 9 Foundation.[10][30][31] Unofficial development for the system also continues on the 9front fork, where active contributors provide monthly builds and new functionality. So far, the 9front fork has provided the system Wi-Fi drivers, Audio drivers, USB support and built-in game emulator, along with other features.[32][33] Other recent Plan 9-inspired operating systems include Harvey OS[34] and Jehanne OS.[35]

Date Release Comment
1992 Plan 9 1st edition Released by Bell Labs to universities
1995 Plan 9 2nd edition Released by Bell Labs for non-commercial purposes[36]
2000 Plan 9 3rd ed. (Brazil) Released by Lucent Technologies under an open source license
2002 Plan 9 4th edition Released by Lucent Technologies under a new free software license

Design concepts edit

Plan 9 from Bell Labs is like the Quakers: distinguished by its stress on the 'Inner Light,' noted for simplicity of life, in particular for plainness of speech. Like the Quakers, Plan 9 does not proselytize.

—Sape J. Mullender, Pierre G. Jansen.
Real Time in a Real Operating System[37]

Plan 9 is a distributed operating system, designed to make a network of heterogeneous and geographically separated computers function as a single system.[38] In a typical Plan 9 installation, users work at terminals running the window system rio, and they access CPU servers which handle computation-intensive processes. Permanent data storage is provided by additional network hosts acting as file servers and archival storage.[39]

Its designers state that,

[t]he foundations of the system are built on two ideas: a per-process name space and a simple message-oriented file system protocol.

— Pike et al.[40]

The first idea (a per-process name space) means that, unlike on most operating systems, processes (running programs) each have their own view of the namespace, corresponding to what other operating systems call the file system; a single path name may refer to different resources for different processes. The potential complexity of this setup is controlled by a set of conventional locations for common resources.[41][42]

The second idea (a message-oriented filesystem) means that processes can offer their services to other processes by providing virtual files that appear in the other processes' namespace. The client process's input/output on such a file becomes inter-process communication between the two processes. This way, Plan 9 generalizes the Unix notion of the filesystem as the central point of access to computing resources. It carries over Unix's idea of device files to provide access to peripheral devices (mice, removable media, etc.) and the possibility to mount filesystems residing on physically distinct filesystems into a hierarchical namespace, but adds the possibility to mount a connection to a server program that speaks a standardized protocol and treat its services as part of the namespace.

For example, the original window system, called 8½, exploited these possibilities as follows. Plan 9 represents the user interface on a terminal by means of three pseudo-files: mouse, which can be read by a program to get notification of mouse movements and button clicks, cons, which can be used to perform textual input/output, and bitblt, writing to which enacts graphics operations (see bit blit). The window system multiplexes these devices: when creating a new window to run some program in, it first sets up a new namespace in which mouse, cons and bitblt are connected to itself, hiding the actual device files to which it itself has access. The window system thus receives all input and output commands from the program and handles these appropriately, by sending output to the actual screen device and giving the currently focused program the keyboard and mouse input.[39] The program does not need to know if it is communicating directly with the operating system's device drivers, or with the window system; it only has to assume that its namespace is set up so that these special files provide the kind of input and accept the kind of messages that it expects.

Plan 9's distributed operation relies on the per-process namespaces as well, allowing client and server processes to communicate across machines in the way just outlined. For example, the cpu command starts a remote session on a computation server. The command exports part of its local namespace, including the user's terminal's devices (mouse, cons, bitblt), to the server, so that remote programs can perform input/output using the terminal's mouse, keyboard and display, combining the effects of remote login and a shared network filesystem.[39][40]

9P protocol edit

All programs that wish to provide services-as-files to other programs speak a unified protocol, called 9P. Compared to other systems, this reduces the number of custom programming interfaces. 9P is a generic, medium-agnostic, byte-oriented protocol that provides for messages delivered between a server and a client.[43] The protocol is used to refer to and communicate with processes, programs, and data, including both the user interface and the network.[44] With the release of the 4th edition, it was modified and renamed 9P2000.[26]

Unlike most other operating systems, Plan 9 does not provide special application programming interfaces (such as Berkeley sockets, X resources or ioctl system calls) to access devices.[43] Instead, Plan 9 device drivers implement their control interface as a file system, so that the hardware can be accessed by the ordinary file input/output operations read and write. Consequently, sharing the device across the network can be accomplished by mounting the corresponding directory tree to the target machine.[17]

Union directories and namespaces edit

Plan 9 allows the user to collect the files (called names) from different directory trees in a single location. The resulting union directory behaves as the concatenation of the underlying directories (the order of concatenation can be controlled); if the constituent directories contain files having the same name, a listing of the union directory (ls or lc) will simply report duplicate names.[45] Resolution of a single path name is performed top-down: if the directories top and bottom are unioned into u with top first, then u/name denotes top/name if it exists, bottom/name only if it exists and top/name does not exist, and no file if neither exists. No recursive unioning of subdirectories is performed, so if top/subdir exists, the files in bottom/subdir are not accessible through the union.[46]

A union directory can be created by using the bind command:

; bind /arm/bin /bin ; bind -a /acme/bin/arm /bin ; bind -b /usr/alice/bin /bin 

In the example above, /arm/bin is mounted at /bin, the contents of /arm/bin replacing the previous contents of /bin. Acme's bin directory is then union mounted after /bin, and Alice's personal bin directory is union mounted before. When a file is requested from /bin, it is first looked for in /usr/alice/bin, then in /arm/bin, and then finally in /acme/bin/arm.

The separate process namespaces thus usually replace the notion of a search path in the shell. A path environment variable ($path) still exists in the rc shell (the shell mainly used in Plan 9); however, rc's path environment variable conventionally only contains the /bin and . directories and modifying the variable is discouraged, instead, adding additional commands should be done by binding several directories together as a single /bin.[47][39] Unlike in Plan 9, the path environment variable of Unix shells should be set to include the additional directories whose executable files need to be added as commands.

Furthermore, the kernel can keep separate mount tables for each process,[37] and can thus provide each process with its own file system namespace. Processes' namespaces can be constructed independently, and the user may work simultaneously with programs that have heterogeneous namespaces.[40] Namespaces may be used to create an isolated environment similar to chroot, but in a more secure way.[43]

Plan 9's union directory architecture inspired 4.4BSD and Linux union file system implementations,[45] although the developers of the BSD union mounting facility found the non-recursive merging of directories in Plan 9 "too restrictive for general purpose use".[46]

Special virtual filesystem edit

/proc edit

 
Listing processes with list contents of directory (ls, lc) command[48] in /proc

Instead of having system calls specifically for process management, Plan 9 provides the /proc file system. Each process appears as a directory containing information and control files which can be manipulated by the ordinary file IO system calls.[8]

The file system approach allows Plan 9 processes to be managed with simple file management tools such as ls and cat; however, the processes cannot be copied and moved as files.[8]

/net edit

Plan 9 does not have specialised system calls or ioctls for accessing the networking stack or networking hardware. Instead, the /net file system is used. Network connections are controlled by reading and writing control messages to control files. Sub-directories such as /net/tcp and /net/udp are used as an interface to their respective protocols.[8]

Unicode edit

To reduce the complexity of managing character encodings, Plan 9 uses Unicode throughout the system. The initial Unicode implementation was ISO/IEC 10646-1:1993. Ken Thompson invented UTF-8, which became the native encoding in Plan 9. The entire system was converted to general use in 1992.[49] UTF-8 preserves backwards compatibility with traditional null-terminated strings, enabling more reliable information processing and the chaining of multilingual string data with Unix pipes between multiple processes. Using a single UTF-8 encoding with characters for all cultures and regions eliminates the need for switching between code sets.[50]

Combining the design concepts edit

Though interesting on their own, the design concepts of Plan 9 were supposed to be most useful when combined. For example, to implement a network address translation (NAT) server, a union directory can be created, overlaying the router's /net directory tree with its own /net. Similarly, a virtual private network (VPN) can be implemented by overlaying in a union directory a /net hierarchy from a remote gateway, using secured 9P over the public Internet. A union directory with the /net hierarchy and filters can be used to sandbox an untrusted application or to implement a firewall.[43] In the same manner, a distributed computing network can be composed with a union directory of /proc hierarchies from remote hosts, which allows interacting with them as if they are local.

When used together, these features allow for assembling a complex distributed computing environment by reusing the existing hierarchical name system.[8]

Software for Plan 9 edit

As a benefit from the system's design, most tasks in Plan 9 can be accomplished by using ls, cat, grep, cp and rm utilities in combination with the rc shell (the default Plan 9 shell).

Factotum is an authentication and key management server for Plan 9. It handles authentication on behalf of other programs such that both secret keys and implementation details need only be known to Factotum.[51]

Graphical programs edit

 
Plan 9 running acme and rc

Unlike Unix, Plan 9 was designed with graphics in mind.[44] After booting, a Plan 9 terminal will run the rio windowing system, in which the user can create new windows displaying rc.[52] Graphical programs invoked from this shell replace it in its window.

The plumber provides an inter-process communication mechanism which allows system-wide hyperlinking.

Sam and acme are Plan 9's text editors.[53]

Storage system edit

Plan 9 supports the Kfs, Paq, Cwfs, FAT, and Fossil file systems. The last was designed at Bell Labs specifically for Plan 9 and provides snapshot storage capability. It can be used directly with a hard drive or backed with Venti, an archival file system and permanent data storage system.

Software development edit

The distribution package for Plan 9 includes special compiler variants and programming languages, and provides a tailored set of libraries along with a windowing user interface system specific to Plan 9.[54] The bulk of the system is written in a dialect of C (ANSI C with some extensions and some other features left out). The compilers for this language were custom built with portability in mind; according to their author, they "compile quickly, load slowly, and produce medium quality object code".[55]

A concurrent programming language called Alef was available in the first two editions, but was then dropped for maintenance reasons and replaced by a threading library for C.[56][57]

Unix compatibility edit

Though Plan 9 was supposed to be a further development of Unix concepts, compatibility with preexisting Unix software was never the goal for the project. Many command-line utilities of Plan 9 share the names of Unix counterparts, but work differently.[48]

Plan 9 can support POSIX applications and can emulate the Berkeley socket interface through the ANSI/POSIX Environment (APE) that implements an interface close to ANSI C and POSIX, with some common extensions (the native Plan 9 C interfaces conform to neither standard). It also includes a POSIX-compatible shell. APE's authors claim to have used it to port the X Window System (X11) to Plan 9, although they do not ship X11 "because supporting it properly is too big a job".[58] Some Linux binaries can be used with the help of a "linuxemu" (Linux emulator) application; however, it is still a work in progress.[59] Vice versa, the Vx32 virtual machine allows a slightly modified Plan 9 kernel to run as a user process in Linux, supporting unmodified Plan 9 programs.[60]

Reception edit

Comparison to contemporary operating systems edit

In 1991, Plan 9's designers compared their system to other early nineties operating systems in terms of size, showing that the source code for a minimal ("working, albeit not very useful") version was less than one-fifth the size of a Mach microkernel without any device drivers (5899 or 4622 lines of code for Plan 9, depending on metric, vs. 25530 lines). The complete kernel comprised 18000 lines of code.[39] (According to a 2006 count, the kernel was then some 150,000 lines, but this was compared against more than 4.8 million in Linux.[43])

Within the operating systems research community, as well as the commercial Unix world, other attempts at achieving distributed computing and remote filesystem access were made concurrently with the Plan 9 design effort. These included the Network File System and the associated vnode architecture developed at Sun Microsystems, and more radical departures from the Unix model such as the Sprite OS from UC Berkeley. Sprite developer Brent Welch points out that the SunOS vnode architecture is limited compared to Plan 9's capabilities in that it does not support remote device access and remote inter-process communication cleanly, even though it could have, had the preexisting UNIX domain sockets (which "can essentially be used to name user-level servers") been integrated with the vnode architecture.[41]

One critique of the "everything is a file", communication-by-textual-message design of Plan 9 pointed out limitations of this paradigm compared to the typed interfaces of Sun's object-oriented operating system, Spring:

Plan 9 constrains everything to look like a file. In most cases the real interface type comprises the protocol of messages that must be written to, and read from, a file descriptor. This is difficult to specify and document, and prohibits any automatic type checking at all, except for file errors at run time. (...) [A] path name relative to a process' implicit root context is the only way to name a service. Binding a name to an object can only be done by giving an existing name for the object, in the same context as the new name. As such, interface references simply cannot be passed between processes, much less across networks. Instead, communication has to rely on conventions, which are prone to error and do not scale.

— Roscoe; emphasis in the original.[61]

A later retrospective comparison of Plan 9, Sprite and a third contemporary distributed research operating system, Amoeba, found that

the environments they [Amoeba and Sprite] build are tightly coupled within the OS, making communication with external services difficult. Such systems suffer from the radical departure from the UNIX model, which also discourages portability of already existing software to the platform (...). The lack of developers, the very small range of supported hardware and the small, even compared to Plan 9, user base have also significantly slowed the adoption of those systems (...). In retrospect, Plan 9 was the only research distributed OS from that time which managed to attract developers and be used in commercial projects long enough to warrant its survival to this day.

— Mirtchovski, Simmonds and Minnich[62]

Impact edit

 
The wmii X window manager was inspired by acme, a text editor from the Plan 9 project.[63]

Plan 9 demonstrated that an integral concept of Unix—that every system interface could be represented as a set of files—could be successfully implemented in a modern distributed system.[52] 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 Linux have implemented 9P2000, Plan 9's protocol for accessing remote files, and have adopted features of rfork, Plan 9's process creation mechanism.[64] Additionally, in Plan 9 from User Space, several of Plan 9's applications and tools, including the sam and acme editors, have been ported to Unix and Linux systems and have achieved some level of popularity. Several projects seek to replace the GNU operating system programs surrounding the Linux kernel with the Plan 9 operating system programs.[65][66] The 9wm window manager was inspired by , the older windowing system of Plan 9;[67] wmii is also heavily influenced by Plan 9.[63] In computer science research, Plan 9 has been used as a grid computing platform[68][62] and as a vehicle for research into ubiquitous computing without middleware.[69] In commerce, Plan 9 underlies Coraid storage systems. However, Plan 9 has never approached Unix in popularity, and has been primarily a research tool:

[I]t looks like 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 factors that contributed to low adoption of Plan 9 include the lack of commercial backup, the low number of end-user applications, and the lack of device drivers.[52][53]

Plan 9 proponents and developers claim that the problems hindering its adoption have been solved, that its original goals as a distributed system, development environment, and research platform have been met, and that it enjoys moderate but growing popularity.[citation needed] Inferno, through its hosted capabilities, has been a vehicle for bringing Plan 9 technologies to other systems as a hosted part of heterogeneous computing grids.[70][71][72]

Several projects work to extend Plan 9, including 9atom and 9front. These forks augment Plan 9 with additional hardware drivers and software, including an improved version of the Upas e-mail system, the Go compiler, Mercurial version control system support (and now also a git implementation), and other programs.[19][73] Plan 9 was ported to the Raspberry Pi single-board computer.[74][75] The Harvey project attempts to replace the custom Plan 9 C compiler with GCC, to leverage modern development tools such as GitHub and Coverity, and speed up development.[76]

Since Windows 10 version 1903, the Windows Subsystem for Linux implements the Plan 9 Filesystem Protocol as a server and the host Windows operating system acts as a client.[77]

Derivatives and forks edit

  • Inferno is a descendant of Plan 9, and shares many design concepts and even source code in the kernel, particularly around devices and the Styx/9P2000 protocol. Inferno shares with Plan 9 the Unix heritage from Bell Labs and the Unix philosophy. Many of the command line tools in Inferno were Plan 9 tools that were translated to Limbo.
  • 9atom[78] augments the Plan 9 distribution with the addition of a 386 PAE kernel, an amd64 cpu and terminal kernel, nupas, extra pc hardware support, IL and Ken's fs.[79][80]
  • 9front[81] is a fork of Plan 9. It was started to remedy a perceived lack of devoted development resources inside Bell Labs, and has accumulated various fixes and improvements.
  • 9legacy[82] is an alternative distribution. It includes a set of patches based on the current Plan 9 distribution.
  • Akaros[83] is designed for many-core architectures and large-scale SMP systems.
  • Harvey OS[84] is an effort to get the Plan 9 code working with gcc and clang.
  • JehanneOS[85] is an experimental OS derived from Plan 9. Its userland and modules are mostly derived from 9front, its build system from Harvey OS, and its kernel is a fork of the Plan9-9k 64-bit Plan9 kernel.
  • NIX[86][better source needed] is a fork of Plan9 aimed at multicore systems and cloud computing.
  • node9[87] is a scripted derivative of Plan9/Inferno that replaces the Limbo programming language and DIS virtual machine with the Lua language and LuaJit virtual machine. It also replaces the Inferno per-platform hosted I/O with Node.js' libuv eventing and I/O for consistent, cross-platform hosting. It's a proof-of-concept that demonstrates that a distributed OS can be constructed from per-process namespaces and generic cloud elements to construct a single-system-image of arbitrary size.
  • Plan B[88] designed to work in distributed environments where the set of available resources is different at different points in time. Originally based on the third edition Plan 9 kernel, Plan B was moved into user space to run on current Plan 9 systems.[89][90][91]

License edit

Starting with the release of Fourth edition in April 2002,[26] the full source code of Plan 9 from Bell Labs is freely available under Lucent Public License 1.02, which is considered to be an open-source license by the Open Source Initiative (OSI), free software license by the Free Software Foundation, and it passes the Debian Free Software Guidelines.[43]

In February 2014, the University of California, Berkeley, was authorized by the current Plan 9 copyright holderAlcatel-Lucent – to release all Plan 9 software previously governed by the Lucent Public License, Version 1.02 under the GPL-2.0-only.[92]

On March 23, 2021, ownership of Plan 9 transferred from Bell Labs to the Plan 9 Foundation,[93] and all previous releases have been relicensed to the MIT License.[10]

See also edit

References edit

  1. ^ "Plan 9 from Bell Labs".
  2. ^ Lucent Technologies (2006). "Glenda, the Plan 9 Bunny". Retrieved 2008-12-02.
  3. ^ "Plan 9 Foundation: Activities". plan9foundation.org. Retrieved 23 March 2021.
  4. ^ "9legacy". 9legacy.org. Retrieved 23 March 2021.
  5. ^ . Bell Labs. Archived from the original on 2017-06-01. Retrieved 2019-07-25. Sat Jan 10 04:04:55 EST 2015 ... plan9.iso.bz2
  6. ^ "GPLv2 source code".
  7. ^ Crawford, Diane (1999). "Forum". Communications of the ACM. 42 (8). Association for Computing Machinery (ACM): 11–15. doi:10.1145/310930.310939. ISSN 0001-0782. S2CID 263897745.
  8. ^ a b c d e Pike, R.; Presotto, D.; Dorward, S.; Flandrena, B.; Thompson, K.; Trickey, H.; Winterbottom, P. "Plan 9 from Bell Labs". Bell Labs. Lucent Technologies. Retrieved 2016-02-26.
  9. ^ "Plan 9 License". p9f.org. from the original on 14 June 2021. Retrieved 14 June 2021.
  10. ^ . akaros.cs.berkeley.edu. Archived from the original on 13 February 2014. Retrieved 14 June 2021. The University of California, Berkeley, has been authorised by Alcatel-Lucent to release all Plan 9 software previously governed by the Lucent Public License, Version 1.02 under the GNU General Public License, Version 2.
  11. ^ . plan9.bell-labs.com. Archived from the original on 3 October 2003. Retrieved 14 June 2021.
  12. ^ . plan9.bell-labs.com. Archived from the original on 18 December 2002. Retrieved 14 June 2021.
  13. ^ . plan9.bell-labs.com. Archived from the original on 6 December 2000. Retrieved 14 June 2021.
  14. ^ . plan9.bell-labs.com. Archived from the original on 26 October 2000. Retrieved 14 June 2021.
  15. ^ . plan9.bell-labs.com. Archived from the original on 16 August 2000. Retrieved 14 June 2021.
  16. ^ a b c Raymond, Eric S. (2003-09-17). "Plan 9: The Way the Future Was". The Art of UNIX Programming. Addison-Wesley. ISBN 0-13-142901-9. Retrieved 2007-05-07.
  17. ^ Robertson, James (2011-07-16). "Plan 9 Forked, Continues as 9front". OSNews. Retrieved 2011-12-31.
  18. ^ a b c . Archived from the original on 2013-07-26. Retrieved 2011-11-11.
  19. ^ "From the inventors of UNIX system comes Plan 9 from Bell Labs" (Press release). Lucent Technologies. 1995-07-18. Archived from the original on 2006-02-09.
  20. ^ McIlroy, Doug (Mar 1995). "Preface". Bell Labs (2nd ed.). Lucent Technologies. Retrieved 2016-02-26.
  21. ^ Proven, Liam (2022-03-29). "The weird world of non-C operating systems". www.theregister.com. Retrieved 2022-09-01.
  22. ^ Lee, Yvonne L. (24 July 1995). "AT&T Bell Labs ships Plan 9 OS for embedded systems". InfoWorld.
  23. ^ Pontin, Jason (19 February 1996). "AT&T reveals plans for Java competitor". InfoWorld. p. 3.
  24. ^ a b "Bell Labs: A Complete Guide — History, Products, Founding, and More". History-Computer. 2021-11-14. Retrieved 2022-09-01.
  25. ^ a b c Loli-Queru, Eugenia (2002-04-29). "Bell Labs Releases New Version of Plan 9". OSNews. Retrieved 2011-12-31.
  26. ^ "How to contribute". Bell Labs. Lucent Technologies. Retrieved 2011-11-30.
  27. ^ "Staying up to date". Bell Labs. Lucent Technologies. Retrieved 2019-07-24.
  28. ^ "Plan 9 — Additional Software". 2009. Retrieved 2016-03-06.
  29. ^ Weldon, Marcus (23 March 2021). "Plan 9 from Bell Labs in Cyberspace!". Nokia Bell Labs. Retrieved 23 March 2021.
  30. ^ Sharwood, Simon. "Bell Labs transfers copyright of influential 'Plan 9' OS to new foundation". The Register. Retrieved 2021-03-24.
  31. ^ "FQA 1 - Introduction To 9front". fqa.9front.org. Retrieved 2018-02-15.
  32. ^ Proven, Liam. "New version of Plan 9 fork 9front released". The Register. Retrieved 2022-11-05.
  33. ^ "Harvey OS". harvey-os.org. Retrieved 2018-02-15.
  34. ^ "Jehanne". jehanne.h--k.it/. Retrieved 2023-01-08.
  35. ^ . 9 fans. 1995-07-16. Archived from the original on 2008-07-06.
  36. ^ a b Mullender, Sape J.; Jansen, Pierre G. (2004-02-26). "Real Time in a Real Operating System". In Herbert, Andrew J.; Spärck Jones, Karen (eds.). Computer systems: theory, technology, and applications: a tribute to Roger Needham. Springer Science+Business Media. p. 211. ISBN 978-0-387-20170-2. Retrieved 2011-12-24.
  37. ^ Hancock, Brian (2003). "Reinventing Unix: an introduction to the Plan 9 operating system". Library Hi Tech. 21 (4). MCB UP: 471–76. doi:10.1108/07378830310509772.
  38. ^ a b c d e Presotto, Dave; Pike, Rob; Thompson, Ken; Trickey, Howard. Plan 9, A Distributed System. Proc. Spring 1991 EurOpen Conference. CiteSeerX 10.1.1.41.9192.
  39. ^ a b c Pike, R.; Presotto, D.; Thompson, K.; Trickey, H.; Winterbottom, P. "The Use of Name Spaces in Plan 9". Bell Labs. Retrieved 2016-02-26.
  40. ^ a b Welch, Brent (1994). "A comparison of three distributed file system architectures: Vnode, Sprite, and Plan 9". Computing Systems. 7 (2): 175–199. CiteSeerX 10.1.1.46.2817.
  41. ^ namespace(4) – Plan 9 Programmer's Manual, Volume 1
  42. ^ a b c d e f Pereira, Uriel M. (2006). The Unix Spirit set Free: Plan 9 from Bell Labs (AVI). FOSDEM. Retrieved 2011-12-02.
    • Uriel. (PDF). Bell Labs. Archived from the original (PDF) on 2007-11-28. Retrieved 2007-11-14.
  43. ^ a b Minnich, Ron (2005). (PDF). Los Alamos National Laboratory. Archived from the original (PDF) on 2016-02-25. Retrieved 2016-02-26.
  44. ^ a b Valerie, Aurora (2009-03-25). "Union file systems: Implementations, part I". LWN.net. Retrieved 2011-12-05.
  45. ^ a b Pendry, Jan-Simon; McKusick, Marshall Kirk (1995). Union Mounts in 4.4BSD-Lite. Proc. Winter USENIX Conf.
  46. ^ Duff, Tom. "18". Rc — The Plan 9 Shell. {{cite book}}: |work= ignored (help) (PDF);
  47. ^ a b "UNIX to Plan 9 command translation". Bell Labs. Lucent Technologies. Retrieved 2011-12-02.
  48. ^ Pike, Rob (2003-04-30). "UTF-8 History". Retrieved 2006-04-27.
  49. ^ Lunde, Ken (Jan 1999). CJKV information processing. O'Reilly Media. p. 466. ISBN 978-1-56592-224-2. Retrieved 2011-12-23.
  50. ^ Cox, R.; Grosse, E.; Pike, R.; Presotto, D.; Quinlan, S. "Security in Plan 9". Bell Labs. Lucent Technologies. Retrieved 2016-02-26.
  51. ^ a b c Hudson, Andrew (2006-07-19). "Investigating the Plan 9 Operating System". OSNews. Retrieved 2011-12-31.
  52. ^ a b . The Setup. Uses this. 2011-04-09. Archived from the original on 2011-12-28. Retrieved 2012-01-01.
  53. ^ Dixon, Rod (2004). Open source software law. Artech House. p. 213. ISBN 978-1-58053-719-3. Retrieved 2011-12-25.
  54. ^ Thompson, Ken (February 1992). "A new C Compiler" (PDF). Australian UNIX Systems User Group Newsletter. 13 (1). Kensington, AU: AUUG: 31–41. ISSN 1035-7521. Retrieved 2011-12-25.
  55. ^ Pike, Rob. "Rio: Design of a Concurrent Window System" (PDF). Retrieved 8 March 2013.
  56. ^ thread(2) – Plan 9 Programmer's Manual, Volume 1
  57. ^ Trickey, Howard. "APE – The ANSI/POSIX Environment". Bell Labs. Lucent Technologies. Retrieved 2016-02-26.
  58. ^ "Linux emulation". Bell Labs. Lucent Technologies. Retrieved 2016-02-26.
  59. ^ Ford, Bryan; Cox, Russ (2008). Vx32: Lightweight, User-level Sandboxing on the x86. USENIX Annual Tech. Conf. pp. 293–306. CiteSeerX 10.1.1.212.9353.
  60. ^ Roscoe, Timothy (1995). The Structure of a Multi-Service Operating System (PDF) (Ph.D.). University of Cambridge. pp. 22–23.
  61. ^ a b Mirtchovski, Andrey; Simmonds, Rob; Minnich, Ron (2004). Plan 9—an integrated approach to grid computing. Proc. 18th Int'l Parallel and Distributed Processing Symp. IEEE. CiteSeerX 10.1.1.97.122.
  62. ^ a b . suckless.org. Archived from the original on 2011-12-31. Retrieved 2012-01-02. [wmii] has a 9p filesystem interface and supports classic and tiling (acme-like) window management.
  63. ^ Torvalds, Linus (1999). "The Linux edge". Open Sources: Voices from the Open Source Revolution. O'Reilly. ISBN 1-56592-582-3.
  64. ^ "Glendix: Bringing the beauty of Plan 9 to Linux". Retrieved 2011-12-01.
  65. ^ "Plan 9 From Gentoo: Plan 9 Meets Gentoo". Gentoo Linux. Archived from the original on 2012-12-20. Retrieved 2011-12-01.
  66. ^ "The 9wm Window Manager". 9wm. Retrieved 2012-01-02. 9wm is an X window manager which attempts to emulate the Plan 9 window manager 8-1/2 as far as possible within the constraints imposed by X.
  67. ^ . Bell Labs. Lucent Technologies. Archived from the original on 2006-03-14. Retrieved 2006-03-28.
  68. ^ Ballesteros, Francisco J.; Guardiola, Gorka; Soriano, Enrique; Leal Algara, Katia (2005). Traditional systems can work well for pervasive applications. A case study: Plan 9 from Bell Labs becomes ubiquitous. IEEE Intl' Conf. on Pervasive Computing and Communications. CiteSeerX 10.1.1.109.8131.
  69. ^ "Vita Nuova Supplies Inferno Grid to Evotec OAI" (PDF) (Press release). Vita Nuova. 2004-05-18. Retrieved 2006-03-28.
  70. ^ "Rutgers University Libraries Install Inferno Data Grid" (PDF) (Press release). Vita Nuova. 2004-05-12. Retrieved 2006-03-28.
  71. ^ "The University of York Department of Biology install Vita Nuova's Inferno Data Grid" (PDF) (Press release). Vita Nuova. 2004-05-04. Retrieved 2006-03-28.
  72. ^ "9FRONT.ORG THE PLAN FELL OFF". Retrieved 2021-10-14.
  73. ^ Hayward, David (2013-05-09). . TechRadar. Archived from the original on June 7, 2013. Retrieved 2014-04-20.
  74. ^ "How to install Plan 9 on a Raspberry Pi". eLinux. Retrieved 2014-11-16.
  75. ^ Jurado, Álvaro; Fernández, Rafael; du Colombier, David; Minnich, Ron; Nyrhinen, Aki; Floren, John. Harvey (PDF). USENIX ATC BOF session.
  76. ^ "What's new for WSL in Windows 10 version 1903?". Windows Command Line Tools For Developers. February 16, 2019.
  77. ^ . Archived from the original on 11 November 2020.{{cite web}}: CS1 maint: unfit URL (link)
  78. ^ . quanstro.net. Archived from the original on 9 June 2018. Retrieved 15 June 2023.
  79. ^ "9atom". ArchiveOS. 3 May 2022. Retrieved 15 June 2023.
  80. ^ "9FRONT.ORG THE PLAN FELL OFF".
  81. ^ "9legacy".
  82. ^ "Akaros".
  83. ^ "Harvey OS".
  84. ^ "JehanneOS". 17 November 2021.
  85. ^ "NIX". 21 November 2020.
  86. ^ "node9". GitHub. 14 January 2022.
  87. ^ "Plan B". 26 November 2020.
  88. ^ "Download". Plan 9 wiki. 9p.io. Retrieved 15 June 2023.
  89. ^ Ballesteros, Francisco J.; Muzquiz, Gorka Guardiola; Algara, Katia Leal; Soriano, Enrique; de las Heras Quirós, Pedro; Castro, Eva M.; Leonardo, Andres; Arévalo, Sergio (February 2004). "Plan B: Boxes for networked resources". Journal of the Brazilian Computer Society. 10 (1): 33–44. doi:10.1007/BF03192352. S2CID 6766935.
  90. ^ Ballesteros, F.J.; Soriano, E.; Leal, K.; Guardiola, G. (2006). "Plan B: An Operating System for Ubiquitous Computing Environments". Fourth Annual IEEE International Conference on Pervasive Computing and Communications (PERCOM'06). pp. 126–135. doi:10.1109/PERCOM.2006.43. ISBN 0-7695-2518-0. S2CID 1730651. Retrieved 15 June 2023.
  91. ^ Sharwood, Simon (2014-02-14). "Plan 9 moves out from Lucent licence space". TheRegister. Retrieved 2014-04-20.
  92. ^ "Plan9 Foundation". plan9foundation.org. Retrieved 2021-10-13.

External links edit

  • 9p.io: Archived mirror of the original official Plan 9 Web site at plan9.bell-labs.com 2021-05-24 at the Wayback Machine
  • 9fans: Semi-official mailing list for Plan 9 users and developers
  • Plan 9 Foundation

plan, from, bell, labs, distributed, operating, system, which, originated, from, computing, science, research, center, csrc, bell, labs, 1980s, built, unix, concepts, first, developed, there, late, 1960s, since, 2000, plan, been, free, open, source, final, off. Plan 9 from Bell Labs is a distributed operating system which originated from the Computing Science Research Center CSRC at Bell Labs in the mid 1980s and built on UNIX concepts first developed there in the late 1960s Since 2000 Plan 9 has been free and open source The final official release was in early 2015 Plan 9 from Bell LabsGlenda the Plan 9 mascot in a space suit drawn by Renee French 1 2 rio default user interface of Plan 9 from Bell LabsDeveloperPlan 9 Foundation succeeding Bell LabsWritten inDialect of ANSI CWorking stateCurrent 3 4 Source modelOpen sourceInitial release1992 32 years ago 1992 universities 1995 29 years ago 1995 general public Final releaseFourth Edition January 10 2015 9 years ago 2015 01 10 5 Repository9p wbr io wbr sources wbr plan9 wbr sys 6 Marketing targetOperating systems research networked environments general purpose useAvailable inEnglishPlatformsx86 Vx32 x86 64 MIPS DEC Alpha SPARC PowerPC ARMKernel typeMonolithic 7 Influenced byResearch Unix Cambridge Distributed Computing System 8 Defaultuser interfacerio rcLicense2021 MIT 9 10 2014 GPL 2 0 only 11 2002 LPL 1 02 12 2000 Plan 9 OSL 13 14 15 16 Succeeded byInfernoOther derivatives and forksOfficial websitep9f wbr orgUnder Plan 9 UNIX s everything is a file metaphor is extended via a pervasive network centric filesystem and the cursor addressed terminal based I O at the heart of UNIX like operating systems is replaced by a windowing system and graphical user interface without cursor addressing although rc the Plan 9 shell is text based The name Plan 9 from Bell Labs is a reference to the Ed Wood 1957 cult science fiction Z movie Plan 9 from Outer Space 17 The system continues to be used and developed by operating system researchers and hobbyists 18 19 Contents 1 History 2 Design concepts 2 1 9P protocol 2 2 Union directories and namespaces 2 3 Special virtual filesystem 2 3 1 proc 2 3 2 net 2 4 Unicode 2 5 Combining the design concepts 3 Software for Plan 9 3 1 Graphical programs 3 2 Storage system 3 3 Software development 3 4 Unix compatibility 4 Reception 4 1 Comparison to contemporary operating systems 4 2 Impact 4 2 1 Derivatives and forks 5 License 6 See also 7 References 8 External linksHistory edit nbsp Screenshot of Plan 9 installationPlan 9 from Bell Labs was originally developed starting in the late 1980s 19 by members of the Computing Science Research Center at Bell Labs the same group that originally developed Unix and the C programming language 20 The Plan 9 team was initially 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 and Bruce Ellis 21 Plan 9 replaced Unix as Bell Labs s primary platform for operating systems research 22 It explored several changes to the original Unix model that facilitate the use and programming of the system notably in distributed multi user environments After several years of development and internal use Bell Labs shipped the operating system to universities in 1992 Three years later Plan 9 was made available for commercial parties by AT amp T via the book publisher Harcourt Brace With source licenses costing 350 AT amp T targeted the embedded systems market rather than the computer market at large Ritchie commented that the developers did not expect to do much displacement given how established other operating systems had become 23 By early 1996 the Plan 9 project had been put on the back burner by AT amp T in favor of Inferno intended to be a rival to Sun Microsystems Java platform 24 In the late 1990s Bell Labs new owner Lucent Technologies dropped commercial support for the project and in 2000 a third release was distributed under an open source license 25 A fourth release under a new free software license occurred in 2002 26 In early 2015 the final official release of Plan 9 occurred 25 A user and development community including current and former Bell Labs personnel produced minor daily releases in the form of ISO images Bell Labs hosted the development 27 The development source tree is accessible over the 9P and HTTP protocols and is used to update existing installations 28 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 29 As Bell Labs has moved on to later projects in recent years development of the official Plan 9 system had stopped On March 23 2021 development resumed following the transfer of copyright from Bell Labs to the Plan 9 Foundation 10 30 31 Unofficial development for the system also continues on the 9front fork where active contributors provide monthly builds and new functionality So far the 9front fork has provided the system Wi Fi drivers Audio drivers USB support and built in game emulator along with other features 32 33 Other recent Plan 9 inspired operating systems include Harvey OS 34 and Jehanne OS 35 Date Release Comment1992 Plan 9 1st edition Released by Bell Labs to universities1995 Plan 9 2nd edition Released by Bell Labs for non commercial purposes 36 2000 Plan 9 3rd ed Brazil Released by Lucent Technologies under an open source license2002 Plan 9 4th edition Released by Lucent Technologies under a new free software licenseDesign concepts editPlan 9 from Bell Labs is like the Quakers distinguished by its stress on the Inner Light noted for simplicity of life in particular for plainness of speech Like the Quakers Plan 9 does not proselytize Sape J Mullender Pierre G Jansen Real Time in a Real Operating System 37 Plan 9 is a distributed operating system designed to make a network of heterogeneous and geographically separated computers function as a single system 38 In a typical Plan 9 installation users work at terminals running the window system rio and they access CPU servers which handle computation intensive processes Permanent data storage is provided by additional network hosts acting as file servers and archival storage 39 Its designers state that t he foundations of the system are built on two ideas a per process name space and a simple message oriented file system protocol Pike et al 40 The first idea a per process name space means that unlike on most operating systems processes running programs each have their own view of the namespace corresponding to what other operating systems call the file system a single path name may refer to different resources for different processes The potential complexity of this setup is controlled by a set of conventional locations for common resources 41 42 The second idea a message oriented filesystem means that processes can offer their services to other processes by providing virtual files that appear in the other processes namespace The client process s input output on such a file becomes inter process communication between the two processes This way Plan 9 generalizes the Unix notion of the filesystem as the central point of access to computing resources It carries over Unix s idea of device files to provide access to peripheral devices mice removable media etc and the possibility to mount filesystems residing on physically distinct filesystems into a hierarchical namespace but adds the possibility to mount a connection to a server program that speaks a standardized protocol and treat its services as part of the namespace For example the original window system called 8 exploited these possibilities as follows Plan 9 represents the user interface on a terminal by means of three pseudo files mouse which can be read by a program to get notification of mouse movements and button clicks cons which can be used to perform textual input output and bitblt writing to which enacts graphics operations see bit blit The window system multiplexes these devices when creating a new window to run some program in it first sets up a new namespace in which mouse cons and bitblt are connected to itself hiding the actual device files to which it itself has access The window system thus receives all input and output commands from the program and handles these appropriately by sending output to the actual screen device and giving the currently focused program the keyboard and mouse input 39 The program does not need to know if it is communicating directly with the operating system s device drivers or with the window system it only has to assume that its namespace is set up so that these special files provide the kind of input and accept the kind of messages that it expects Plan 9 s distributed operation relies on the per process namespaces as well allowing client and server processes to communicate across machines in the way just outlined For example the cpu command starts a remote session on a computation server The command exports part of its local namespace including the user s terminal s devices mouse cons bitblt to the server so that remote programs can perform input output using the terminal s mouse keyboard and display combining the effects of remote login and a shared network filesystem 39 40 9P protocol edit Main article 9P protocol All programs that wish to provide services as files to other programs speak a unified protocol called 9P Compared to other systems this reduces the number of custom programming interfaces 9P is a generic medium agnostic byte oriented protocol that provides for messages delivered between a server and a client 43 The protocol is used to refer to and communicate with processes programs and data including both the user interface and the network 44 With the release of the 4th edition it was modified and renamed 9P2000 26 Unlike most other operating systems Plan 9 does not provide special application programming interfaces such as Berkeley sockets X resources or ioctl system calls to access devices 43 Instead Plan 9 device drivers implement their control interface as a file system so that the hardware can be accessed by the ordinary file input output operations read and write Consequently sharing the device across the network can be accomplished by mounting the corresponding directory tree to the target machine 17 Union directories and namespaces edit Plan 9 allows the user to collect the files called names from different directory trees in a single location The resulting union directory behaves as the concatenation of the underlying directories the order of concatenation can be controlled if the constituent directories contain files having the same name a listing of the union directory ls or lc will simply report duplicate names 45 Resolution of a single path name is performed top down if the directories top and bottom are unioned into u with top first then u name denotes top name if it exists bottom name only if it exists and top name does not exist and no file if neither exists No recursive unioning of subdirectories is performed so if top subdir exists the files in bottom subdir are not accessible through the union 46 A union directory can be created by using the bind command bind arm bin bin bind a acme bin arm bin bind b usr alice bin bin In the example above arm bin is mounted at bin the contents of arm bin replacing the previous contents of bin Acme s bin directory is then union mounted after bin and Alice s personal bin directory is union mounted before When a file is requested from bin it is first looked for in usr alice bin then in arm bin and then finally in acme bin arm The separate process namespaces thus usually replace the notion of a search path in the shell A path environment variable path still exists in the rc shell the shell mainly used in Plan 9 however rc s path environment variable conventionally only contains the bin and directories and modifying the variable is discouraged instead adding additional commands should be done by binding several directories together as a single bin 47 39 Unlike in Plan 9 the path environment variable of Unix shells should be set to include the additional directories whose executable files need to be added as commands Furthermore the kernel can keep separate mount tables for each process 37 and can thus provide each process with its own file system namespace Processes namespaces can be constructed independently and the user may work simultaneously with programs that have heterogeneous namespaces 40 Namespaces may be used to create an isolated environment similar to chroot but in a more secure way 43 Plan 9 s union directory architecture inspired 4 4BSD and Linux union file system implementations 45 although the developers of the BSD union mounting facility found the non recursive merging of directories in Plan 9 too restrictive for general purpose use 46 Special virtual filesystem edit proc edit nbsp Listing processes with list contents of directory ls lc command 48 in procMain article procfs Instead of having system calls specifically for process management Plan 9 provides the proc file system Each process appears as a directory containing information and control files which can be manipulated by the ordinary file IO system calls 8 The file system approach allows Plan 9 processes to be managed with simple file management tools such as ls and cat however the processes cannot be copied and moved as files 8 net edit Plan 9 does not have specialised system calls or ioctls for accessing the networking stack or networking hardware Instead the net file system is used Network connections are controlled by reading and writing control messages to control files Sub directories such as net tcp and net udp are used as an interface to their respective protocols 8 Unicode edit Further information UTF 8 and Comparison of Unicode encodings To reduce the complexity of managing character encodings Plan 9 uses Unicode throughout the system The initial Unicode implementation was ISO IEC 10646 1 1993 Ken Thompson invented UTF 8 which became the native encoding in Plan 9 The entire system was converted to general use in 1992 49 UTF 8 preserves backwards compatibility with traditional null terminated strings enabling more reliable information processing and the chaining of multilingual string data with Unix pipes between multiple processes Using a single UTF 8 encoding with characters for all cultures and regions eliminates the need for switching between code sets 50 Combining the design concepts edit Though interesting on their own the design concepts of Plan 9 were supposed to be most useful when combined For example to implement a network address translation NAT server a union directory can be created overlaying the router s net directory tree with its own net Similarly a virtual private network VPN can be implemented by overlaying in a union directory a net hierarchy from a remote gateway using secured 9P over the public Internet A union directory with the net hierarchy and filters can be used to sandbox an untrusted application or to implement a firewall 43 In the same manner a distributed computing network can be composed with a union directory of proc hierarchies from remote hosts which allows interacting with them as if they are local When used together these features allow for assembling a complex distributed computing environment by reusing the existing hierarchical name system 8 Software for Plan 9 editFurther information List of Plan 9 applications As a benefit from the system s design most tasks in Plan 9 can be accomplished by using ls cat grep cp and rm utilities in combination with the rc shell the default Plan 9 shell Factotum is an authentication and key management server for Plan 9 It handles authentication on behalf of other programs such that both secret keys and implementation details need only be known to Factotum 51 Graphical programs edit nbsp Plan 9 running acme and rcUnlike Unix Plan 9 was designed with graphics in mind 44 After booting a Plan 9 terminal will run the rio windowing system in which the user can create new windows displaying rc 52 Graphical programs invoked from this shell replace it in its window The plumber provides an inter process communication mechanism which allows system wide hyperlinking Sam and acme are Plan 9 s text editors 53 Storage system edit Plan 9 supports the Kfs Paq Cwfs FAT and Fossil file systems The last was designed at Bell Labs specifically for Plan 9 and provides snapshot storage capability It can be used directly with a hard drive or backed with Venti an archival file system and permanent data storage system Software development edit The distribution package for Plan 9 includes special compiler variants and programming languages and provides a tailored set of libraries along with a windowing user interface system specific to Plan 9 54 The bulk of the system is written in a dialect of C ANSI C with some extensions and some other features left out The compilers for this language were custom built with portability in mind according to their author they compile quickly load slowly and produce medium quality object code 55 A concurrent programming language called Alef was available in the first two editions but was then dropped for maintenance reasons and replaced by a threading library for C 56 57 Unix compatibility edit Though Plan 9 was supposed to be a further development of Unix concepts compatibility with preexisting Unix software was never the goal for the project Many command line utilities of Plan 9 share the names of Unix counterparts but work differently 48 Plan 9 can support POSIX applications and can emulate the Berkeley socket interface through the ANSI POSIX Environment APE that implements an interface close to ANSI C and POSIX with some common extensions the native Plan 9 C interfaces conform to neither standard It also includes a POSIX compatible shell APE s authors claim to have used it to port the X Window System X11 to Plan 9 although they do not ship X11 because supporting it properly is too big a job 58 Some Linux binaries can be used with the help of a linuxemu Linux emulator application however it is still a work in progress 59 Vice versa the Vx32 virtual machine allows a slightly modified Plan 9 kernel to run as a user process in Linux supporting unmodified Plan 9 programs 60 Reception editComparison to contemporary operating systems edit In 1991 Plan 9 s designers compared their system to other early nineties operating systems in terms of size showing that the source code for a minimal working albeit not very useful version was less than one fifth the size of a Mach microkernel without any device drivers 5899 or 4622 lines of code for Plan 9 depending on metric vs 25530 lines The complete kernel comprised 18000 lines of code 39 According to a 2006 count the kernel was then some 150 000 lines but this was compared against more than 4 8 million in Linux 43 Within the operating systems research community as well as the commercial Unix world other attempts at achieving distributed computing and remote filesystem access were made concurrently with the Plan 9 design effort These included the Network File System and the associated vnode architecture developed at Sun Microsystems and more radical departures from the Unix model such as the Sprite OS from UC Berkeley Sprite developer Brent Welch points out that the SunOS vnode architecture is limited compared to Plan 9 s capabilities in that it does not support remote device access and remote inter process communication cleanly even though it could have had the preexisting UNIX domain sockets which can essentially be used to name user level servers been integrated with the vnode architecture 41 One critique of the everything is a file communication by textual message design of Plan 9 pointed out limitations of this paradigm compared to the typed interfaces of Sun s object oriented operating system Spring Plan 9 constrains everything to look like a file In most cases the real interface type comprises the protocol of messages that must be written to and read from a file descriptor This is difficult to specify and document and prohibits any automatic type checking at all except for file errors at run time A path name relative to a process implicit root context is the only way to name a service Binding a name to an object can only be done by giving an existing name for the object in the same context as the new name As such interface references simply cannot be passed between processes much less across networks Instead communication has to rely on conventions which are prone to error and do not scale Roscoe emphasis in the original 61 A later retrospective comparison of Plan 9 Sprite and a third contemporary distributed research operating system Amoeba found that the environments they Amoeba and Sprite build are tightly coupled within the OS making communication with external services difficult Such systems suffer from the radical departure from the UNIX model which also discourages portability of already existing software to the platform The lack of developers the very small range of supported hardware and the small even compared to Plan 9 user base have also significantly slowed the adoption of those systems In retrospect Plan 9 was the only research distributed OS from that time which managed to attract developers and be used in commercial projects long enough to warrant its survival to this day Mirtchovski Simmonds and Minnich 62 Impact edit nbsp The wmii X window manager was inspired by acme a text editor from the Plan 9 project 63 Plan 9 demonstrated that an integral concept of Unix that every system interface could be represented as a set of files could be successfully implemented in a modern distributed system 52 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 Linux have implemented 9P2000 Plan 9 s protocol for accessing remote files and have adopted features of rfork Plan 9 s process creation mechanism 64 Additionally in Plan 9 from User Space several of Plan 9 s applications and tools including the sam and acme editors have been ported to Unix and Linux systems and have achieved some level of popularity Several projects seek to replace the GNU operating system programs surrounding the Linux kernel with the Plan 9 operating system programs 65 66 The 9wm window manager was inspired by 8 the older windowing system of Plan 9 67 wmii is also heavily influenced by Plan 9 63 In computer science research Plan 9 has been used as a grid computing platform 68 62 and as a vehicle for research into ubiquitous computing without middleware 69 In commerce Plan 9 underlies Coraid storage systems However Plan 9 has never approached Unix in popularity and has been primarily a research tool I t looks like 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 Eric S Raymond 17 Other factors that contributed to low adoption of Plan 9 include the lack of commercial backup the low number of end user applications and the lack of device drivers 52 53 Plan 9 proponents and developers claim that the problems hindering its adoption have been solved that its original goals as a distributed system development environment and research platform have been met and that it enjoys moderate but growing popularity citation needed Inferno through its hosted capabilities has been a vehicle for bringing Plan 9 technologies to other systems as a hosted part of heterogeneous computing grids 70 71 72 Several projects work to extend Plan 9 including 9atom and 9front These forks augment Plan 9 with additional hardware drivers and software including an improved version of the Upas e mail system the Go compiler Mercurial version control system support and now also a git implementation and other programs 19 73 Plan 9 was ported to the Raspberry Pi single board computer 74 75 The Harvey project attempts to replace the custom Plan 9 C compiler with GCC to leverage modern development tools such as GitHub and Coverity and speed up development 76 Since Windows 10 version 1903 the Windows Subsystem for Linux implements the Plan 9 Filesystem Protocol as a server and the host Windows operating system acts as a client 77 Derivatives and forks edit Inferno is a descendant of Plan 9 and shares many design concepts and even source code in the kernel particularly around devices and the Styx 9P2000 protocol Inferno shares with Plan 9 the Unix heritage from Bell Labs and the Unix philosophy Many of the command line tools in Inferno were Plan 9 tools that were translated to Limbo 9atom 78 augments the Plan 9 distribution with the addition of a 386 PAE kernel an amd64 cpu and terminal kernel nupas extra pc hardware support IL and Ken s fs 79 80 9front 81 is a fork of Plan 9 It was started to remedy a perceived lack of devoted development resources inside Bell Labs and has accumulated various fixes and improvements 9legacy 82 is an alternative distribution It includes a set of patches based on the current Plan 9 distribution Akaros 83 is designed for many core architectures and large scale SMP systems Harvey OS 84 is an effort to get the Plan 9 code working with gcc and clang JehanneOS 85 is an experimental OS derived from Plan 9 Its userland and modules are mostly derived from 9front its build system from Harvey OS and its kernel is a fork of the Plan9 9k 64 bit Plan9 kernel NIX 86 better source needed is a fork of Plan9 aimed at multicore systems and cloud computing node9 87 is a scripted derivative of Plan9 Inferno that replaces the Limbo programming language and DIS virtual machine with the Lua language and LuaJit virtual machine It also replaces the Inferno per platform hosted I O with Node js libuv eventing and I O for consistent cross platform hosting It s a proof of concept that demonstrates that a distributed OS can be constructed from per process namespaces and generic cloud elements to construct a single system image of arbitrary size Plan B 88 designed to work in distributed environments where the set of available resources is different at different points in time Originally based on the third edition Plan 9 kernel Plan B was moved into user space to run on current Plan 9 systems 89 90 91 License editStarting with the release of Fourth edition in April 2002 26 the full source code of Plan 9 from Bell Labs is freely available under Lucent Public License 1 02 which is considered to be an open source license by the Open Source Initiative OSI free software license by the Free Software Foundation and it passes the Debian Free Software Guidelines 43 In February 2014 the University of California Berkeley was authorized by the current Plan 9 copyright holder Alcatel Lucent to release all Plan 9 software previously governed by the Lucent Public License Version 1 02 under the GPL 2 0 only 92 On March 23 2021 ownership of Plan 9 transferred from Bell Labs to the Plan 9 Foundation 93 and all previous releases have been relicensed to the MIT License 10 See also edit nbsp Free and open source software portalAlef programming language Rendezvous Plan 9 Inferno operating system Redox operating system Minix HelenOSReferences edit Plan 9 from Bell Labs Lucent Technologies 2006 Glenda the Plan 9 Bunny Retrieved 2008 12 02 Plan 9 Foundation Activities plan9foundation org Retrieved 23 March 2021 9legacy 9legacy org Retrieved 23 March 2021 plan9checksums Bell Labs Archived from the original on 2017 06 01 Retrieved 2019 07 25 Sat Jan 10 04 04 55 EST 2015 plan9 iso bz2 GPLv2 source code Crawford Diane 1999 Forum Communications of the ACM 42 8 Association for Computing Machinery ACM 11 15 doi 10 1145 310930 310939 ISSN 0001 0782 S2CID 263897745 a b c d e Pike R Presotto D Dorward S Flandrena B Thompson K Trickey H Winterbottom P Plan 9 from Bell Labs Bell Labs Lucent Technologies Retrieved 2016 02 26 Plan 9 License p9f org Archived from the original on 14 June 2021 Retrieved 14 June 2021 a b c Sorace Anthony Transfer of Plan 9 to the Plan 9 Foundation marc info Archived from the original on 13 April 2021 Retrieved 2020 04 14 Plan9License akaros cs berkeley edu Archived from the original on 13 February 2014 Retrieved 14 June 2021 The University of California Berkeley has been authorised by Alcatel Lucent to release all Plan 9 software previously governed by the Lucent Public License Version 1 02 under the GNU General Public License Version 2 Lucent Public License Version 1 02 plan9 bell labs com Archived from the original on 3 October 2003 Retrieved 14 June 2021 Plan 9 Open Source License Version 1 4 09 10 02 plan9 bell labs com Archived from the original on 18 December 2002 Retrieved 14 June 2021 Plan 9 Open Source License Version 1 2 10 29 00 plan9 bell labs com Archived from the original on 6 December 2000 Retrieved 14 June 2021 Plan 9 Open Source License Version 1 1 09 20 00 plan9 bell labs com Archived from the original on 26 October 2000 Retrieved 14 June 2021 Plan 9 Open Source License Agreement plan9 bell labs com Archived from the original on 16 August 2000 Retrieved 14 June 2021 a b c Raymond Eric S 2003 09 17 Plan 9 The Way the Future Was The Art of UNIX Programming Addison Wesley ISBN 0 13 142901 9 Retrieved 2007 05 07 Robertson James 2011 07 16 Plan 9 Forked Continues as 9front OSNews Retrieved 2011 12 31 a b c 9atom Archived from the original on 2013 07 26 Retrieved 2011 11 11 From the inventors of UNIX system comes Plan 9 from Bell Labs Press release Lucent Technologies 1995 07 18 Archived from the original on 2006 02 09 McIlroy Doug Mar 1995 Preface Bell Labs 2nd ed Lucent Technologies Retrieved 2016 02 26 Proven Liam 2022 03 29 The weird world of non C operating systems www theregister com Retrieved 2022 09 01 Lee Yvonne L 24 July 1995 AT amp T Bell Labs ships Plan 9 OS for embedded systems InfoWorld Pontin Jason 19 February 1996 AT amp T reveals plans for Java competitor InfoWorld p 3 a b Bell Labs A Complete Guide History Products Founding and More History Computer 2021 11 14 Retrieved 2022 09 01 a b c Loli Queru Eugenia 2002 04 29 Bell Labs Releases New Version of Plan 9 OSNews Retrieved 2011 12 31 How to contribute Bell Labs Lucent Technologies Retrieved 2011 11 30 Staying up to date Bell Labs Lucent Technologies Retrieved 2019 07 24 Plan 9 Additional Software 2009 Retrieved 2016 03 06 Weldon Marcus 23 March 2021 Plan 9 from Bell Labs in Cyberspace Nokia Bell Labs Retrieved 23 March 2021 Sharwood Simon Bell Labs transfers copyright of influential Plan 9 OS to new foundation The Register Retrieved 2021 03 24 FQA 1 Introduction To 9front fqa 9front org Retrieved 2018 02 15 Proven Liam New version of Plan 9 fork 9front released The Register Retrieved 2022 11 05 Harvey OS harvey os org Retrieved 2018 02 15 Jehanne jehanne h k it Retrieved 2023 01 08 Announcement of the first release to general public 9 fans 1995 07 16 Archived from the original on 2008 07 06 a b Mullender Sape J Jansen Pierre G 2004 02 26 Real Time in a Real Operating System In Herbert Andrew J Sparck Jones Karen eds Computer systems theory technology and applications a tribute to Roger Needham Springer Science Business Media p 211 ISBN 978 0 387 20170 2 Retrieved 2011 12 24 Hancock Brian 2003 Reinventing Unix an introduction to the Plan 9 operating system Library Hi Tech 21 4 MCB UP 471 76 doi 10 1108 07378830310509772 a b c d e Presotto Dave Pike Rob Thompson Ken Trickey Howard Plan 9 A Distributed System Proc Spring 1991 EurOpen Conference CiteSeerX 10 1 1 41 9192 a b c Pike R Presotto D Thompson K Trickey H Winterbottom P The Use of Name Spaces in Plan 9 Bell Labs Retrieved 2016 02 26 a b Welch Brent 1994 A comparison of three distributed file system architectures Vnode Sprite and Plan 9 Computing Systems 7 2 175 199 CiteSeerX 10 1 1 46 2817 namespace 4 Plan 9 Programmer s Manual Volume 1 a b c d e f Pereira Uriel M 2006 The Unix Spirit set Free Plan 9 from Bell Labs AVI FOSDEM Retrieved 2011 12 02 Uriel The Unix Spirit set Free Plan 9 from Bell Labs PDF Bell Labs Archived from the original PDF on 2007 11 28 Retrieved 2007 11 14 a b Minnich Ron 2005 Why Plan 9 is not dead yet And What we can learn from it PDF Los Alamos National Laboratory Archived from the original PDF on 2016 02 25 Retrieved 2016 02 26 a b Valerie Aurora 2009 03 25 Union file systems Implementations part I LWN net Retrieved 2011 12 05 a b Pendry Jan Simon McKusick Marshall Kirk 1995 Union Mounts in 4 4BSD Lite Proc Winter USENIX Conf Duff Tom 18 Rc The Plan 9 Shell a href Template Cite book html title Template Cite book cite book a work ignored help PDF a b UNIX to Plan 9 command translation Bell Labs Lucent Technologies Retrieved 2011 12 02 Pike Rob 2003 04 30 UTF 8 History Retrieved 2006 04 27 Lunde Ken Jan 1999 CJKV information processing O Reilly Media p 466 ISBN 978 1 56592 224 2 Retrieved 2011 12 23 Cox R Grosse E Pike R Presotto D Quinlan S Security in Plan 9 Bell Labs Lucent Technologies Retrieved 2016 02 26 a b c Hudson Andrew 2006 07 19 Investigating the Plan 9 Operating System OSNews Retrieved 2011 12 31 a b An interview with Russ Cox The Setup Uses this 2011 04 09 Archived from the original on 2011 12 28 Retrieved 2012 01 01 Dixon Rod 2004 Open source software law Artech House p 213 ISBN 978 1 58053 719 3 Retrieved 2011 12 25 Thompson Ken February 1992 A new C Compiler PDF Australian UNIX Systems User Group Newsletter 13 1 Kensington AU AUUG 31 41 ISSN 1035 7521 Retrieved 2011 12 25 Pike Rob Rio Design of a Concurrent Window System PDF Retrieved 8 March 2013 thread 2 Plan 9 Programmer s Manual Volume 1 Trickey Howard APE The ANSI POSIX Environment Bell Labs Lucent Technologies Retrieved 2016 02 26 Linux emulation Bell Labs Lucent Technologies Retrieved 2016 02 26 Ford Bryan Cox Russ 2008 Vx32 Lightweight User level Sandboxing on the x86 USENIX Annual Tech Conf pp 293 306 CiteSeerX 10 1 1 212 9353 Roscoe Timothy 1995 The Structure of a Multi Service Operating System PDF Ph D University of Cambridge pp 22 23 a b Mirtchovski Andrey Simmonds Rob Minnich Ron 2004 Plan 9 an integrated approach to grid computing Proc 18th Int l Parallel and Distributed Processing Symp IEEE CiteSeerX 10 1 1 97 122 a b window manager improved 2 suckless org Archived from the original on 2011 12 31 Retrieved 2012 01 02 wmii has a 9p filesystem interface and supports classic and tiling acme like window management Torvalds Linus 1999 The Linux edge Open Sources Voices from the Open Source Revolution O Reilly ISBN 1 56592 582 3 Glendix Bringing the beauty of Plan 9 to Linux Retrieved 2011 12 01 Plan 9 From Gentoo Plan 9 Meets Gentoo Gentoo Linux Archived from the original on 2012 12 20 Retrieved 2011 12 01 The 9wm Window Manager 9wm Retrieved 2012 01 02 9wm is an X window manager which attempts to emulate the Plan 9 window manager 8 1 2 as far as possible within the constraints imposed by X 9grid Bell Labs Lucent Technologies Archived from the original on 2006 03 14 Retrieved 2006 03 28 Ballesteros Francisco J Guardiola Gorka Soriano Enrique Leal Algara Katia 2005 Traditional systems can work well for pervasive applications A case study Plan 9 from Bell Labs becomes ubiquitous IEEE Intl Conf on Pervasive Computing and Communications CiteSeerX 10 1 1 109 8131 Vita Nuova Supplies Inferno Grid to Evotec OAI PDF Press release Vita Nuova 2004 05 18 Retrieved 2006 03 28 Rutgers University Libraries Install Inferno Data Grid PDF Press release Vita Nuova 2004 05 12 Retrieved 2006 03 28 The University of York Department of Biology install Vita Nuova s Inferno Data Grid PDF Press release Vita Nuova 2004 05 04 Retrieved 2006 03 28 9FRONT ORG THE PLAN FELL OFF Retrieved 2021 10 14 Hayward David 2013 05 09 Raspberry Pi operating systems 5 reviewed and rated TechRadar Archived from the original on June 7 2013 Retrieved 2014 04 20 How to install Plan 9 on a Raspberry Pi eLinux Retrieved 2014 11 16 Jurado Alvaro Fernandez Rafael du Colombier David Minnich Ron Nyrhinen Aki Floren John Harvey PDF USENIX ATC BOF session What s new for WSL in Windows 10 version 1903 Windows Command Line Tools For Developers February 16 2019 9atom Archived from the original on 11 November 2020 a href Template Cite web html title Template Cite web cite web a CS1 maint unfit URL link 9atom quanstro net Archived from the original on 9 June 2018 Retrieved 15 June 2023 9atom ArchiveOS 3 May 2022 Retrieved 15 June 2023 9FRONT ORG THE PLAN FELL OFF 9legacy Akaros Harvey OS JehanneOS 17 November 2021 NIX 21 November 2020 node9 GitHub 14 January 2022 Plan B 26 November 2020 Download Plan 9 wiki 9p io Retrieved 15 June 2023 Ballesteros Francisco J Muzquiz Gorka Guardiola Algara Katia Leal Soriano Enrique de las Heras Quiros Pedro Castro Eva M Leonardo Andres Arevalo Sergio February 2004 Plan B Boxes for networked resources Journal of the Brazilian Computer Society 10 1 33 44 doi 10 1007 BF03192352 S2CID 6766935 Ballesteros F J Soriano E Leal K Guardiola G 2006 Plan B An Operating System for Ubiquitous Computing Environments Fourth Annual IEEE International Conference on Pervasive Computing and Communications PERCOM 06 pp 126 135 doi 10 1109 PERCOM 2006 43 ISBN 0 7695 2518 0 S2CID 1730651 Retrieved 15 June 2023 Sharwood Simon 2014 02 14 Plan 9 moves out from Lucent licence space TheRegister Retrieved 2014 04 20 Plan9 Foundation plan9foundation org Retrieved 2021 10 13 External links edit nbsp Wikimedia Commons has media related to Plan 9 from Bell Labs 9p io Archived mirror of the original official Plan 9 Web site at plan9 bell labs com Archived 2021 05 24 at the Wayback Machine 9fans Semi official mailing list for Plan 9 users and developers Plan 9 Foundation Retrieved from https en wikipedia org w index php title Plan 9 from Bell Labs amp oldid 1215238799, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.