Plan 9 from Bell Labs
ARM | |
Kernel type | Monolithic[7] |
---|---|
Influenced by | Research Unix, Cambridge Distributed Computing System[8] |
Default user interface | rio / rc |
License | 2021: MIT[9][10] 2014: GPL-2.0-only[11] 2002: LPL-1.02[12] 2000: Plan 9 OSL[13][14][15][16] |
Succeeded by | Inferno Other derivatives and forks |
Official website | p9f |
Plan 9 from Bell Labs is a
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
History
Plan 9 from Bell Labs was originally developed, starting in the late 1980s,
Plan 9 replaced Unix as Bell Labs's primary platform for operating systems research.
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
A user and development community, including current and former
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
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
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
Unlike most other operating systems, Plan 9 does not provide special
Union directories and namespaces
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
Special virtual filesystem
/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
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
To reduce the complexity of managing
Combining the design concepts
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
As a benefit from the system's design, most tasks in Plan 9 can be accomplished by using
Graphical programs
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
Sam and acme are Plan 9's text editors.[53]
Storage system
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
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
Unix compatibility
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
Plan 9 can support
Reception
Comparison to contemporary operating systems
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
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
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
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 checkingat 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
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.
[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
Since
Derivatives and forks
- 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.
- NIXbetter 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
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
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
- Alef (programming language)
- Rendezvous (Plan 9)
- Inferno (operating system)
- Redox (operating system)
- Minix
- HelenOS
References
- ^ "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".
- 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.
- ^ 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&T Bell Labs ships Plan 9 OS for embedded systems". InfoWorld.
- ^ Pontin, Jason (19 February 1996). "AT&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.
- ^ ISBN 978-0-387-20170-2. Retrieved 2011-12-24.
- .
- ^ 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.
- ^ CiteSeerX 10.1.1.46.2817.
- ^ 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.
{{cite book}}
:|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.
- 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.
- ISBN 978-1-58053-719-3. Retrieved 2011-12-25.
- ISSN 1035-7521. Retrieved 2011-12-25.
- ^ Pike, Rob. "Rio: Design of a Concurrent Window System" (PDF). Retrieved 8 March 2013.
- ^ 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.
- 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.
- ^ 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.
- 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.
- Lucent Technologies. Archived from the originalon 2006-03-14. Retrieved 2006-03-28.
- CiteSeerX 10.1.1.109.8131.
- Vita Nuova. 2004-05-18. Retrieved 2006-03-28.
- Vita Nuova. 2004-05-12. Retrieved 2006-03-28.
- 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, Álvaro; Fernández, 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.
{{cite web}}
: 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.
- S2CID 6766935.
- S2CID 1730651. Retrieved 15 June 2023.
- TheRegister. Retrieved 2014-04-20.
- ^ "Plan9 Foundation". plan9foundation.org. Retrieved 2021-10-13.
External links
- 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