Plan 9 is a new computer operating system and associated utilities. It has been built over the past several years by the Computing Science Research Center of AT&T Bell Laboratories, the same group that developed Unix, C, and C++.
Plan 9 is a distributed system. In the most general configuration, it uses three kinds of components: terminals that sit on users' desks, file servers that store permanent data, and other servers that provide faster CPUs, user authentication, and network gateways. These components are connected by various kinds of networks, including Ethernet, Datakit, specially-built fiber networks, ordinary modem connections, and ISDN. In typical use, users interact with applications that run either on their terminals or on CPU servers, and the applications get their data from the file servers. The design, however, is highly configurable; it escapes from specific models of networked workstations and central machine service.
Plan 9 is itself an operating system; it doesn't run as an application under another system. It was written from the ground up and doesn't include other people's code. Although the OS's interface to applications is strongly influenced by the approach of Unix, it's not a replacement for Unix; it is a new design.
Plan 9 exploits, as far as possible, three basic technical ideas: first, all the system objects present themselves as named files that are manipulated by read/write operations; second, all these files may exist either locally or remotely, and respond to a standard protocol; third, the file system name space, the set of objects visible to a program, is dynamically and individually adjustable for each of the programs running on a particular machine. The first two of these ideas were foreshadowed in Unix and to a lesser extent in other systems, while the third is new: it allows a new engineering solution to the problems of distributed computing and graphics. Plan 9's approach means that application programs don't need to know where they are running; where, and on what kind of machine, to run a Plan 9 program is an economic decision that doesn't affect the construction of the application itself.
Plan 9's approach improves generality and modularity of application design by encouraging servers that make any kind of information appear to users and to applications just like collections of ordinary files. Here are a few examples.
The Plan 9 window system (called 8½) is small and clean in part because its design is centered on providing a virtual keyboard, mouse, and screen to each of the applications running under it, while using the real keyboard, mouse, and screen supplied by the operating system. That is besides creating, deleting, and arranging the windows themselves its job is be a server for certain resources used by its clients. As a side benefit, this approach means that the window system can run recursively in one of its windows, or even on another machine.
Plan 9 users do Internet FTP by starting a local program that makes all the files on any FTP server (anywhere on the Internet) appear to be local files. Plan 9 PC users with a DOS/Windows partition on their disk can use the files stored there. ISO 9660 CD-ROMs and cpio tapes all behave as if they were native file systems. The complete I/O behavior and performance of any application can be monitored by running it under a server that sees all its interactions. The debugger can examine a program on another machine even if it is running on a different hardware architecture.
Another example is the approach to networks. In Plan 9, each network presents itself as a set of files for connection creation, I/O, and control. A common semantic core for the operations is agreed upon, together with a general server for translating human-readable addresses to network-specific ones. As a result, applications don't care which kind of network (TCP/IP, ISDN, modem, Datakit) they are using. In fact, applications don't even know whether the network they are using is physically attached to the machine the application is running on: the network interface files can be imported from another machine.
The Plan 9 kernel and applications are highly portable. Plan 9 runs on four major machine architectures: Intel 386/486/Pentium, MIPS, SPARC, and Motorola 68020. Data structures and protocols are designed for distributed computing on machines of diverse design. Except for necessarily machine-dependent parts of the kernel, the compilers, and a few libraries, there is a single source representation for everything.
Yes. Our CPU and file servers are both multi-processor machines.
No, not in the conventional sense. It is written in a strict dialect of ISO/ANSI C. In a wider sense, its general design of making all its `objects' look like files to which one talks in a well-defined protocol shows a related approach.
Plan 9 comes with its own compilers for C and other languages, together with all the commands and program-development tools originally pioneered in the Unix environment. It also provides newly designed software. Alef is a new language that provides threads, inter-process and inter-machine communication through typed channels, and abstract data types. Acid is a programmable debugger that understands multiple-process programs, and the programs it is debugging may be running on a hardware plaform different from its own. Acme is a new user interface in which any word on the screen can be interpreted as a command by clicking on it, and any string can specify a file to be displayed.
Plan 9 comes with a library that makes it easy to import POSIX-conforming applications. There is also a library that emulates the Berkeley socket interface.
As might be expected, the answer depends on what you want to do. The kernel, the window system, and the basic applications will run comfortably on a laptop PC with 8MB of memory. A single, self-booting demo diskette will hold the kernel, window system, editor, and basic Ethernet/Internet interface. A 4-diskette set will hold a system sufficient for simple program development (compiler, loader, debugger, more utilities).
On the other hand, the system can grow. Our own installation at AT&T Bell Laboratories includes multiprocessor SGI Power Series and Challenge machines as CPU servers, and a 350GB Sony WORM disk jukebox for the file server.
The standard interface doesn't use icons; Plan 9 people tend to be text-oriented. But the window system, the editor, and the general feel are very mousy, very point-and-click: Plan 9 windows are much more than a bunch of glass TTYs. The system supports the graphics primitives and libraries of basic software for building GUIs, and if need arises, the X window system has been ported to Plan 9.
The character set is Unicode, the 16-bit set unified with the ISO 10646 standard for representing languages used throughout the world. The system and its utilities support Unicode using a byte-stream representation (called UTF-8) that is compatible with ASCII. On Plan 9, one may grep for Cyrillic strings in a file with a Japanese name and see the results appear correctly on the terminal. If you were using Plan 9, you would see the Japanese and Cyrillic characters right here!
Plan 9's authentication design is akin to that of MIT's Kerberos. Passwords are never sent over networks; instead encrypted tickets are obtained from an authentication server. It doesn't have the concept of `set UID' programs. The file server doesn't run user programs, and except at its own console, it doesn't allow access to protected files except by authenticated owners. The concept of a special `root' user is gone.
The distribution includes a server that runs on Unix-compatible systems and understands the native Plan 9 remote file protocol, so that file systems of Unix machines may be imported into Plan 9. It also includes an NFS-compatible server that runs on Plan 9, so that Plan 9 file systems may be accessed from other systems that support NFS. It includes the full suite of Internet protocols.
At the moment, mostly our own group. There are a few hundred educational licensees within universities, and there is exploratory use in commercial companies, both within AT&T and outside. Most visibly, the Netlib service that supplies mathematical and other software and documents to the public via FTP, mail, and WWW uses a Plan 9 server. This service includes the AT&T 800-number directory by which WWW users can find the toll-free numbers of AT&T 800-number advertisers.
It was chosen in our tradition of selecting names that make marketeers wince. We also wished to pay homage to the famous film, Plan 9 From Outer Space.
Plan 9 was developed within the research organization of AT&T Bell Laboratories as an exercise in understanding the principles and mechanisms useful in designing operating systems, and not as a product as such. In this way it is analogous to the Unix efforts of the past. Nevertheless, to succeed, it must be used, both within our company and outside. We believe that making it more generally available under reasonable terms will enhance its impact, and have been working with the AT&T Software Solutions group to find the best ways of doing this. A general distribution of the technology for non-commercial purposes is available, and we would like to license it for commercial purposes on terms to be negotiated. Just as in the early stages of deployment of Unix, these arrangements will be `as-is,' with no support promised.
Current plans call for this distribution to consist of a CD-ROM containing the entire source and binary for all platforms, a two-volume manual set, and four diskettes. The diskettes contain a binary-only version of the system that can be installed on a PC to demonstrate the window system, many of the applications including Internet communications, and the Intel-architecture C and Alef compilers.
The Internet site
plan9.att.com
stores a collection of papers about the system in the
plan9
directory; they are available for
anonymous FTP.
Copyright © 1995 AT&T. All rights reserved.