/sys/doc/ Documentation archive

Plan 9 From Bell Labs

Third Release Notes

June 7, 2000

Copyright © 2000 Lucent Technologies Inc.

All Rights Reserved

The third release of the Plan 9 operating system from Bell Labs is something of a snapshot of the current system. This differs from the previous, 1995 release, which was a more coordinated, well-defined release of an already-out-of-date system. Also, the previous releases were distributed on fixed media, while this release is being done over the web. The other major difference is that the third release is licensed under an open source agreement, which we hope will encourage people to experiment with it.

Beyond that, there are innumerable little changes throughout the code. Although superficially it is the same environment, there is hardly an aspect of the system that has not been redesigned, rewritten, or replaced. The following is an incomplete list of changes.

∙ The list of architectures has changed; more compilers are included and the list of kernels has changed. There is solid support for Intel x86 multiprocessors. Also, although the sources are available for other architectures, the binaries and libraries are built only for the Intel x86 architectures. Kernel source is available for x86, Mips, DEC Alpha, and Power PC architectures. Compilers also exist for AMD 29000, Motorola MC68000 and MC68020, Intel i960, and SPARC. (Unlike the the last release, no SPARC kernel exists for the current system.) The compilers and related tools have been made easier to port to Unix and Windows.

∙ The kernel now has a file cache to improve I/O performance. Other kernel changes include the replacement of the streams interface with a simpler, faster, but less flexible I/O queue structure. The x86 kernels support PCI and PCMCIA devices.

∙ Network management has been simplified and generalized. DNS supports a resolver mode and the DNS server is now solid. DHCP is supported both at the client and server ends. The system can handle multiple IP stacks, which are also no longer Ethernet-specific.

∙ The organization of disks in the kernel has been unified, providing a consistent interface to all disks and controllers: SCSI or ATAPI, magnetic or CD-ROM.

∙ File offsets, such as in the seek system call, are now 64-bit values. The 1995 release defined the type Length for the x86 as

typedef union


    char    clength[8];

    vlong   vlength;



        long    hlength;

        long    length;


} Length;

which is the wrong byte order. Now, for all architectures, Length is well handled by a vlong (long long) type, although for compatibility it’s still held in a union:

typedef union


    vlong   length;

} Length;

∙ The kernel now maintains a file name associated with each open file or directory, which can be cheaply recovered by the fd2path system call. Plan 9 now does a much better job with .. (dot-dot). On a related note, a description of a process’s name space may be read with the ns file in /proc, or by the ns command.

∙ The security model is the same, although the key format has changed. If you have an old key file, use auth/convkeys2 (see auth(8)) to update it. There are new libraries for mulitprecision arithmetic and security.

∙ The graphics model is very different. It is based on the Porter-Duff compositing algebra rather than bitblt, and the system supports everything from bitmaps to true-color displays. Some of the graphics drivers exploit hardware acceleration.

∙ Coupled to the graphics changes, the image and font file formats have changed. They can represent a wider range of pixel formats and compress the data. Also the white/black sense of value is reversed (zero is now black; pixels represent light, not ink). Most of the tools can handle the old format, but they all write the new format only.

∙ The user interface now incorporates plumbing, a language-driven way for applications to communicate. See plumb(6) for information.

∙ Building on plumbing and a program that presents the mail box as a file system, Plan 9 now has convenient support for MIME mail messages.

has been replaced by rio, which has a similar appearance but a different architecture. Although still a file server, it is much more efficient: the kernel driver multiplexes graphics output so rio is not in the display path. Rio handles input and window control only.

∙ PC booting is more sophisticated. PCs can now boot Plan 9 directly from the disk without running DOS.

∙ Alef is gone. It was deemed too difficult to maintain two sets of compilers and libraries for all architectures. Alef programs were translated into C, with the help of a new thread library that preserves much of Alef’s functionality, but none of its syntax.

∙ Mothra is gone. There is no web browser included in this release, but something may well appear before long.

∙ The fb (frame buffer) suite is gone. Most of its tools are supplanted by new ones, such as page, jpg, and togif.

∙ Also gone from this release are the games and support for international input (ktrans etc.). Both may return.

∙ New things include an implementation of ssh, an IMAP4 server, and some spam-filtering software (see scanmail(8)).

There’s lots more. If you have problems, mail 9trouble@plan9.bell-labs.com. Please don’t mail us individually.

Good Luck!