Plan 9 From Bell Labs
 
 Fourth Release Notes
 
 April, 2002
 
 updated June, 2003
 
 Copyright © 2002-2003 Lucent Technologies Inc.
 
 All Rights Reserved
 
 The fourth release of the Plan 9 operating system from Bell Labs
 packages a major overhaul of the system at every level. From the
 underlying file system protocol, 9P, through the kernel, libraries,
 and applications, almost everything has been modified and, in many
 cases, redesigned or rewritten.
 
 The most significant change is that 9P has been redesigned to address
 a number of shortcomings, most important, its previous inability to
 handle long file names. Unfortunately, squeezing long names onto the
 disks of existing file servers is a messy business that we’re still
 grappling with, so at the moment fs (4) and kfs (4) can’t yet handle
 long names, although they do talk the new protocol. (In fact, they
 talk both old and new, as required, to ease transition.) In the
 meantime, there is a workaround — lnfs (4) — and many of the other
 file servers such as ramfs (4) and u9fs (4) work just fine with long
 names. It’s only the old disk-resident file servers that don’t. The
 new file server fossil (4) handles supports long names and many other
 features. The older servers are now deprecated.
 
 The following is a partial list of the major changes throughout the
 system.
 
 ∙ The file system protocol, 9P, has been reworked. It now has
 variable-length names, so it can handle long names but also is more
 compact when handling short ones. It uses a different format that is
 easily parsed, eliminating the need for the old aux/fcall utility, and
 delegates its authentication duties to an external agent, factotum.
 
 ∙ Security has been a focus of attention. A new security agent,
 factotum (4), manages passwords and other secrets and, coupled with a
 new secure file store secstore (8), enables secure single sign-on.
 
 ∙ Cpu, import, and exportfs all encrypt their connections now, and
 since they use the new 9P they also use new network port numbers. A
 new service aan (1) is used by import to make its network connections
 more reliable in the face of network outages. The old ports still
 work, through the agency of a protocol conversion filter srvold9p (4).
 
 ∙ We are phasing out the IL protocol since it doesn’t handle
 long-distance connections well (and long-distance networks don’t
 handle it well, either). IL is still used by fs (4) but TCP has become
 the standard protocol for all other services.
 
 ∙ The software for the new network-resident secure block store, venti
 (8), is included with this distribution. The new file server fossil
 (4) uses Venti rather than a WORM as its permanent block
 repository/backup medium. It is still being developed, but is mature
 enough that a handful of users throughout the world are using it as
 their primary file server.
 
 ∙ The need to handle longer file names triggered a rethinking of the
 way the system handles strings in general. The kernel is now more
 explanatory when it gives an error message and more consistent in how
 it handles strings such as commands to devices. The interfaces to many
 of the system calls, such as errstr (2) and wait (2) all had to change
 as a result, as did the library interface to read directories, stat
 (2) and its relatives.
 
 ∙ The formatted I/O package described in print (2) and fmtinstall (2)
 has been redesigned. Although the basic interface is unchanged, it now
 runs without locks and has an internal buffer management mechanism
 that means print no longer needs a large on-stack buffer. The
 interface for writing custom print verbs and custom formatted I/O
 routines has also been greatly improved.
 
 ∙ The thread library thread (2) has been completely rewritten. The
 main visible change is that, coupled with the changes to printing,
 threadprint is gone; you can just use print or fprint at will.
 
 ∙ Support for electronic mail has been extended in many ways and now
 includes some new spam filtering tools, much better (and more
 standard) handling of MIME messages, the ability to render incoming
 HTML mail, and much more.
 
 There are so many changes to the programming interfaces of the system
 that they are described in a separate document, entitled Changes to
 the Programming Environment in the Fourth Release of Plan 9. Please
 read it before you start updating your own software to run under the
 new system.
 
 The installation method has also changed and we’re moving towards a
 new method for maintaining updates. The Plan 9 Wiki (
 http://plan9.bell-labs.com/wiki/plan9) and Usenet group (
 comp.os.plan9) are the places to visit to learn more and stay current.
 In particular, the installation notes are now maintained in the Wiki;
 the traditional papers on installation and start-up are gone.
 
 There’s lots more new stuff. If you have problems, mail
 9trouble@plan9.bell-labs.com or, better, check the wiki
 http://plan9.bell-labs.com/wiki/plan9 or ask the Usenet newsgroup
 comp.os.plan9.
 
 Good Luck!