Plan 9 from Bell Labs facts for kids
![]() Glenda, the Plan 9 mascot in a space suit, drawn by Renée French
|
|
![]() rio, default user interface of Plan 9 from Bell Labs
|
|
Company / developer | Plan 9 Foundation, succeeding Bell Labs |
---|---|
Programmed in | Dialect of ANSI C |
Working state | Current |
Source model | Open source |
Initial release | 1992 (universities) /1995 (general public) |
Discontinued | Fourth Edition / January 10, 2015 |
Marketing target | Operating systems research, networked environments, general-purpose use |
Available language(s) | English |
Supported platforms | x86 / Vx32, x86-64, MIPS, DEC Alpha, SPARC, PowerPC, ARM |
Kernel type | Monolithic |
Influenced by | Research Unix, Cambridge Distributed Computing System |
Default user interface | rio / rc |
License | 2021: MIT 2014: GPL-2.0-only 2002: LPL-1.02 2000: Plan 9 OSL |
Plan 9 from Bell Labs is a special kind of operating system that works across a network of computers. It was created at Bell Labs in the mid-1980s. This system built on ideas from UNIX, another operating system developed there earlier. Since 2000, Plan 9 has been available for free and anyone can use or change its code. The last official version was released in early 2015.
In Plan 9, the idea that "everything is a file" is taken even further. This means that many things, even network connections, are treated like files. Instead of old-fashioned text-based computer screens, Plan 9 uses a windowing system and a graphical user interface. This makes it easier to use, even though its main command line tool, called rc, still uses text commands.
The name Plan 9 from Bell Labs comes from a famous old science fiction movie called Plan 9 from Outer Space. Today, computer scientists and hobbyists still use and work on Plan 9.
How Plan 9 Started
Plan 9 from Bell Labs began in the late 1980s. It was developed by the same group at Bell Labs that created Unix and the C programming language. The first team leaders included Rob Pike, Ken Thompson, Dave Presotto, and Phil Winterbottom. Dennis Ritchie, who was a big name in computing, also supported the project. Many other smart developers helped over the years, like Brian Kernighan and Tom Duff.
Plan 9 became the main system for operating system research at Bell Labs. It explored new ways to make computer systems easier to use, especially when many users share resources. In 1992, Bell Labs shared Plan 9 with universities. Then, in 1995, it was made available to the public.
By 1996, Bell Labs started focusing on a new project called Inferno. Later, in 2000, Plan 9 was released as open-source software. This meant anyone could use and change its code for free. A fourth version came out in 2002, and the final official release was in early 2015.
Even after the official releases stopped, a community of users and developers kept working on Plan 9. They made small updates every day. In 2021, the Plan 9 Foundation took over the copyright from Bell Labs. This means development has started again. There's also a separate version called 9front, which adds new features like Wi-Fi support and game emulators.
Plan 9 Release Timeline
Date | Release | What Happened |
---|---|---|
1992 | Plan 9 1st edition | Released by Bell Labs to universities |
1995 | Plan 9 2nd edition | Released by Bell Labs for non-commercial use |
2000 | Plan 9 3rd ed. (Brazil) | Released by Lucent Technologies as open source |
2002 | Plan 9 4th edition | Released by Lucent Technologies under a new free software license |
How Plan 9 Works
Plan 9 is a distributed operating system. This means it's designed to make many different computers, even far apart, work together like one big system. Usually, people using Plan 9 work at simple computers called terminals. These terminals run a window system called rio. The main work, like heavy calculations, happens on separate "CPU servers." All the permanent information is stored on other computers called file servers.
The creators of Plan 9 built it on two main ideas:
- Each running program (called a process) has its own view of the computer's files.
- There's a simple way for programs to talk to each other using a "file system protocol."
The first idea means that a file path might point to different things for different programs. The second idea means that programs can offer their services to other programs by creating "virtual files." When one program reads or writes to such a virtual file, it's actually talking to another program. This is how Plan 9 makes everything act like a file, even things that aren't usually files, like network connections or parts of the user interface.
For example, the window system in Plan 9 uses this idea. It creates three special "pseudo-files" for each window: mouse, cons, and bitblt.
- mouse tells programs about mouse movements and clicks.
- cons handles text input and output.
- bitblt lets programs draw graphics on the screen.
The window system manages these files so that each program thinks it's talking directly to the computer's hardware. This makes it simple for programs to work with the screen, keyboard, and mouse.
Plan 9's distributed nature also uses this system. For instance, the cpu command lets you start a session on a remote computer. It shares your local computer's mouse, keyboard, and display with the remote computer. This means programs running far away can still use your screen and keyboard, just like they were running on your own machine.
The 9P Protocol
All programs that offer services as "files" use a special language called 9P. This helps reduce the number of different ways programs need to talk to each other. 9P is a simple language for sending messages between a server and a client. It's used for everything, from talking to programs to managing the user interface and network. In 2002, a newer version called 9P2000 was released.
Unlike most other operating systems, Plan 9 doesn't have special commands just for talking to devices. Instead, device drivers (the software that controls hardware) act like file systems. So, you can access hardware like a mouse or a network card by simply reading from or writing to files. This makes it easy to share devices across a network.
Combining Directories and Namespaces
Plan 9 lets you combine files from different folders into one "union directory." This union directory acts like a single folder containing everything from the original folders. If two original folders have files with the same name, Plan 9 looks for the file in a specific order.
For example, you can combine different "bin" (binary) folders into one main /bin folder. When you ask for a program from /bin, Plan 9 will look in your personal bin folder first, then in other shared bin folders. This replaces the idea of a "search path" that other operating systems use.
Also, each program can have its own view of the file system. This means you can run different programs at the same time, and each one can have its own unique set of accessible files. This feature can also be used to create a secure, isolated space for programs, similar to a "chroot" environment.
The idea of union directories in Plan 9 has inspired similar features in other operating systems like Linux.
Special Virtual Filesystems
/proc
Instead of using special commands to manage running programs, Plan 9 uses a file system called /proc. Each running program appears as a folder inside /proc. These folders contain files that give you information about the program or let you control it.
This file system approach means you can manage programs using simple file commands like `ls` (list files) and `cat` (show file content).
/net
Plan 9 doesn't have special commands for accessing network connections. Instead, it uses the /net file system. You control network connections by reading and writing to special "control files" within /net. For example, /net/tcp and /net/udp are used to interact with different network protocols.
Unicode Support
To make handling different languages easier, Plan 9 uses Unicode throughout the system. Ken Thompson created UTF-8, which is a way to encode Unicode characters. UTF-8 became the main way Plan 9 handles text in 1992. This means Plan 9 can work with text from all cultures and regions without needing to switch between different character sets.
How All These Ideas Work Together
The design ideas of Plan 9 are most powerful when used together. For instance, to set up a network address translation (NAT) server, you can create a union directory that combines the router's network files with its own. Similarly, you can create a virtual private network (VPN) by combining network files from a remote computer.
These features allow you to build complex computer networks by simply combining different parts of the file system.
Programs for Plan 9
Plan 9's design means that many tasks can be done using simple commands like ls, cat, grep, cp, and rm, along with the rc shell.
Factotum is a program that helps with security and managing passwords for other programs.
Graphical Programs
Plan 9 was made with graphics in mind, unlike older Unix systems. When you start Plan 9, it runs the rio windowing system. Inside rio, you can open new windows and run the rc command line. Graphical programs then take over their window.
The plumber is a tool that allows different programs to communicate with each other, creating system-wide links.
Sam and acme are the main text editors used in Plan 9.
Storage System
Plan 9 supports several file systems for storing data, including Kfs, Paq, Cwfs, FAT, and Fossil. Fossil was designed specifically for Plan 9 and can take "snapshots" of your data, like saving a moment in time. It can also work with Venti, which is a system for long-term data storage.
Software Development
Plan 9 comes with its own special compilers and programming tools. Most of the system is written in a version of the C programming language. The compilers are designed to be easy to move to different computers.
Unix Compatibility
Plan 9 was meant to be a new step beyond Unix, so it wasn't designed to be fully compatible with existing Unix programs. Many Plan 9 commands have the same names as Unix commands but work differently.
However, Plan 9 can run some POSIX applications (a standard for Unix-like systems) using something called the ANSI/POSIX Environment (APE). This environment helps Plan 9 act more like a Unix system for certain programs. There's also an experimental "linuxemu" that lets some Linux programs run on Plan 9.
Licensing Plan 9
Since April 2002, the full code for Plan 9 from Bell Labs has been available for free under the Lucent Public License 1.02. This license is considered an open-source license, meaning anyone can use, study, change, and share the software.
In February 2014, the University of California, Berkeley, was allowed to release all Plan 9 software under the GPL-2.0-only. This is another popular free software license.
Finally, on March 23, 2021, the ownership of Plan 9 moved from Bell Labs to the Plan 9 Foundation. All past versions of Plan 9 are now licensed under the MIT License, which is a very simple and open license.
See also
In Spanish: Plan 9 para niños
- Alef (programming language)
- Rendezvous (Plan 9)
- Inferno (operating system)
- Redox (operating system)
- Minix
- HelenOS