summaryrefslogtreecommitdiff
path: root/static/plan9-4e/man8
diff options
context:
space:
mode:
Diffstat (limited to 'static/plan9-4e/man8')
-rw-r--r--static/plan9-4e/man8/0intro.88
-rw-r--r--static/plan9-4e/man8/9load.8407
-rw-r--r--static/plan9-4e/man8/9pcon.8160
-rw-r--r--static/plan9-4e/man8/INDEX.8157
-rw-r--r--static/plan9-4e/man8/INDEX.html.8237
-rw-r--r--static/plan9-4e/man8/Makefile3
-rw-r--r--static/plan9-4e/man8/apm.8111
-rw-r--r--static/plan9-4e/man8/auth.8194
-rw-r--r--static/plan9-4e/man8/boot.8258
-rw-r--r--static/plan9-4e/man8/booting.8158
-rw-r--r--static/plan9-4e/man8/buildindex.862
-rw-r--r--static/plan9-4e/man8/checkarenas.834
-rw-r--r--static/plan9-4e/man8/checkindex.852
-rw-r--r--static/plan9-4e/man8/cpurc.867
-rw-r--r--static/plan9-4e/man8/cron.8111
-rw-r--r--static/plan9-4e/man8/dhcpd.8272
-rw-r--r--static/plan9-4e/man8/drawterm.8124
-rw-r--r--static/plan9-4e/man8/fmtarenas.864
-rw-r--r--static/plan9-4e/man8/fmtindex.860
-rw-r--r--static/plan9-4e/man8/fmtisect.850
-rw-r--r--static/plan9-4e/man8/fs.8678
-rw-r--r--static/plan9-4e/man8/fsconfig.8249
-rw-r--r--static/plan9-4e/man8/httpd.8196
-rw-r--r--static/plan9-4e/man8/init.887
-rw-r--r--static/plan9-4e/man8/ipconfig.8205
-rw-r--r--static/plan9-4e/man8/ipserv.8239
-rw-r--r--static/plan9-4e/man8/kfscmd.8198
-rw-r--r--static/plan9-4e/man8/listen.8172
-rw-r--r--static/plan9-4e/man8/lp.8126
-rw-r--r--static/plan9-4e/man8/mk9660.8231
-rw-r--r--static/plan9-4e/man8/mkfs.8187
-rw-r--r--static/plan9-4e/man8/mkpaqfs.852
-rw-r--r--static/plan9-4e/man8/mksacfs.838
-rw-r--r--static/plan9-4e/man8/mouse.8120
-rw-r--r--static/plan9-4e/man8/na.833
-rw-r--r--static/plan9-4e/man8/ndb.8459
-rw-r--r--static/plan9-4e/man8/newuser.8119
-rw-r--r--static/plan9-4e/man8/nfsserver.8164
-rw-r--r--static/plan9-4e/man8/pcmcia.823
-rw-r--r--static/plan9-4e/man8/ping.8146
-rw-r--r--static/plan9-4e/man8/plan9.ini.8815
-rw-r--r--static/plan9-4e/man8/ppp.8275
-rw-r--r--static/plan9-4e/man8/prep.8657
-rw-r--r--static/plan9-4e/man8/qer.8226
-rw-r--r--static/plan9-4e/man8/rdarena.830
-rw-r--r--static/plan9-4e/man8/reboot.820
-rw-r--r--static/plan9-4e/man8/replica.8303
-rw-r--r--static/plan9-4e/man8/scanmail.8447
-rw-r--r--static/plan9-4e/man8/scuzz.8370
-rw-r--r--static/plan9-4e/man8/secstore.847
-rw-r--r--static/plan9-4e/man8/securenet.8128
-rw-r--r--static/plan9-4e/man8/snoopy.8170
-rw-r--r--static/plan9-4e/man8/stats.8145
-rw-r--r--static/plan9-4e/man8/swap.830
-rw-r--r--static/plan9-4e/man8/timesync.895
-rw-r--r--static/plan9-4e/man8/tlssrv.838
-rw-r--r--static/plan9-4e/man8/udpecho.816
-rw-r--r--static/plan9-4e/man8/update.8127
-rw-r--r--static/plan9-4e/man8/venti.8196
-rw-r--r--static/plan9-4e/man8/vga.8189
60 files changed, 10635 insertions, 0 deletions
diff --git a/static/plan9-4e/man8/0intro.8 b/static/plan9-4e/man8/0intro.8
new file mode 100644
index 00000000..f96a521b
--- /dev/null
+++ b/static/plan9-4e/man8/0intro.8
@@ -0,0 +1,8 @@
+.TH INTRO 8
+.SH NAME
+intro \- introduction to system administration
+.SH DESCRIPTION
+This manual section describes commands for system administration
+as well as various utility programs necessary for the system
+but not routinely invoked
+by a user.
diff --git a/static/plan9-4e/man8/9load.8 b/static/plan9-4e/man8/9load.8
new file mode 100644
index 00000000..bffcb43c
--- /dev/null
+++ b/static/plan9-4e/man8/9load.8
@@ -0,0 +1,407 @@
+.TH 9LOAD 8
+.SH NAME
+9load, ld \- PC bootstrap program
+.SH SYNOPSIS
+.I "(Under MS-DOS)
+.br
+[
+.I drive
+:][
+.I path
+.RB ] ld
+[
+.I 9load
+]
+.SH DESCRIPTION
+.I 9load
+and
+.I ld
+are programs that reside in a FAT file system and bootstrap Plan 9.
+.I 9load
+loads the kernel, but it cannot be run from DOS; use
+.I ld
+to bootstrap (by starting
+.IR 9load )
+if DOS is running.
+.I 9load
+is run automatically by the boot procedures described below;
+it cannot be run directly by hand.
+There are three bootstrap sequences:
+.IP \-
+BIOS, MBR, disk partition PBS,
+.IR 9load ,
+kernel
+.IP \-
+BIOS, floppy PBS,
+.IR 9load ,
+kernel
+.IP \-
+BIOS, MBR, DOS,
+.IR ld ,
+.IR 9load ,
+kernel.
+.PP
+Details follow.
+.PP
+.I 9load
+is a bootstrap program that loads and starts a program,
+typically the kernel, on a PC.
+It is run by the PC partition boot sector program (PBS),
+which usually resides in the first
+sector of the active partition.
+A copy of the Plan 9 PBS is kept in
+.BR /386/pbs ,
+but due to the ``cylinder-head-sector'' (CHS) addressing mode of old BIOSes, it can only
+operate up to 8.5GB into the disk.
+Plan 9 partitions further into the disk
+can only be booted using
+.BR /386/pbslba ,
+and then only if the machine's BIOS supports
+linear block addressing (LBA) mode for disk transfers.
+.PP
+When booting from floppy or hard disk, the BIOS loads the
+first sector of the medium at location 0x7C00. In the
+case of a floppy, this is the PBS. In the case of a hard
+disk it it the master boot record (MBR).
+The MBR copies itself to address
+.BR 0x600 ,
+finds the active partition and loads its PBS at address
+.BR 0x7C00 .
+A copy of the Plan 9 MBR is kept in
+.BR /386/mbr ;
+some commercial MBRs cannot read sectors
+past 2GB.
+The Plan 9 MBR can read sectors up to 8.5GB into
+the disk, and further if the BIOS supports LBA.
+The single file
+.B /386/mbr
+detects whether the BIOS supports LBA and
+acts appropriately, defaulting to CHS mode
+when LBA is not present.
+The PBSs cannot do this due to code size considerations.
+The Plan 9 MBR is suitable for booting non-Plan 9
+operating systems,
+and (modulo the large disk constraints just described)
+non-Plan 9 MBRs are suitable for booting Plan 9.
+.PP
+Thus the default sequence is: BIOS, MBR, PBS,
+.IR 9load ,
+kernel.
+.PP
+Because it contains many device drivers for different
+disks and networks,
+.I 9load
+is larger than 64K and cannot be run as a DOS
+.RB `` .com ''
+executable.
+A stripped-down version that knows about disks but not networks,
+called
+.I ld
+(really
+.BR ld.com ),
+fits in 64K and can be used under DOS to load and start a program (default
+.IR 9load )
+from the FAT16 partition.
+Its command line argument is of the same format as the
+.I bootfile
+specifiers described below.
+This profusion of loaders is unfortunate, but at least
+.I ld
+and
+.I 9load
+are compiled from the same source.
+.PP
+.I 9load
+begins execution at address
+.B 0x80010000
+(64K) and
+loads the
+.I bootfile
+at the entry address specified by the header,
+usually
+.BR 0x80100020 .
+After loading, control is passed to the entry location.
+.PP
+In summary,
+Plan 9 can be booted on a PC two different ways:
+either by booting MS-DOS and using
+.I ld
+to start
+.I 9load
+in the appropriate directory,
+or by booting directly from a Plan 9 boot floppy or disk
+partition
+prepared using
+.B format
+to install the appropriate files and bootstrap sectors
+(see
+.IR prep (8)).
+.PP
+The
+.IR bootfile ,
+which may be compressed with
+.IR gzip (1),
+can be specified to
+.I 9load
+as a
+.B bootfile=
+entry in
+.IR plan9.ini ,
+or if booting from the ethernet, by a BOOTP server.
+If the
+.B plan9.ini
+file contains multiple
+.B bootfile=
+entries,
+.I 9load
+will present a numerical menu of the choices; type
+the corresponding number to select an entry.
+.PP
+The format of the
+.I bootfile
+name is
+.IB device ! file
+or
+.IB device ! partition ! file\f1.
+If
+.BI ! file
+is omitted, the default for the particular
+.I device
+is used.
+Supported
+.I devices
+are
+.TF \fLethern
+.TP
+.BI fd n
+An MS-DOS floppy disk.
+.I N
+specifies the floppy drive, either
+0 or 1.
+The
+.I bootfile
+is the contents of the MS-DOS
+.IR file .
+There is no default file.
+For compatibility with hard disks, a
+.I partition
+may be given, but only
+.B dos
+is recognized:
+.BI fd0!dos! file\f1.
+.TP
+.BI ether n
+Ethernet.
+.I N
+specifies the Ethernet device number.
+If a
+.I partition
+is specified, it is taken to be the name of a host machine
+from which to load the kernel.
+.I file
+is determined by the
+.B /lib/ndb
+(see
+.IR ndb (6))
+entry for this PC.
+.TP
+.BI sd Cn
+Non-floppy disk.
+The device name format is described in
+.IR sd (3).
+A
+.I partition
+must be given and must
+name a partition containing a FAT file system.
+The name
+.B dos
+refers to the first DOS partition on a given device.
+It is common for Plan 9 partitions to contain a small
+FAT file system for configuration.
+By convention, this partition is called
+.BR 9fat .
+There is no default partition or pathname.
+.PD
+.PP
+When
+.I 9load
+starts running at physical address 0x10000,
+it switches to 32-bit mode.
+It then double maps the first 16Mb of physical memory to
+virtual addresses 0 and 0x80000000.
+Physical memory from 0x300000 upwards is used as data
+space.
+Next, in order to find configuration information,
+.I 9load
+searches all units on devices
+.BR fd
+and
+.BI sd Cn \fR,
+in that order, for a file called
+.B plan9\eplan9.ini
+or
+.B plan9.ini
+(see
+.IR plan9.ini (8))
+on a partition named
+.B dos
+or
+.BR 9fat .
+If one is found, searching stops and the file is read into memory
+at physical address 0x1200
+where it can be found later by any loaded
+.IR bootfile .
+Some options in
+.B plan9.ini
+are used by
+.IR 9load :
+.TF bootfile=manual
+.TP
+.B console
+.TP
+.B baud
+Specifies the console device and baud rate if not a display.
+.TP
+.BI ether n
+Ethernet interfaces. These can be used to load the
+.I bootfile
+over a network.
+Probing for Ethernet interfaces is too prone to error.
+.TP
+.BI bootfile= bootfile
+Specifies the
+.IR bootfile .
+This option is overridden by a command-line argument.
+.TP
+.B bootfile=auto
+Default.
+.TP
+.B bootfile=local
+Like
+.IR auto ,
+but do not attempt to load over the network.
+.TP
+.B bootfile=manual
+After determining which devices are available for loading from,
+enter prompt mode.
+.PD
+.PP
+When the search for
+.B plan9.ini
+is done,
+.I 9load
+proceeds to determine which bootfile to load.
+If there was no
+.I bootfile
+option,
+.I 9load
+chooses a default
+from the following prioritized device list:
+.EX
+ fd sd ether
+.EE
+.I 9load
+then attempts to load the
+.I bootfile
+unless
+the
+.B bootfile=manual
+option was given, in which case prompt mode is entered immediately.
+If the default device is
+.BR fd ,
+.I 9load
+will prompt the user for input before proceeding with the
+default bootfile load after 5 seconds;
+this prompt is omitted if
+a command-line argument or
+.I bootfile
+option
+was given.
+.PP
+.I 9load
+prints the list of available
+.IR device s
+and
+enters prompt mode on encountering any error
+or if directed to do so by a
+.B bootfile=manual
+option.
+In prompt mode, the user is required to type
+a
+.IB bootfile
+in response to the
+.L "Boot from:
+prompt.
+.PP
+.I 9load
+parses the master boot record and Plan 9 partition tables
+(see
+.IR prep (8)),
+leaving partitioning information appended to the
+in-memory contents of
+.I plan9.ini
+for the
+.IR bootfile .
+This is used by
+.IR sd (3)
+to initialize partitions so that
+.IR kfs (4)
+file systems can be mounted as the root file system.
+A more extensive partitioning is typically done by
+.I fdisk
+and
+.I prep
+as part of
+.I termrc
+or
+.I cpurc
+(see
+.IR cpurc (8)).
+.PP
+A
+control-P
+character typed at any time on the console causes
+.B 9load
+to perform a hardware reset
+(Ctrl-Alt-Del can also be used on a PC keyboard).
+.PP
+When loaded from a PBS (rather than from
+.IR ld.com ),
+.I 9load
+must be contiguously allocated on
+the disk.
+See
+.IR dossrv (4)
+for information on ensuring this.
+.SH FILES
+.RI [ drive :]
+[
+.I path
+.RB ] 9load
+.br
+.RI [ drive :]
+[
+.I path
+.RB ] ld
+.br
+.IB "FAT filesystem" :\eplan9\eplan9.ini
+.br
+.IB "FAT filesystem" :\eplan9.ini
+.SH SOURCE
+.B /sys/src/boot/pc
+.SH "SEE ALSO"
+.IR plan9.ini (8),
+.IR prep (8)
+.SH BUGS
+.PP
+Much of the work done by
+.B 9load
+is duplicated by the loaded kernel.
+.PP
+If
+.I ld
+detects an installed MS-DOS Extended Memory Manager,
+it attempts to de-install it, but the technique
+used may not always work.
+It is safer not to install the Extended Memory Manager before running
+.IR ld .
diff --git a/static/plan9-4e/man8/9pcon.8 b/static/plan9-4e/man8/9pcon.8
new file mode 100644
index 00000000..23ba23ce
--- /dev/null
+++ b/static/plan9-4e/man8/9pcon.8
@@ -0,0 +1,160 @@
+.TH 9PCON 8
+.SH NAME
+9pcon \- 9P to text translator
+.SH SYNOPSIS
+.B aux/9pcon
+[
+.B -cn
+]
+[
+.B -m
+.I msize
+]
+.I service
+.SH DESCRIPTION
+.I 9pcon
+provides a textual interface to
+.IR service ,
+a conventional 9P server.
+By default,
+.I 9pcon
+interprets
+.I service
+as a file to be opened.
+The
+.B -c
+flag causes
+.I 9pcon
+to interpret
+.I service
+as a command to run which will carry out a
+(binary) 9P
+conversation over file descriptors 0 and 1.
+The
+.B -n
+flag
+causes
+.I 9pcon
+to interpret
+.I service
+as a network address to dial.
+.PP
+Once the connection is established,
+.I 9pcon
+prints R-messages as they arrive from the server,
+and sends T-messages as they are typed on standard input.
+There is no prompt.
+Lines beginning with # are ignored.
+The syntax for T-messages is one of:
+.IP
+.B Tversion
+.I msize
+.I version
+.br
+.B Tauth
+.I afid
+.I uname
+.I aname
+.br
+.B Tattach
+.I fid
+.I afid
+.I uname
+.I aname
+.br
+.B Twalk
+.I fid
+.I newfid
+.I wname...
+.br
+.B Topen
+.I fid
+.I mode
+.br
+.B Tcreate
+.I fid
+.I name
+.I perm
+.I mode
+.br
+.B Tread
+.I fid
+.I offset
+.I count
+.br
+.B Twrite
+.I fid
+.I offset
+.I data
+.br
+.B Tclunk
+.I fid
+.br
+.B Tremove
+.I fid
+.br
+.B Tstat
+.I fid
+.br
+.B Twstat
+.I fid
+.I name
+.I uid
+.I gid
+.I mode
+.I mtime
+.I length
+.br
+.B Tflush
+.I oldtag
+.LP
+See
+.IR intro (5)
+for a description of the fields in each message.
+For the most part, the syntax mirrors the description
+of the messages in section 5.
+The exceptions are that
+the tags on the T-messages are added automatically;
+.BR Twalk 's
+.I nwname
+count is inferred from the number of
+.I wnames
+given;
+and
+.BR Twstat 's
+.I dir
+is in expanded form rather than being an opaque byte sequence.
+Note that since commands are parsed with
+.B tokenize
+(see
+.IR getfields (2)),
+it is easy to pass empty strings for absent
+.IR name ,
+.IR uid ,
+and
+.I gid
+fields.
+To ease specifying default integer fields, the
+.B Twstat
+message recognizes
+.B ~0
+in the
+.IR mode ,
+.IR mtime ,
+and
+.I length
+arguments.
+For example,
+.EX
+ Twstat 101 '' '' sys ~0 ~0 ~0
+.EE
+sends a
+.I wstat
+message that attempts to change the group id associated with
+.SH SOURCE
+.B /sys/src/cmd/aux/9pcon.c
+.SH SEE ALSO
+.IR intro (5)
+.SH BUGS
+There should be a flag to wait for responses,
+to facilitate scripting.
diff --git a/static/plan9-4e/man8/INDEX.8 b/static/plan9-4e/man8/INDEX.8
new file mode 100644
index 00000000..6a86e3c4
--- /dev/null
+++ b/static/plan9-4e/man8/INDEX.8
@@ -0,0 +1,157 @@
+0intro 0intro
+intro 0intro
+9load 9load
+ld 9load
+9pcon 9pcon
+apm apm
+auth auth
+auth.srv auth
+changeuser auth
+convkeys auth
+convkeys2 auth
+disable auth
+enable auth
+guard.srv auth
+login auth
+printnetkey auth
+status auth
+wrkey auth
+boot boot
+booting booting
+buildindex buildindex
+checkarenas checkarenas
+checkindex checkindex
+cpurc cpurc
+termrc cpurc
+cron cron
+dhcpd dhcpd
+rarpd dhcpd
+tftpd dhcpd
+drawterm drawterm
+fmtarenas fmtarenas
+fmtindex fmtindex
+fmtisect fmtisect
+exsort fs
+fs fs
+fsconfig fsconfig
+echo httpd
+httpd httpd
+imagemap httpd
+man2html httpd
+save httpd
+init init
+ipconfig ipconfig
+rip ipconfig
+ftpd ipserv
+imap4d ipserv
+ipserv ipserv
+rexexec ipserv
+rlogind ipserv
+telnetd ipserv
+kfscmd kfscmd
+ksync kfscmd
+il17007 listen
+il17008 listen
+il17009 listen
+il17013 listen
+il17031 listen
+il19 listen
+il565 listen
+il566 listen
+il7 listen
+il9 listen
+listen listen
+tcp110 listen
+tcp113 listen
+tcp143 listen
+tcp17007 listen
+tcp17009 listen
+tcp17013 listen
+tcp19 listen
+tcp21 listen
+tcp23 listen
+tcp25 listen
+tcp513 listen
+tcp515 listen
+tcp53 listen
+tcp564 listen
+tcp565 listen
+tcp566 listen
+tcp567 listen
+tcp7 listen
+tcp9 listen
+tcp993 listen
+lp lp
+dump9660 mk9660
+mk9660 mk9660
+mkext mkfs
+mkfs mkfs
+mkpaqfs mkpaqfs
+mksacfs mksacfs
+aux/accupoint mouse
+aux/mouse mouse
+mouse mouse
+na na
+cs ndb
+csquery ndb
+dns ndb
+dnsdebug ndb
+dnsquery ndb
+ipquery ndb
+mkdb ndb
+mkhash ndb
+mkhosts ndb
+ndb ndb
+query ndb
+newuser newuser
+9auth nfsserver
+nfsserver nfsserver
+pcnfsd nfsserver
+portmapper nfsserver
+pcmcia pcmcia
+gping ping
+hogports ping
+ping ping
+traceroute ping
+plan9.ini plan9.ini
+ppp ppp
+pppoe ppp
+pptp ppp
+pptpd ppp
+fdisk prep
+format prep
+mbr prep
+prep prep
+qer qer
+runq qer
+rdarena rdarena
+reboot reboot
+applychanges replica
+applylog replica
+compactdb replica
+replica replica
+updatedb replica
+scanmail scanmail
+testscan scanmail
+scuzz scuzz
+secstore secstore
+secstored secstore
+secuser secstore
+securenet securenet
+snoopy snoopy
+stats stats
+swap swap
+timesync timesync
+tlssrv tlssrv
+udpecho udpecho
+bootfloppy update
+bootplan9 update
+bootwin9x update
+bootwinnt update
+personalize update
+setup.9fat update
+setup.disk update
+setup.kfs update
+update update
+venti venti
+vga vga
diff --git a/static/plan9-4e/man8/INDEX.html.8 b/static/plan9-4e/man8/INDEX.html.8
new file mode 100644
index 00000000..0bb88c67
--- /dev/null
+++ b/static/plan9-4e/man8/INDEX.html.8
@@ -0,0 +1,237 @@
+<HEAD>
+<TITLE>plan 9 man section 8</TITLE>
+</HEAD>
+<BODY>
+<B>[<A HREF="/sys/man/index.html">manual index</A>]</B>
+<H2>Plan 9 from Bell Labs - Section 8 - System Administration</H2>
+<HR>
+<DL>
+<DT><A HREF="/magic/man2html/8/0intro">0intro</A>
+- introduction to system administration
+<DD><TT> intro</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/9load">9load</A>
+- PC bootstrap program
+<DD><TT> 9load, ld</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/9pcon">9pcon</A>
+- 9P to text translator
+<DD><TT> 9pcon</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/apm">apm</A>
+- Advanced Power Management 1.2 BIOS interface
+<DD><TT> apm</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/auth">auth</A>
+- maintain authentication databases
+<DD><TT> changeuser, wrkey, convkeys, convkeys2, printnetkey, status, auth.srv, guard.srv, login, disable, enable</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/boot">boot</A>
+- connect to the root file server
+<DD><TT> boot</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/booting">booting</A>
+- bootstrapping procedures
+<DD><TT> booting</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/buildindex">buildindex</A>
+- rebuild a Venti index
+<DD><TT> buildindex</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/checkarenas">checkarenas</A>
+- check the integrity, and optionally fix, Venti arenas
+<DD><TT> checkarenas</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/checkindex">checkindex</A>
+- check the integrity and optionally fix a Venti index
+<DD><TT> checkindex</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/cpurc">cpurc</A>
+- boot script
+<DD><TT> cpurc, termrc</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/cron">cron</A>
+- clock daemon
+<DD><TT> cron</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/dhcpd">dhcpd</A>
+- Internet booting
+<DD><TT> dhcpd, rarpd, tftpd</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/drawterm">drawterm</A>
+- connect to Plan 9 CPU servers from other operating systems
+<DD><TT> drawterm</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/fmtarenas">fmtarenas</A>
+- format a file into a number of Venti arenas
+<DD><TT> fmtarenas</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/fmtindex">fmtindex</A>
+- format a Venti index
+<DD><TT> fmtindex</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/fmtisect">fmtisect</A>
+- format a Venti index section
+<DD><TT> fmtisect</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/fs">fs</A>
+- file server maintenance
+<DD><TT> fs, exsort</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/fsconfig">fsconfig</A>
+- configuring a file server
+<DD><TT> fsconfig</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/httpd">httpd</A>
+- HTTP server
+<DD><TT> httpd, echo, save, imagemap, man2html</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/init">init</A>
+- initialize machine upon booting
+<DD><TT> init</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/ipconfig">ipconfig</A>
+- Internet configuration and routing
+<DD><TT> ipconfig, rip</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/ipserv">ipserv</A>
+- Internet remote access daemons
+<DD><TT> telnetd, rlogind, rexexec, ftpd, imap4d</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/kfscmd">kfscmd</A>
+- kfs administration
+<DD><TT> kfscmd, ksync</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/listen">listen</A>
+- listen for calls on a network device
+<DD><TT> listen, il7, il9, il19, il565, il566, il17007, il17008, il17009, il17013, il17031, tcp7, tcp9, tcp19, tcp21, tcp23, tcp25, tcp53, tcp110, tcp113, tcp143, tcp513, tcp515, tcp564, tcp565, tcp566, tcp567, tcp993, tcp17007, tcp17009, tcp17013</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/lp">lp</A>
+- PostScript preprocessors
+<DD><TT> lp</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/mk9660">mk9660</A>
+- create an ISO-9660 CD image
+<DD><TT> dump9660, mk9660</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/mkfs">mkfs</A>
+- archive or update a file system
+<DD><TT> mkfs, mkext</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/mkpaqfs">mkpaqfs</A>
+- make a compressed read-only file system
+<DD><TT> mkpaqfs</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/mksacfs">mksacfs</A>
+- make a compressed file system
+<DD><TT> mksacfs</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/mouse">mouse</A>
+- configure a mouse to a port
+<DD><TT> aux/mouse, aux/accupoint</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/na">na</A>
+- assembler for the Symbios Logic PCI-SCSI I/O Processors
+<DD><TT> na</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/ndb">ndb</A>
+- network database
+<DD><TT> query, mkhash, mkdb, cs, csquery, dns, dnsquery, ipquery, dnsdebug, mkhosts</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/newuser">newuser</A>
+- adding a new user
+<DD><TT> newuser</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/nfsserver">nfsserver</A>
+- NFS service
+<DD><TT> nfsserver, portmapper, pcnfsd, 9auth</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/pcmcia">pcmcia</A>
+- identify a PCMCIA card
+<DD><TT> pcmcia</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/ping">ping</A>
+- probe the Internet
+<DD><TT> ping, gping, traceroute, hogports</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/plan9.ini">plan9.ini</A>
+- configuration file for PCs
+<DD><TT> plan9.ini</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/ppp">ppp</A>
+- point to point protocol
+<DD><TT> ppp, pppoe, pptp, pptpd</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/prep">prep</A>
+- prepare hard and floppy diskettes, flashes
+<DD><TT> prep, fdisk, format, mbr</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/qer">qer</A>
+- queue management for spooled files
+<DD><TT> qer, runq</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/rdarena">rdarena</A>
+- extract a Venti arena
+<DD><TT> rdarena</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/reboot">reboot</A>
+- reboot the system upon loss of remote file server connection
+<DD><TT> reboot</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/replica">replica</A>
+- simple client-server replica management
+<DD><TT> applychanges, applylog, compactdb, updatedb</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/scanmail">scanmail</A>
+- spam filters
+<DD><TT> scanmail, testscan</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/scuzz">scuzz</A>
+- SCSI target control
+<DD><TT> scuzz</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/secstore">secstore</A>
+- secstore commands
+<DD><TT> secstored, secuser</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/securenet">securenet</A>
+- Digital Pathways SecureNet Key remote authentication box
+<DD><TT> securenet</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/snoopy">snoopy</A>
+- spy on network packets
+<DD><TT> snoopy</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/stats">stats</A>
+- display graphs of system activity
+<DD><TT> stats</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/swap">swap</A>
+- establish a swap file
+<DD><TT> swap</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/timesync">timesync</A>
+- synchronize the system clock to a time source
+<DD><TT> timesync</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/tlssrv">tlssrv</A>
+- TLS server
+<DD><TT> tlssrv</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/udpecho">udpecho</A>
+- echo UDP packets
+<DD><TT> udpecho</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/update">update</A>
+- administration for local file systems
+<DD><TT> bootfloppy, bootplan9, bootwin9x, bootwinnt, personalize, setup.9fat, setup.disk, setup.kfs, update</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/venti">venti</A>
+- an archival block storage server
+<DD><TT> venti</TT>
+</DT>
+<DT><A HREF="/magic/man2html/8/vga">vga</A>
+- configure a VGA card
+<DD><TT> vga</TT>
+</DT>
+</DL>
diff --git a/static/plan9-4e/man8/Makefile b/static/plan9-4e/man8/Makefile
new file mode 100644
index 00000000..a2af6bc6
--- /dev/null
+++ b/static/plan9-4e/man8/Makefile
@@ -0,0 +1,3 @@
+MAN = $(wildcard *.8)
+
+include ../../mandoc.mk
diff --git a/static/plan9-4e/man8/apm.8 b/static/plan9-4e/man8/apm.8
new file mode 100644
index 00000000..23fdd668
--- /dev/null
+++ b/static/plan9-4e/man8/apm.8
@@ -0,0 +1,111 @@
+.TH APM 8
+.SH NAME
+apm \- Advanced Power Management 1.2 BIOS interface
+.SH SYNOPSIS
+.I (in plan9.ini)
+.B apm0=
+.PP
+bind -a '#P' /dev
+.PP
+.B aux/apm
+[
+.B -d
+.I device
+]
+[
+.B -m
+.I mountpoint
+]
+[
+.B -s
+.I service
+]
+.SH DESCRIPTION
+.I Aux/apm
+presents at
+.I mountpoint
+(default
+.BR /mnt/apm )
+an interface to the APM 1.2 BIOS
+(see
+.IR apm (3))
+.I device
+(the default is to try
+.BR /dev/apm ,
+followed by
+.BR #P/apm ).
+If a
+.I service
+is specified, the interface will be
+posted at
+.BI /srv/ service
+as well.
+.PP
+The directory contains the following files.
+.TP
+.B battery
+Contains one line for each battery in the system.
+Each line lists three fields: the status (a string, one of
+.BR unknown ,
+.BR high ,
+.BR low ,
+.BR critical ,
+or
+.BR charging ),
+the percent charge remaining, and
+an estimate of the amount of time left in seconds.
+If either or both of the last two are unknown,
+the corresponding field will be zero.
+.TP
+.B ctl
+The
+.B ctl
+file is used to set power management modes for
+various parts of the system.
+Control messages are of the form
+.RI `` device " " verb ,''
+where
+.I device
+is one of
+.BR system ,
+.BR display ,
+.BR storage ,
+.BR lpt ,
+.BR eia ,
+.BR network ,
+and
+.BR pcmcia ,
+and
+.I verb is one of
+.BR enable ,
+.BR disable ,
+.BR standby ,
+and
+.BR on .
+.B Enable
+and
+.B disable
+control whether power management is active
+for the device, while
+.B standby
+puts the device into standby mode
+and
+.B on
+brings it back to full power.
+.TP
+.B event
+Reads from this file will block until an APM event
+has occurred.
+A large enough read is guaranteed to return
+an integral number of textual event descriptions, one per line.
+.SH SOURCE
+.B /sys/src/cmd/aux/apm.c
+.br
+.B /acme/bin/Battery
+.SH BUGS
+The verbs
+.B suspend
+and
+.B off
+should be supported but doing so requires
+nontrivial help from the kernel.
diff --git a/static/plan9-4e/man8/auth.8 b/static/plan9-4e/man8/auth.8
new file mode 100644
index 00000000..5aabf0ac
--- /dev/null
+++ b/static/plan9-4e/man8/auth.8
@@ -0,0 +1,194 @@
+.TH AUTH 8
+.SH NAME
+changeuser, wrkey, convkeys, convkeys2, printnetkey, status, auth.srv, guard.srv, login, disable, enable \- maintain authentication databases
+.SH SYNOPSIS
+.B auth/changeuser
+.RB [ -np ]
+.I user
+.PP
+.B auth/wrkey
+.PP
+.B auth/convkeys
+.RB [ -p ]
+.I keyfile
+.PP
+.B auth/convkeys
+.RB [ -p ]
+.I keyfile
+.PP
+.B auth/printnetkey
+.I user
+.PP
+.B auth/status
+.I user
+.PP
+.B auth/enable
+.I user
+.PP
+.B auth/disable
+.I user
+.PP
+.B auth/auth.srv
+.PP
+.B auth/guard.srv
+.PP
+.B auth/login
+.I user
+.SH DESCRIPTION
+These administrative commands run only on the authentication server.
+.IR Changeuser
+manipulates an authentication database file system served by
+.IR keyfs (4)
+and used by file servers.
+There are two authentication databases,
+one holding information about Plan 9 accounts
+and one holding SecureNet keys.
+A
+.I user
+need not be installed in both databases
+but must be installed in the Plan 9 database to connect to a Plan 9 service.
+.PP
+.I Changeuser
+installs or changes
+.I user
+in an authentication database.
+It does not install a user on a Plan 9 file server; see
+.IR fs (8)
+for that.
+.PP
+Option
+.B -p
+installs
+.I user
+in the Plan 9 database.
+.I Changeuser
+asks twice for a password for the new
+.IR user .
+If the responses do not match
+or the password is too easy to guess
+the
+.I user
+is not installed.
+.I Changeuser
+also asks for an APOP secret.
+This secret is used in the APOP (RFC1939),
+CRAM (RFC2195), and
+Microsoft challenge/response protocols used for
+POP3, IMAP, and VPN access.
+.PP
+Option
+.B -n
+installs
+.I user
+in the SecureNet database and prints out a key for the SecureNet box.
+The key is chosen by
+.IR changeuser .
+.PP
+If neither option
+.B -p
+or option
+.B -n
+is given,
+.I changeuser
+installs the
+.I user
+in the Plan 9 database.
+.PP
+.I Changeuser
+prompts for
+biographical information such as email address,
+user name, sponsor and department number and
+appends it to the file
+.B /adm/netkeys.who
+or
+.BR /adm/keys.who .
+.PP
+.I Wrkey
+prompts for a machine key, host owner, and host domain and stores them in
+local non-volatile RAM.
+.PP
+.I Convkeys
+re-encrypts the key file
+.IR keyfile .
+Re-encryption is performed in place.
+Without the
+.B -p
+option
+.I convkeys
+uses the key stored in
+.B /dev/keys
+to decrypt the file, and encrypts it using the new key.
+By default,
+.I convkeys
+prompts twice for the new password.
+The
+.B -p
+forces
+.I convkeys
+to also prompt for the old password.
+The format of
+.I keyfile
+is described in
+.IR keyfs (4).
+.PP
+The format of the key file changed between Release 2
+and 3 of Plan 9.
+.I Convkeys2
+is like
+.IR convkeys .
+However, in addition to rekeying, it converts from
+the previous format to the Release 3 format.
+.PP
+.I Printnetkey
+displays the network key as it should be entered into the
+hand-held Securenet box.
+.PP
+.I Status
+is a shell script that prints out everything known about
+a user and the user's key status.
+.PP
+.I Enable/disable
+are shell scripts that enable/disable both the Plan 9 and
+Netkey keys for individual users.
+.PP
+.I Auth.srv
+is the program, run only on the authentication server, that handles ticket requests
+on IL port 566.
+It is started
+by an incoming call to the server
+requesting a conversation ticket; its standard input and output
+are the network connection.
+.I Auth.srv
+executes the authentication server's end of the appropriate protocol as
+described in
+.IR authsrv (6).
+.PP
+.I Guard.srv
+is similar. It is called whenever a foreign (e.g. Unix) system wants
+to do a SecureNet challenge/response authentication.
+.PP
+.I Login
+allows a user to change his authenticated id to
+.IR user .
+.I Login
+sets up a new namespace from
+.B /lib/namespace
+and exec's
+.IR rc (1)
+under the new id.
+.SH FILES
+.TF /sys/lib/httppasswords
+.TP
+.B /adm/keys.who
+List of users in the Plan 9 database.
+.TP
+.B /adm/netkeys.who
+List of users in the SecureNet database.
+.TP
+.B /sys/lib/httppasswords
+List of realms and passwords for HTTP access.
+.SH SOURCE
+.B /sys/src/cmd/auth
+.SH "SEE ALSO"
+.IR keyfs (4),
+.IR securenet (8)
diff --git a/static/plan9-4e/man8/boot.8 b/static/plan9-4e/man8/boot.8
new file mode 100644
index 00000000..65d292cf
--- /dev/null
+++ b/static/plan9-4e/man8/boot.8
@@ -0,0 +1,258 @@
+.TH BOOT 8
+.SH NAME
+boot \- connect to the root file server
+.SH SYNOPSIS
+.B /boot
+[
+.B -fkm
+]
+[
+.BI -u username
+]
+[
+.IB method ! fs-addr
+]
+.SH DESCRIPTION
+.PP
+.I Boot
+is the first program run after a kernel has been loaded.
+It connects to the file server that will serve the
+root, performs any authentication needed to
+connect to that server, and
+.IR exec (2)'s
+the
+.IR init (8)
+program.
+It is started by the kernel, never run directly by the user. See
+.IR booting (8)
+for information about the process of loading the kernel (and
+.IR boot )
+into memory.
+.PP
+Once loaded, the kernel initializes its data structures and devices.
+It sets the two environment variables
+.B /env/cputype
+and
+.B /env/terminal
+to describe the processor.
+It then binds a place-holder file server,
+.IR root (3),
+onto
+.B /
+and crafts an initial process whose sole function is to
+.IR exec (2)
+.BR /boot ,
+a binary which is compiled into
+.IR root (3).
+.PP
+The command line passed depends
+on the information passed from boot ROM
+to kernel.
+Machines that boot directly from ROM (that is, most machines other than PCs)
+pass the boot line given to the ROM directly to
+.IR boot .
+.PP
+On the PC, each line in the DOS file
+.B plan9.ini
+of the form
+.IB name = value
+is passed to the boot program as an environment
+variable with the same name and value.
+The command line is
+.IP
+.B /386/9dos
+.IB method ! server
+.PP
+(The first argument is ignored by
+.IR boot .)
+.I Boot
+must determine the file
+.I server
+to use
+and a
+.I method
+with which to connect to it.
+Typically this will name a file server on the network,
+or state that the root file system is on local disk and name the partition.
+The complete list of methods is given below.
+.PP
+.I Boot
+must also set a user name to be used
+as the owner of devices and all console
+processes and an encryption key to be used
+when challenged.
+.I Boot
+will prompt for these.
+.PP
+Method and address are prompted for first.
+The prompt lists all valid methods, with the default in brackets, for example:
+.IP
+.EX
+root is from (il, local!#S/sdC0/fs)[il]:
+.EE
+.PP
+A newline picks the default.
+Other possible responses are
+.I method
+or
+.IB method ! address\f1.
+To aid in automatic reboot, the default is automatically
+taken on CPU servers if nothing is typed within 15 seconds.
+.PP
+The other interactions depend on whether the system
+is a
+terminal or a CPU server.
+.SS Terminal
+.PP
+The terminal must have a
+.I username
+to set.
+If none is specified with the
+.B -u
+option,
+.I boot
+will prompt for one on the console:
+.IP
+.EX
+user:
+.EE
+.PP
+The user will also be prompted for a password to
+be used as an encryption key on each
+.IR attach (5):
+.IP
+.EX
+password:
+.EE
+.PP
+With most
+.I methods
+.I boot
+can now connect to the file server.
+However, with the serial line
+.I methods
+.B 9600
+and
+.BR 19200 ,
+the actual mechanics of setting up the complete connection
+are too varied to put into the boot program.
+Instead
+.I boot
+lets the user set up the connection.
+It prints a prompt on the console and then simulates
+a dumb terminal between the user and the serial line:
+.IP
+.EX
+Connect to file system now, type ctrl-d when done.
+(Use the view or down arrow key to send a break)
+.EE
+.PP
+The user can now type at the modem to
+dial the number. What is typed depends on
+the modem and is beyond this discussion.
+.PP
+When the user types a control-D,
+.I boot
+stops simulating a terminal and starts the file
+system protocol over the serial line.
+.PP
+Once connected,
+.I boot
+mounts
+the root file system before
+.B /
+and makes the connection available as
+.B #s/boot
+for subsequent processes to
+.B mount
+(see
+.IR bind (2)).
+.I Boot
+completes by
+.IR exec (2)'ing
+.B /$objtype/init
+.BR -t .
+If the
+.B -m
+option is given it is also passed as an option to
+.IR init .
+.PP
+If the kernel has been built with the cache file system,
+.IR cfs (4),
+the local disk partition
+.BI /dev/sd XX /cache
+(where
+.B XX
+is a unit specifier)
+exists, and the root file system is from a remote server,
+then the kernel will insert a user level cache
+process between the remote server and the local namespace
+that caches all remote accesses on the local partition.
+The
+.B -f
+flag commands
+.B cfs
+to reformat the cache partition.
+.SS CPU Servers
+.PP
+The user owning devices and console processes on CPU servers
+and that user's domain and encryption key are
+read from NVRAM on all machines except PC's.
+PC's keep the information in the disk partition
+.BI /dev/sd XX /nvram\f1.
+If a
+.B -k
+option is given or if no stored information is found
+.I boot
+will prompt for all three items and store them.
+.IP
+.EX
+password:
+authid: bootes
+authdom: research.bell-labs.com
+.EE
+.PP
+The key is used for mutual authentication of the server and its clients.
+The domain and id identify the owner of the key.
+.PP
+Once connected,
+.I boot
+behaves as on the terminal except for
+.IR exec (2)'ing
+.B /$objtype/init
+.BR -c .
+.SS Booting Methods
+.PP
+The methods available to any system depend on what was
+compiled into the kernel.
+The complete list of booting methods are listed below.
+.TP 8
+.B il
+connect via Ethernet using the IL protocol.
+.TP 8
+.B tcp
+connect via Ethernet using the TCP protocol.
+This method is used only if the initial file server
+is on a Unix system.
+.TP 8
+.B local
+connect to the local file system.
+.PP
+For the
+.B il
+and
+.B tcp
+methods,
+the address must be a numeric IP address.
+If no address is specified,
+a file server address will be found from another
+system on the network using the BOOTP protocol and
+the Plan 9 vendor-specific fields.
+.SH FILES
+.B #s/boot
+.SH SOURCE
+.B /sys/src/9/boot
+.SH "SEE ALSO"
+.IR root (3),
+.IR dhcpd (8),
+.IR init (8)
diff --git a/static/plan9-4e/man8/booting.8 b/static/plan9-4e/man8/booting.8
new file mode 100644
index 00000000..a8dd4fdd
--- /dev/null
+++ b/static/plan9-4e/man8/booting.8
@@ -0,0 +1,158 @@
+.TH BOOTING 8
+.SH NAME
+booting \- bootstrapping procedures
+.SH SYNOPSIS
+none
+.SH DESCRIPTION
+This manual page collects the incantations required to bootstrap Plan 9 machines.
+Some of the information here is specific to the installation at Bell Labs;
+some is generic.
+.PP
+If a CPU server is up, BOOTP/DHCP and TFTP will run from there;
+if not, the necessary files and services must be available on a separate machine,
+such as a Unix system, to use these protocols for bootstrapping.
+.PP
+Be sure to read
+.IR boot (8)
+to understand what happens after the kernel is loaded.
+.SS Terminals
+To bootstrap a diskless terminal or a CPU server, a file server must be running.
+PCs can boot from a floppy disk or any FAT16 partition.
+On all the terminals, typing two control-T's followed by a lower-case
+.B r
+reboots the machine;
+other methods of rebooting are mentioned for some machines.
+.SS PCs
+To boot a PC, it is necessary to get
+.B /386/9load
+loaded into memory.
+There are many ways to do this. A Plan 9 boot floppy prepared by
+.B format
+(see
+.IR prep (8))
+will load
+.B 9load
+when the PC is reset or powered on.
+Other methods are described in
+.IR 9load (8).
+.B 9load
+then locates and loads a Plan 9 kernel, using configuration information
+from the file
+.B plan9.ini
+stored in the
+.B 9fat
+configuration partition or on a DOS file system.
+See
+.IR 9load (8)
+for details.
+.PP
+Once the kernel is booted, it behaves like the others.
+See
+.IR boot (8)
+for details.
+.SS Alpha PCs
+Alpha PCs must be booted via TFTP using the SRM console.
+If the system has ARC firmware instead, SRM may be downloaded from
+.IP
+.EX
+http://www.compaq.com/
+.EE
+.PP
+You must configure the SRM firmware to load the file
+.BR /alpha/bootalphapc .
+The following commands may be used (replace
+.B ewa0
+with the name of your ethernet device, if different):
+.IP
+.EX
+set boot_reset ON
+set boot_file /alpha/bootalphapc
+set bootdef_dev ewa0
+set ewa0_inet_init bootp
+set ewa0_protocols BOOTP
+.EE
+.PP
+This secondary bootstrap program will first load the file
+.BR /alpha/conf/ <IP-address>
+(substituting the IP address of the system as obtained via bootp).
+This file is expected to be in
+.IR plan9.ini (8)
+format (the file
+.B /alpha/conf/10.0.0.2
+may be used as a template).
+It then loads the kernel via tftp, using the value of
+.B bootfile
+to tell it which file to load; this should be
+.B /alpha/9apc
+for terminals.
+.SS CPU Servers
+The Plan 9 CPU servers are multi-user, so they do not request a user name
+when booting.
+On the CPU servers, typing a control-P on the console reboots the machine.
+.SS PC CPU Server
+Proceed as for the PC terminal, but load
+.B /386/9pccpu
+or
+.BR /386/9pccpudisk .
+.SS Alpha PC CPU Server
+Proceed as for the Alpha PC terminal, but use
+.B /alpha/9apccpu
+as the value of
+.BR bootfile .
+.SS SGI Challenge multiprocessor CPU Server
+The Challenge ROM monitor can boot from the Ethernet.
+To boot from the Ethernet, type
+.IP
+.EX
+.B bootp()/mips/9ch
+.EE
+.PP
+or use the ROM command
+.B setenv
+to set the variable
+.B bootfile
+to that same string and type
+.BR boot .
+To load a different file, tell
+.B bootp
+which file to load,
+and to force the download to come from a particular system,
+.BR bootp()system:file .
+Any arguments after
+.B bootp()file
+are passed to
+.BR /boot .
+If you are running a Plan 9
+.SM BOOTP
+server (see
+.IR dhcpd (8)),
+the file name can be omitted and the
+file specified by the
+.B bootf
+parameter for the machine in
+.BR /lib/ndb
+will be downloaded by default.
+.PP
+Once the kernel is loaded,
+it prompts for the Ethernet
+protocol to use to reach the root file server; request the default.
+.PP
+.SS File servers
+The CPU servers and terminals run essentially the same program, but
+the Plan 9 file servers run a distinct system.
+The file servers accept only the commands described in
+.IR fs (8)
+on their consoles.
+.SS PC File Server
+Boot the PC file server like a regular PC, loading the appropriate file system kernel.
+.SH "SEE ALSO"
+.IR 9load (8),
+.IR boot (8),
+.IR fs (8),
+.IR init (8),
+.IR plan9.ini (8)
+.SH SOURCE
+Sources for the various boot programs are under
+.BR /sys/src/boot .
+.SH BUGS
+The file server should be able to boot from its own disk.
diff --git a/static/plan9-4e/man8/buildindex.8 b/static/plan9-4e/man8/buildindex.8
new file mode 100644
index 00000000..43d03e10
--- /dev/null
+++ b/static/plan9-4e/man8/buildindex.8
@@ -0,0 +1,62 @@
+.TH BUILDINDEX 8
+.SH NAME
+buildindex \- rebuild a Venti index
+.SH SYNOPSIS
+.B venti/buildindex
+[
+.B -B
+.I blockcachesize
+]
+[
+.B -Z
+]
+.I venti.config
+.I tmp
+.SH DESCRIPTION
+.I Buildindex
+populates the index for the Venti system described in
+.IR venti.config .
+The index must have previously been formatted using
+.IR fmtindex (8).
+This command is typically used to build a new index for a Venti
+system when the old index becomes too small, or to rebuild
+an index after media failure.
+Small errors in an index can usually be fixed with
+.IR checkindex (8).
+.PP
+The
+.I tmp
+file, usually a disk partition, must be large enough to store a copy of the index.
+This temporary space is used to perform a merge sort of index entries
+generated by reading the arenas.
+.PP
+Options to
+.I buildindex
+are:
+.TP
+.BI -B " blockcachesize
+The amount of memory, in bytes, to use for caching raw disk accesses while running
+.IR buildindex .
+(This is not a property of the created index.)
+The default is 8k.
+The units for the size can be specified by appending
+.LR k ,
+.LR m ,
+or
+.LR g
+to indicate kilobytes, megabytes, or gigabytes respectively.
+.TP
+.B -Z
+Do not zero the index.
+This option should only be used when it is known that the index was already zeroed.
+.SH SOURCE
+.B /sys/src/cmd/venti
+.SH "SEE ALSO"
+.IR venti (8),
+.IR checkindex (8),
+.IR fmtindex (8),
+.IR venti.conf (6)
+.SH BUGS
+Should allow an individual index section to be rebuilt.
+The merge sort could be performed in the space used to store the
+index rather than requiring a temporary file.
diff --git a/static/plan9-4e/man8/checkarenas.8 b/static/plan9-4e/man8/checkarenas.8
new file mode 100644
index 00000000..e817c9cb
--- /dev/null
+++ b/static/plan9-4e/man8/checkarenas.8
@@ -0,0 +1,34 @@
+.TH CHECKARENAS 8
+.SH NAME
+checkarenas \- check the integrity, and optionally fix, Venti arenas
+.SH SYNOPSIS
+.B venti/checkarenas
+[
+.B -afv
+]
+.I file
+.SH DESCRIPTION
+.I Checkarenas
+examines the Venti arenas contained in the given
+.IR file .
+The program detects various error conditions, and optionally attempts
+to fix any errors that are found.
+.PP
+Option to
+.I checkarenas
+are:
+.TP
+.B -a
+For each arena, scan the entire data section.
+If this option is omitted, only the end section of
+the arena is examined.
+.TP
+.B -f
+Attempt to fix any errors that are found.
+.TP
+.B -v
+Increase the verbosity of output.
+.SH SOURCE
+.B /sys/src/cmd/venti
+.SH "SEE ALSO"
+.IR venti (8)
diff --git a/static/plan9-4e/man8/checkindex.8 b/static/plan9-4e/man8/checkindex.8
new file mode 100644
index 00000000..2ae21f51
--- /dev/null
+++ b/static/plan9-4e/man8/checkindex.8
@@ -0,0 +1,52 @@
+.TH CHECKINDEX 8
+.SH NAME
+checkindex \- check the integrity and optionally fix a Venti index
+.SH SYNOPSIS
+.B venti/checkindex
+[
+.B -f
+]
+[
+.B -B
+.I blockcachesize
+]
+.I venti.config
+.I tmp
+.SH DESCRIPTION
+.I Checkindex
+examines the Venti index described in
+.IR venti.config .
+The program detects various error conditions including:
+blocks that are not indexed, index entries for blocks that do not exist,
+and duplicate index entries.
+If requested, an attempt can be made to fix errors that are found.
+.PP
+The
+.I tmp
+file, usually a disk partition, must be large enough to store a copy of the index.
+This temporary space is used to perform a merge sort of index entries
+generated by reading the arenas.
+.PP
+Option to
+.I checkindex
+are:
+.TP
+.BI -B " blockcachesize
+The amount of memory, in bytes, to use for caching raw disk accesses while running
+.IR checkindex .
+The default is 8k.
+The units for the size can be specified by appending
+.LR k ,
+.LR m ,
+or
+.LR g
+to indicate kilobytes, megabytes, or gigabytes respectively.
+.TP
+.B -f
+Attempt to fix any errors that are found.
+.SH SOURCE
+.B /sys/src/cmd/venti
+.SH "SEE ALSO"
+.IR venti (8),
+.IR buildindex (8),
+.IR venti.conf (6)
diff --git a/static/plan9-4e/man8/cpurc.8 b/static/plan9-4e/man8/cpurc.8
new file mode 100644
index 00000000..13fe0df4
--- /dev/null
+++ b/static/plan9-4e/man8/cpurc.8
@@ -0,0 +1,67 @@
+.TH CPURC 8
+.SH NAME
+cpurc, termrc \- boot script
+.SH SYNOPSIS
+.B cpurc
+.PP
+.B termrc
+.SH DESCRIPTION
+After the kernel boots, it execs
+.B /boot
+(see
+.IR root (3)),
+which in turn execs
+.BR /$cputype/init .
+.IR Init (8)
+sets the
+.B $service
+environment variable to
+.B cpu
+or
+.BR terminal ,
+and then invokes the appropriate
+.B rc
+script to bring the system up.
+.PP
+Based on the values of
+.B $sysname
+and
+.B $terminal
+these scripts start appropriate network processes and
+administrative daemons and enable swapping.
+.I Cpurc
+sets
+.B /env/boottime
+to the time
+.I cpurc
+was executed and
+.B /env/NPROC
+to a value suitable for parallel compilation in
+.IR mk (1).
+.PP
+These files should be edited by local installations
+to reflect the configuration of their systems.
+If an executable file
+.B /sys/lib/sysconfig/termrc/$sysname
+exists for the machine named
+.BR $sysname ,
+.I termrc
+will execute it as its last act.
+This action is suppressed, as is automatic initialization of the mouse and
+VGA on a PC, if the user is
+.BR none .
+.SH FILES
+.TF /sys/lib/sysconfig/termrc
+.TP
+.B /sys/lib/sysconfig/termrc
+machine-specific configuration scripts for
+.IR termrc .
+.SH SOURCE
+.B /rc/bin/cpurc
+.br
+.B /rc/bin/termrc
+.SH "SEE ALSO"
+.IR srv (4),
+.IR namespace (6),
+.IR init (8),
+.IR listen (8)
diff --git a/static/plan9-4e/man8/cron.8 b/static/plan9-4e/man8/cron.8
new file mode 100644
index 00000000..a6fbf40d
--- /dev/null
+++ b/static/plan9-4e/man8/cron.8
@@ -0,0 +1,111 @@
+.TH CRON 8
+.SH NAME
+cron \- clock daemon
+.SH SYNOPSIS
+.B auth/cron
+[
+.B -c
+]
+.SH DESCRIPTION
+.I Cron
+executes commands at specified dates and times according
+to instructions in the files
+.BI /cron/ user /cron\f1.
+It runs only on an authentication server.
+Option
+.B -c
+causes
+.I cron
+to create
+.BI /cron/ user
+and
+.BI /cron/ user /cron
+for the current user;
+it can be run from any Plan 9 machine.
+.PP
+Blank lines and lines beginning with
+.B #
+in these files are ignored.
+Entries are lines with fields
+.IP
+.I
+minute hour day month weekday host command
+.PP
+.I Command
+is a string, which may contain spaces, that is passed to an
+.IR rc (1)
+running on
+.I host
+for execution.
+The first five fields are integer patterns for
+.PD0
+.RS
+.TP \w'month\ of\ year\ \ 'u
+minute
+0\-59
+.TP
+hour
+0\-23
+.TP
+day of month
+1\-31
+.TP
+month of year
+1\-12
+.TP
+day of week
+0\-6; 0=Sunday
+.PD
+.RE
+.PP
+The syntax for these patterns is
+.IP
+.EX
+time : '*'
+ | range
+range : number
+ | number '-' number
+ | range ',' range
+.EE
+.PP
+Each number must be in the appropriate range.
+Hyphens specify inclusive ranges of valid times;
+commas specify lists of valid time ranges.
+.PP
+To run the job,
+.I cron
+calls
+.I host
+and authenticates remote execution, equivalent to running
+.B rx
+.I host
+.I command
+(see
+.IR con (1)).
+The user's profile is run with
+.B $service
+set to
+.BR rx .
+.PP
+.I Cron
+is not a reliable service.
+It skips commands if it cannot reach
+.I host
+within two minutes, or if the
+.I cron
+daemon is
+not running at the appropriate time.
+.SH EXAMPLES
+Here is the job that mails system news.
+.IP
+.EX
+% cat /cron/upas/cron
+# send system news
+15 8-17, 21 *** helix /mail/lib/mailnews
+%
+.EE
+.SH SOURCE
+.B /sys/src/cmd/auth/cron.c
+.SH "SEE ALSO"
+.IR con (1),
+.IR rc (1)
diff --git a/static/plan9-4e/man8/dhcpd.8 b/static/plan9-4e/man8/dhcpd.8
new file mode 100644
index 00000000..838a38ed
--- /dev/null
+++ b/static/plan9-4e/man8/dhcpd.8
@@ -0,0 +1,272 @@
+.TH DHCPD 8
+.SH NAME
+dhcpd, rarpd, tftpd \- Internet booting
+.SH SYNOPSIS
+.PP
+.B ip/dhcpd
+.RB [ -mdsnp ]
+.RB [ -f
+.IR ndb-file ]
+.RB [ -x
+.IR netmtpt ]
+.RB [ -M
+.IR secs ]
+[
+.I address
+.I n
+]*
+.PP
+.B ip/rarpd
+.RB [ -d ]
+.RB [ -e
+.IR etherdev ]
+.RB [ -x
+.IR netmtpt ]
+.PP
+.B ip/tftpd
+.RB [ -dr ]
+.RB [ -h
+.IR homedir ]
+.RB [ -x
+.IR netmtpt ]
+.SH DESCRIPTION
+These programs support booting over the Internet.
+They should all be run on the same server to
+allow other systems to be booted.
+.I Dhcpd
+and
+.I tftpd
+are used to boot everything;
+.I rarpd
+is an extra piece just for Suns.
+.PP
+.I Dhcpd
+runs the
+.SM BOOTP
+and
+.SM DHCP
+protocols.
+Clients use these protocols to obtain configuration information.
+This information comes from attribute/value pairs in the network database
+(see
+.IR ndb (6)
+and
+.IR ndb (8)).
+DHCP requests are honored both for static addresses found in
+the NDB and for dynamic addresses listed in the command line.
+DHCP requests are honored if either:
+.br
+\- there exists an NDB entry
+containing both the ethernet address of the requester and
+an IP address on the originating network or subnetwork.
+.br
+\- a free dynamic address exists on the originating network or subnetwork.
+.PP
+A BOOTP request is honored it all of the following are true:
+.br
+\- there exists an NDB entry
+containing both the ethernet address of the requester and
+an IP address on the originating network or subnetwork.
+.br
+\- the entry contains a
+.B bootf=
+attribute
+.br
+\- the file in the
+.B bootf=
+attribute is readable.
+.PP
+Dynamic addresses are specified on the command line as a list
+of addresses and number pairs.
+For example,
+.EX
+ ip/dhcpd 10.1.1.12 10 10.2.1.70 12
+.EE
+directs
+.I dhcpd
+to return dynamic addresses 10.1.1.12 through 10.1.1.21 inclusive
+and 10.2.1.70 through 10.2.1.81 inclusive.
+.PP
+.I Dhcpd
+maintains a record of all dynamic addresses in the directory
+.BR /lib/ndb/dhcp ,
+one file per address.
+If multiple servers have access to this common directory,
+they will correctly coordinate their actions.
+.PP
+Attributes come from either the NDB entry for the system, the entry for its
+subnet, or the entry for its network. The system entry has precedence,
+then the subnet, then the network.
+The NDB attributes used are:
+.TF ipmask
+.TP
+.B ip
+the IP address
+.TP
+.B ipmask
+the IP mask
+.TP
+.B ipgw
+the default IP gateway
+.TP
+.B dom
+the domain name of the system
+.TP
+.B fs
+the default Plan 9 name server
+.TP
+.B auth
+the default Plan 9 authentication server
+.TP
+.B dns
+a domain name server
+.TP
+.B ntp
+a network time protocol server
+.TP
+.B time
+a time server
+.TP
+.B wins
+a
+.SM NETBIOS
+name server
+.TP
+.B www
+a World Wide Web proxy
+.TP
+.B pop3
+a POP3 mail server
+.TP
+.B smtp
+an SMTP mail server
+.TP
+.B bootf
+the default boot file
+.PD
+.PP
+.I Dhcpd
+will answer
+.SM BOOTP
+requests only if it has been specifically targeted or if it
+has read access to the boot file for the requester. That means that the requester
+must specify a boot file in the request or one has to exist in NDB for
+.I dhcpd
+to answer.
+.I Dhcpd
+will answer all
+.SM DHCP
+requests for which it can associate an IP address with the
+requester.
+The options are:
+.TP
+.B d
+Print debugging to standard output.
+.TP
+.B m
+Mute: don't reply to requests, just log them and what
+.I dhcpd
+would have done.
+.TP
+.B f
+Specify a file other than
+.B /lib/ndb/local
+as the network database.
+.TP
+.B s
+Sleep 2 seconds before answering requests. This is used to make a server
+be a backup only.
+.TP
+.B n
+Don't answer
+.SM BOOTP
+requests.
+.TP
+.B p
+Answer
+.SM DHCP
+requests from
+.SM PPTP
+clients only.
+.TP
+.B x
+The IP stack to use is mounted at
+.IR netmtpt .
+The default is
+.BR /net .
+.TP
+.B M
+Use
+.I secs
+as the minimum lease time.
+.PD
+.PP
+.I Rarpd
+performs the Reverse Address Resolution Protocol, translating
+Ethernet addresses into IP addresses.
+The options are:
+.TP
+.B d
+Print debugging to standard output.
+.TP
+.B e
+Use the Ethernet mounted at
+.BI /net/ etherdev\f1.
+.TP
+.B x
+The IP stack to use is mounted at
+.IR netmtpt .
+The default is
+.BR /net .
+.PD
+.PP
+.I Tftpd
+transfers files to systems that are booting.
+It runs as user
+.B none
+and can only access files with global read permission.
+The options are:
+.TP
+.B d
+Print debugging to standard output.
+.TP
+.B x
+The IP stack to use is mounted at
+.IR netmtpt .
+The default is
+.BR /net .
+.TP
+.B h
+Change directory to
+.IR homedir .
+The default is
+.BR /lib/tftpd .
+All requests for files with non-rooted file names are served starting at this
+directory with the exception of files of the form
+.BR xxxxxxxx.SUNyy .
+These are Sparc kernel boot files where
+.B xxxxxxxx
+is the hex IP address of the machine requesting the kernel and
+.B yy
+is an architecture identifier.
+.I Tftpd
+looks up the file in the network database using
+.I ipinfo
+(see
+.IR ndb (2))
+and responds with the boot file specified for that particular
+machine.
+If no boot file is specified, the transfer fails.
+.I Tftpd
+supports only octet mode.
+.TP
+.B r
+Restricts access to only those files rooted in the
+.IR homedir .
+.PD
+.SH FILES
+.BR /lib/ndb/dhcp " directory of dynamic address files
+.SH SOURCE
+.B /sys/src/cmd/ip
+.SH "SEE ALSO"
+.IR ndb (6)
diff --git a/static/plan9-4e/man8/drawterm.8 b/static/plan9-4e/man8/drawterm.8
new file mode 100644
index 00000000..2f5a1d50
--- /dev/null
+++ b/static/plan9-4e/man8/drawterm.8
@@ -0,0 +1,124 @@
+.TH DRAWTERM 8
+.SH NAME
+drawterm \- connect to Plan 9 CPU servers from other operating systems
+.SH SYNOPSIS
+.B drawterm
+[
+.B -a
+.I authaddr
+]
+[
+.B -c
+.I cpuaddr
+]
+[
+.B -d
+depth
+]
+[
+.B -r
+root
+]
+[
+.B -nm
+]
+.SH DESCRIPTION
+.I Drawterm
+is
+.I not
+a Plan 9 program.
+It is a program that users of non-Plan 9 systems can use
+to establish graphical
+.IR cpu (1)
+connections with Plan 9 CPU servers.
+Just as a real Plan 9 terminal does,
+.I drawterm
+serves its local name space
+as well as some devices (the keyboard, mouse, and screen)
+to a remote CPU server, which mounts this name space
+on
+.B /mnt/term
+and starts a shell.
+Typically, either explicitly or via the profile, one uses the shell
+to start
+.IR rio (1).
+.PP
+By default,
+drawterm
+uses the CPU server
+.B CPUSERV
+and the authentication server
+.BR AUTHSERV .
+The
+.B -a
+and
+.B -c
+options specify alternate servers.
+(Edit the source to set appropriate local values for the variables
+.B AUTHSERV
+and
+.BR CPUSERV ).
+.PP
+On Windows systems, the file system served by the
+terminal (and mounted on
+.BR /mnt/term )
+is the tree rooted at
+.BR c:/ .
+The
+.B -r
+option specifies a different file system root.
+In Windows, the depth of the virtual screen
+provided by
+drawterm
+matches the depth of the actual screen.
+To present a screen with a different depth, use the
+.B -d
+option.
+Both options do nothing on non-Windows systems.
+.PP
+The
+.B -n
+option causes
+drawterm to prompt for authentication via
+.IR netkey -style
+challenge/response rather than using
+the password-based protocol typically used
+by terminals.
+.PP
+By default, drawterm queues mouse events to
+guard against lost events due to network latency.
+The
+.B -m
+option turns this behavior off.
+.PP
+Drawterm has been ported to
+Digital Unix,
+Irix,
+Linux,
+Solaris,
+and
+Windows.
+Binaries are kept in
+.BR /sys/src/cmd/unix/drawterm/bin .
+.SH SOURCE
+.B /sys/src/cmd/unix/drawterm
+.SH DIAGNOSTICS
+The Unix versions of drawterm print diagnostics
+to standard error.
+The Windows version displays message boxes.
+.SH "SEE ALSO
+.IR cpu (1),
+.IR rio (1)
+.SH BUGS
+Although at first
+.I drawterm
+may seem like a Plan 9 terminal, in fact it is just a way to provide a CPU server
+with some terminal devices.
+The difference is important because one cannot run terminal-resident programs
+when using
+.IR drawterm .
+The illusion can be improved by delicate adjustments in
+.BR /usr/$user/lib/profile .
+.PP
+It would be nice to be able to change the default servers
+without recompiling.
diff --git a/static/plan9-4e/man8/fmtarenas.8 b/static/plan9-4e/man8/fmtarenas.8
new file mode 100644
index 00000000..b9f18816
--- /dev/null
+++ b/static/plan9-4e/man8/fmtarenas.8
@@ -0,0 +1,64 @@
+.TH FMTARENAS 8
+.SH NAME
+fmtarenas \- format a file into a number of Venti arenas
+.SH SYNOPSIS
+.B venti/fmtarenas
+[
+.B -Z
+]
+[
+.B -a
+.I arenasize
+]
+[
+.B -b
+.I blocksize
+]
+.I name
+.I file
+.SH DESCRIPTION
+.I Fmtarenas
+formats the given
+.IR file ,
+typically a disk partition, into a number of
+.IR venti (8)
+arenas.
+The arenas are given names of the form
+.IR name%d ,
+where
+.I %d
+is replaced with a sequential number starting at 0.
+.PP
+Option to
+.I fmtarenas
+are:
+.TP
+.BI -a " arenasize
+The arenas are of
+.I arenasize
+bytes. The default is 512 megabytes, which was selected to provide a balance
+between the number of arenas and the ability to copy an arena to external
+media such as recordable CDs and tapes.
+.TP
+.BI -b " blocksize
+The size, in bytes, for read and write operations to the file.
+The size is recorded in the file, and is used by applications that access the arenas.
+The default is 8k.
+.TP
+.B -Z
+Do not zero the data sections of the arenas.
+Using this option reduces the formatting time
+but should only be used when it is known that the file was already zeroed.
+.PP
+The units for the various sizes can be specified by appending
+.LR k ,
+.LR m ,
+or
+.LR g
+to indicate kilobytes, megabytes, or gigabytes respectively.
+.SH SOURCE
+.B /sys/src/cmd/venti
+.SH "SEE ALSO"
+.IR venti (8),
+.IR fmtisect (8),
+.IR fmtindex (8)
diff --git a/static/plan9-4e/man8/fmtindex.8 b/static/plan9-4e/man8/fmtindex.8
new file mode 100644
index 00000000..ec98f209
--- /dev/null
+++ b/static/plan9-4e/man8/fmtindex.8
@@ -0,0 +1,60 @@
+.TH FMTINDEX 8
+.SH NAME
+fmtindex \- format a Venti index
+.SH SYNOPSIS
+.B venti/fmtindex
+[
+.B -a
+]
+.I venti.config
+.SH DESCRIPTION
+.I Fmtindex
+takes the
+.IR venti.conf (6)
+file
+.I venti.config
+and initializes the index sections to form a usable index structure.
+The arena files and index sections must have previously been formatted
+using
+.IR fmtarenas (8)
+and
+.IR fmtisect (8)
+respectively.
+.PP
+The function of a Venti index is to map a Sha1 fingerprint to a location
+in the data section of one of the arenas. The index is composed of
+blocks, each of which contains the mapping for a fixed range of possible
+fingerprint values.
+.I Fmtindex
+determines the mapping between Sha1 values and the blocks
+of the collection of index sections. Once this mapping has been determined,
+it cannot be changed without rebuilding the index.
+The basic assumption in the current implementation is that the index
+structure is sufficiently empty that individual blocks of the index will rarely
+overflow. The total size of the index should be about 2% to 10% of
+the total size of the arenas, but the exact depends both the index block size
+and the compressed size of block stored to Venti.
+.PP
+.I Fmtindex
+also computes a mapping between a linear address space and
+the data section of the collection of arenas. The
+.B -a
+option can be used to add additional arenas to an index.
+To use this feature,
+add the new arenas to
+.I venti.config
+after the existing arenas and then run
+.I fmtindex
+.BR -a .
+.PP
+A copy of the above mappings is stored in the header for each of the index sections.
+These copies enable
+.IR buildindex (8)
+to restore a single index section without rebuilding the entire index.
+.SH SOURCE
+.B /sys/src/cmd/venti
+.SH "SEE ALSO"
+.IR venti (8),
+.IR fmtarenas (8),
+.IR fmtisect (8),
+.IR venti.conf (6)
diff --git a/static/plan9-4e/man8/fmtisect.8 b/static/plan9-4e/man8/fmtisect.8
new file mode 100644
index 00000000..b82966ba
--- /dev/null
+++ b/static/plan9-4e/man8/fmtisect.8
@@ -0,0 +1,50 @@
+.TH FMTISECT 8
+.SH NAME
+fmtisect \- format a Venti index section
+.SH SYNOPSIS
+.B venti/fmtisect
+[
+.B -Z
+]
+[
+.B -b
+.I blocksize
+]
+.I name
+.I file
+.SH DESCRIPTION
+.I Fmtisect
+formats the given
+.IR file ,
+typically a disk partition, as a Venti index section with the specified
+.IR name .
+One or more formatted index sections are combined into a Venti
+index using
+.IR fmtindex (8).
+Each of the index sections within an index must have a unique name.
+.PP
+Options to
+.I fmtisect
+are:
+.TP
+.BI -b " blocksize
+The size, in bytes, for read and write operations to the file.
+All the index sections within a index must have the same block size.
+The default is 8k. The units for the size can be specified by appending
+.LR k ,
+.LR m ,
+or
+.LR g
+to indicate kilobytes, megabytes, or gigabytes respectively.
+.TP
+.B -Z
+Do not zero the index.
+Using this option reduces the formatting time
+but should only be used when it is known that the file was already zeroed.
+.PP
+.SH SOURCE
+.B /sys/src/cmd/venti
+.SH "SEE ALSO"
+.IR venti (8),
+.IR fmtarenas (8),
+.IR fmtindex (8)
diff --git a/static/plan9-4e/man8/fs.8 b/static/plan9-4e/man8/fs.8
new file mode 100644
index 00000000..7c53e72f
--- /dev/null
+++ b/static/plan9-4e/man8/fs.8
@@ -0,0 +1,678 @@
+.TH FS 8
+.SH NAME
+fs, exsort \- file server maintenance
+.SH SYNOPSIS
+.PD 0
+.B help
+[
+.I command ...
+]
+.PP
+.B arp
+.I subcommand
+.PP
+.B cfs
+.I filesystem
+.PP
+.B check
+.RI [ options ]
+.PP
+.B clri
+.RI [ file ...]
+.PP
+.B cpu
+.RI [ proc ]
+.PP
+.B create
+.I path uid gid perm
+.RB [ lad ]
+.PP
+.B cwcmd
+.I subcommand
+.PP
+.B date
+.RB [[ +- ]
+.IR seconds ]
+.PP
+.B duallow
+.RI [ uid ]
+.PP
+.B dump
+.PP
+.B files
+.PP
+.B flag
+.I flag
+[
+.I channel
+]
+.PP
+.B fstat
+[
+.I files
+]
+.PP
+.B halt
+.PP
+.B hangup
+.I channel
+.PP
+.B newuser
+.I name
+.RI [ options ]
+.PP
+.B noattach
+.PP
+.B passwd
+.PP
+.B profile
+.RB [ 01 ]
+.PP
+.B remove
+.RI [ files ...]
+.PP
+.B route
+.I subcommand
+.PP
+.BR stat [ adesw ]
+.PP
+.B stats
+.RB [[ - ]
+.IR flags ...]
+.PP
+.B sync
+.PP
+.B time
+.I command
+.PP
+.B trace
+.RI [ number ]
+.PP
+.B users
+.RI [ file ]
+.PP
+.B version
+.PP
+.B who
+.RI [ user ...]
+.PP
+.B wormeject
+[
+.I tunit
+]
+.PP
+.B wormingest
+[
+.I tunit
+]
+.PD
+.PP
+.B disk/exsort
+.RB [ -w ]
+.RI [ file ]
+.SH DESCRIPTION
+Except for
+.IR exsort ,
+these commands are available only on the console of an
+.IR fs (4)
+file server.
+.PP
+The console requires the machine's password to be supplied before
+accepting commands. Typing a control-D will cause
+the server to request
+the password again.
+.PP
+.I Help
+prints a `usage string' for the named
+.IR commands ,
+by default all commands.
+Also, many commands print menus of their options if given
+incorrect or incomplete parameters.
+.PP
+.I Arp
+has two
+.IR subcommands :
+.B print
+prints the contents of the ARP cache and
+.B flush
+flushes it.
+.PP
+.I Cfs
+changes the current file system, that is, the file tree to which
+commands
+.RB ( check ,
+.BR clri ,
+.BR create ,
+.BR newuser ,
+.BR profile ,
+.BR remove ,
+and
+.BR users )
+apply.
+The initial
+.I filesystem
+is
+.BR main .
+.PP
+.I Check
+verifies the consistency of the current file system.
+With no options it checks and reports the status.
+It suspends service while running.
+Options are:
+.TF touch
+.PD
+.TP
+.B rdall
+Read every block in the file system (can take a
+.I long
+time).
+Normally,
+.I check
+will stop short of the actual contents
+of a file and just verify the block addresses.
+.TP
+.B tag
+Fix bad
+.IR tags ;
+each block has a tag that acts as a backwards pointer for
+consistency checking.
+.TP
+.B ream
+Fix bad tags
+and also clear the contents
+of blocks that have bad tags.
+.TP
+.B pfile
+Print every file name.
+.TP
+.B pdir
+Print every directory name.
+.TP
+.B free
+Rebuild the list of free blocks
+with all blocks that are not referenced.
+This option is only useful on non-cache/WORM
+file systems.
+If the filesystem was modified, the summary printed
+at the conclusion of the check may not reflect the true
+state of the freelist and may also print a list of
+.I missing
+blocks.
+These
+.I missing
+blocks are actually on the free list and the true
+state of the filesystem can be determined by running
+.I check
+with no arguments.
+.TP
+.B bad
+Each block address that is out of range or duplicate is cleared.
+Note that only the second and subsequent
+use of a block is cleared.
+Often the problems in a file system are
+caused by one bad file that has a lot of
+garbage block addresses.
+In such a case,
+it is wiser to use
+.I check
+to find the bad file
+(by number of diagnostic messages)
+and then use
+.I clri
+to clear the addresses in that file.
+After that,
+.I check
+can be used to reclaim the free list.
+.TP
+.B touch
+Cause every directory and indirect block not on the current WORM disk
+to be advanced to the current WORM on the next dump.
+This is a discredited idea to try to keep operating
+on the knee of the cache working set.
+Buy more cache disk.
+.PP
+.I Clri
+clears the internal directory entry and abandons storage
+associated with
+.IR files .
+It ignores the usual rules for sanity, such as checking against
+removing a non-empty directory.
+A subsequent
+.B check
+.B free
+will place the abandoned storage in the free list.
+.PP
+.I Cpu
+prints the CPU utilization and state of the processes in the file server.
+If the name of a process type argument is given,
+then CPU utilization for only those processes is printed.
+.PP
+.I Create
+creates a file on the current file system.
+.I Uid
+and
+.I gid
+are names or numbers from
+.BR /adm/users .
+.I Perm
+is the low 9 bits of the permission mode of the file, in octal.
+An optional final
+.BR l ,
+.BR a ,
+or
+.BR d
+creates a locked file, append-only file, or directory.
+.PP
+.I Cwcmd
+controls the cached WORM file systems. The subcommands are:
+.TP
+.BI mvstate " state1 state2 " [ platter ]
+States are
+.BR none ,
+.BR dirty ,
+.BR dump ,
+.BR dump1 ,
+.BR error ,
+.BR read ,
+and
+.BR write .
+A
+.B mvstate
+.B dump1
+.B dump
+will cause I/O errors in the last dump to be retried.
+A
+.B mvstate
+.B dump1
+.B write
+will cause I/O errors in the last dump to be retried in
+reallocated slots in the next dump.
+A
+.B mvstate
+.B read
+.B none
+will flush the cache associated with the WORM.
+A
+.B mvstate
+.B dump
+.B write
+aborts the background process dumping to WORM; as a consequence it
+leaves holes in the dump file system.
+Other uses are possible but arcane.
+The optional
+.I platter
+limits affected blocks to those on that platter.
+.TP
+.BR prchain " [\fIstart\fP] [\fLback\fP]
+Print the chain of superblocks for the directory containing the
+roots of the dumped file systems, starting at block number
+.I start
+(default 0) going forward (backwards if
+.B back
+is supplied).
+.TP
+.BR savecache " [\fIpercent\fP]
+Copy the block numbers, in native endian longwords, of blocks in the
+.B read
+state to the file
+.BR /adm/cache
+for use by
+.BR disk/exsort .
+If an argument is given,
+then that percent (most recently used) of each cache bucket
+is copied.
+.TP
+.BR loadcache " [\fIdskno\fP]
+Read
+.B /adm/cache
+and for every block there on WORM disk
+.IR dskno ,
+read the block from WORM to the cache.
+If
+.I dskno
+is not supplied, all blocks in
+.B /adm/cache
+are read.
+.TP
+.BR startdump \ [ 01 ]
+Suspend
+.RB ( 0 )
+or restart
+.RB ( 1 )
+the background dump process.
+.TP
+.B touchsb
+Verify that the superblock on the WORM is readable, ignoring the cached copy.
+.TP
+.B acct
+Prints how many times each user has caused the system to allocate new space on the WORM;
+the units are megabytes.
+.TP
+.B clearacct
+Clears the accounting records for
+.BR acct .
+.PP
+.I Date
+prints the current date. It may be adjusted
+using
+.BI +- seconds\f1.
+With no sign, it sets the date to the absolute number of seconds
+since 00:00 Jan 1, 1970 GMT; with a sign it trims the current
+time.
+.PP
+.I Duallow
+sets permissions such that
+the named
+.I user
+can read and search any directories.
+This is the permission necessary to do a
+.IR du (1)
+command anywhere in the file system to discover disk usage.
+.PP
+.I Dump
+starts a dump to WORM immediately for all file systems that have
+a WORM associated.
+File service is suspended while the cache is scanned;
+service resumes when the copy to WORM starts.
+.PP
+.I Files
+prints for every connection the number of allocated fids.
+.PP
+.I Fstat
+prints the current status of each named
+.IR file ,
+including uid, gid, wuid (uid of the last user to modify the file),
+size, qid, and disk addresses.
+.PP
+.I Flag
+toggles flags, initially all off:
+.TF attachxx
+.TP
+.B arp
+Report ARP activity.
+.TP
+.B attach
+Report as connections are made to the file server.
+.TP
+.B chat
+(Very noisy.) Print all 9P messages to and from the server.
+.TP
+.B route
+Report received RIP packets.
+.TP
+.B ro
+Report I/O on the WORM device.
+.PD
+.PP
+If given a second numeric
+.I channel
+argument,
+as reported by
+.IR who ,
+the flag is altered only on that connection.
+.PP
+.I Halt
+does a
+.B sync
+and halts the machine, returning to the boot ROM.
+.PP
+.I Hangup
+clunks all the fids on the named
+.IR channel ,
+which has the same format as in the output of the
+.I who
+command.
+.PP
+.I Newuser
+requires a
+.I name
+argument.
+With no options it adds user
+.IR name ,
+with group leader
+.IR name ,
+to
+.B /adm/users
+and makes the directory
+.BI /usr/ name
+owned by user and group
+.IR name .
+The options are
+.TF =leaderxx
+.TP
+.B ?
+Print the entry for
+.IR name .
+.TP
+.B :
+Add a group: add the name to
+.B /adm/users
+but don't create the directory.
+By convention, groups are numbered starting from 10000, users from 0.
+.TP
+.I newname
+Rename existing user
+.I name
+to
+.IR newname .
+.TP
+.BI = leader
+Change the leader of
+.I name
+to
+.IR leader .
+If
+.I leader
+is missing, remove the existing leader.
+.TP
+.BI + member
+Add
+.I member
+to the member list of
+.IR name .
+.TP
+.BI - member
+Remove existing
+.I member
+from the member list of
+.IR name .
+.PD
+.PP
+After a successful
+.I newuser
+command the file server overwrites
+.B /adm/users
+to reflect the internal state of the user table.
+.PP
+.I Noattach
+disables
+.IR attach (5)
+messages, in particular for system maintenance.
+Previously attached connections are unaffected.
+Another
+.I noattach
+will enable normal behavior.
+.PP
+.I Passwd
+sets the machine's password and writes it in non-volatile RAM.
+.PP
+.I Profile
+.B 1
+clears the profiling buffer and enables profiling;
+.I profile
+.B 0
+stops profiling and writes the data to
+.B /adm/kprofdata
+for use by
+.B kprof
+(see
+.IR prof (1)).
+If a number is not specified, the profiling state toggles.
+.PP
+.I Remove
+removes
+.IR files .
+.PP
+.I Route
+maintains an IP routing table. The
+.I subcommands
+are:
+.TF "add dest gate mask"
+.TP
+.B add \f2dest gate \fP[\f2mask\fP]
+Add a static route from IP address
+.I dest
+using gateway
+.I gate
+with an optional subnet
+.IR mask .
+.TP
+.B delete \f2dest\fP
+Delete an entry from the routing table.
+.TP
+.B print
+Display the contents of the routing table.
+.TP
+.B ripon
+Enables the table to be filled from RIP packets.
+.TP
+.B ripoff
+Disables the table from being updated by RIP packets.
+.PD
+.PP
+The
+.I stat
+commands are connected with a service or device identified by the
+last character of the name:
+.BR d ,
+SCSI targets;
+.BR e ,
+Ethernet controllers;
+.BR w ,
+cached WORM.
+The
+.I stata
+command prints overall statistics about the file system.
+The
+.I stats
+command takes an optional argument identifying the characters
+of
+.I stat
+commands to run. The option is remembered and becomes the
+default for subsequent
+.I stats
+commands if it begins with a minus sign.
+.PP
+.I Sync
+writes dirty blocks in memory to the magnetic disk cache.
+.PP
+.I Time
+reports the time required to execute the
+.IR command .
+.PP
+.I Trace
+with no options prints the set of queue-locks held by each process in
+the file server. If things are quiescent, there should be no output.
+With an argument
+.I number
+it prints a stack traceback of that process.
+.PP
+.I Users
+uses the contents of
+.I file
+(default
+.BR /adm/users )
+to initialize the file server's internal representation of the users
+structure.
+Incorrectly formatted entries in
+.I file
+will be ignored.
+If file is explicitly
+.BR default ,
+the system builds a minimal functional users table internally;
+this can help recover from disasters.
+If the
+.I file
+cannot be read, you
+.I must
+run
+.IP
+.EX
+users default
+.EE
+.PP
+for the system to function. The
+.B default
+table looks like this:
+.IP
+.EX
+-1:adm:adm:
+0:none:adm:
+1:tor:tor:
+10000:sys::
+10001:map:map:
+10002:doc::
+10003:upas:upas:
+10004:font::
+10005:bootes:bootes:
+.EE
+.PP
+.I Version
+reports when the file server was last compiled and last rebooted.
+.PP
+.I Who
+reports, one per line, the names of users connected to the file server and the
+status of their connections.
+The first number printed on each line is the channel number of the connection.
+If
+.I users
+are given the output selects connections owned by those users.
+.PP
+.I Wormeject
+moves the WORM disk in slot
+.I tunit
+to the output shelf.
+.PP
+.I Wormingest
+moves the WORM disk from the input shelf to
+slot
+.IR tunit .
+.PP
+When the file server boots, it prints the message
+.IP
+.EX
+for config mode hit a key within 5 seconds
+.EE
+.PP
+If a character is typed within 5 seconds of the message appearing,
+the server will enter config mode.
+See
+.IR fsconfig (8)
+for the commands available in config mode.
+The system also enters config mode if, at boot time,
+the non-volatile RAM does not appear to contain a valid configuration.
+.PP
+.I Exsort
+is a regular command to be run on a CPU server, not on the file server
+console.
+It reads the named
+.I file
+(default
+.BR /adm/cache )
+and sorts the cache disk block numbers contained therein.
+It assumes the numbers are 4-byte integers and guesses the
+endianness by looking at the data.
+It then prints statistics about the cache.
+With option
+.B -w
+it writes the sorted data back to
+.IR file .
+.SH SOURCE
+.B /sys/src/fs
+.br
+.B /sys/src/cmd/disk/exsort.c
+.SH SEE ALSO
+.IR fs (4)
+.br
+Ken Thompson,
+``The Plan 9 File Server''.
diff --git a/static/plan9-4e/man8/fsconfig.8 b/static/plan9-4e/man8/fsconfig.8
new file mode 100644
index 00000000..76ea6742
--- /dev/null
+++ b/static/plan9-4e/man8/fsconfig.8
@@ -0,0 +1,249 @@
+.TH FSCONFIG 8
+.SH NAME
+fsconfig \- configuring a file server
+.SH SYNOPSIS
+.B service
+.I name
+.PP
+.B config
+.I device
+.PP
+.B filsys
+.I name
+.I device
+.PP
+.B ream
+.I name
+.PP
+.B recover
+.I name
+.PP
+.B ip
+.I ipaddr
+.PP
+.B ipgw
+.I ipaddr
+.PP
+.B ipmask
+.I ipaddr
+.PP
+.B ipauth
+.I ipaddr
+.PP
+.B ipsntp
+.I ipaddr
+.PP
+.B end
+.SH DESCRIPTION
+When a file server's configuration has not been set,
+or by explicit request early in the server's initialization (see
+.IR fs (8)),
+the server enters `config mode'. The commands described here
+apply only in that mode. They establish configuration constants
+that are typically valid for the life of the server, and therefore
+need be run only once. If the non-volatile RAM on the server
+gets erased, it will be necessary to recreate the configuration.
+.PP
+In these commands,
+.I ipaddr
+is an IP address in the form
+.BR 111.103.94.19
+and
+.I name
+is a text string without white space.
+The syntax of a
+.I device
+is more complicated:
+.TP
+.BI w n1 . n2 . n3
+A SCSI disk on target id
+.IR n2 ,
+unit
+.IR n1 ,
+and partition
+.IR n3 .
+A single number specifies a unit, while two numbers specify
+.IB unit . partition\f1,
+with the missing numbers defaulting to zero.
+Any one of the numbers may be replaced by
+.BI < m - n >
+to represent the values
+.I m
+through
+.I n
+inclusive. For example,
+.B (w<1-4>)
+is the concatenation of SCSI targets 1 through 4.
+.TP
+.BI l n1 . n2 . n3
+.TP
+.BI r n1 . n2 . n3
+The same as
+.BR w ,
+but leaving a single block at the beginning for a label
+.BI ( l ),
+or not.
+These are are only really relevant when used as
+.I device3
+in the
+.B j
+device (see below).
+.TP
+.BI ( device... )
+A pseudo-device formed from the concatenation of the
+.I devices
+in the list. The devices are
+.I not
+blank- or comma-separated.
+.TP
+.BI [ device... ]
+A pseudo-device formed from the block-wise interleaving of the
+.I devices
+in the list. The size of the result is the number of devices times
+the size of the smallest device.
+.TP
+.BI p device . n1 . n2
+A partition starting at
+.IR n1 %
+from the beginning of
+.I device
+with a length
+.IR n2 %
+of the size of the device.
+Parenthesize
+.I device
+if it contains periods.
+.TP
+.BR j (\f2device1\ device2\f1...)\f2device3
+.I Device1
+is the SCSI juke box interface.
+The
+.IR device2 s
+are the SCSI drives in the jukebox and
+.I device3
+represents the demountable platters in the juke box.
+.TP
+.BI f device
+A pseudo-WORM disk: blocks on
+.I device
+can be written only once and may not be read unless written.
+.TP
+.BI c device1device2
+A cached WORM. The first
+.I device
+is the cache, the second the WORM.
+.TP
+.BI o
+(Letter o) The read-only (dump) file system
+of the previously defined cached WORM file system.
+.PP
+The
+.B service
+command sets the textual name of the server as known in
+the network databases.
+.PP
+The configuration information is stored in block zero on a
+device whose device string is written in non-volatile RAM.
+The
+.B config
+command identifies the
+.I device
+on which the information is recorded.
+.PP
+The
+.I filsys
+command configures a file system on
+.I device
+and calls it
+.IR name .
+.I Name
+is used as the specifier in
+.B attach
+messages to connect to that file system.
+(The file system
+.CW main
+is the one attached to if the specifier is null; see
+.IR attach (5)).
+.PP
+The
+.I ream
+command initializes the named file system. It overwrites
+any previous file system on the same device
+and creates an empty root directory
+on the device.
+If
+.I name
+is
+.BR main ,
+the file server, until the next reboot,
+will accept
+.B wstat
+messages
+(see
+.IR stat (5))
+that change the owner and group of files,
+to enable initializing a fresh file system from a
+.IR mkfs (8)
+archive.
+.PP
+For the
+.I recover
+command, the
+named file system
+must be a cached WORM.
+.I Recover
+clears the associated magnetic cache and initializes the file
+system, effectively resetting its contents to the last dump.
+.PP
+The rest of the commands record IP addresses: the file server's address
+.RI ( ip ),
+the local gateway's
+.RI ( ipgw ),
+the local authentication server's
+.RI ( ipauth ),
+the local subnet mask
+.RI ( ipmask ),
+and the address of a system running an SNTP server.
+.I Ipauth
+should be
+.B 0.0.0.0
+if the system is doing its own authentication rather than
+calling an external authentication server.
+.PP
+The various configuration commands only record what to do; they write
+no data to disk. The command
+.I end
+exits config mode and begins running the file server proper.
+The server will then perform whatever I/O is required to establish
+the configuration.
+.SH EXAMPLE
+Initialize a file server
+.B kgbsun
+with a single file system interleaved between SCSI targets 3 and 4.
+.IP
+.EX
+service kgbsun
+config w3
+filsys main [w<3-4>]
+ream main
+.EE
+.PP
+Initialize a file server
+.B kremvax
+with a single disk on target 0 partitioned as a cached pseudo-WORM
+file system with the cache on the third quarter of the drive
+and the pseudo-WORM on the interleave of the first, second, and
+fourth quarters.
+.IP
+.EX
+service kremvax
+config p(w0)50.1
+filsys main cp(w0)50.25f[p(w0)0.25p(w0)25.25p(w0)75.25]
+filsys dump o
+ream main
+.EE
+.SH SOURCE
+.BR /sys/src/fs/port/config.c
+.SH "SEE ALSO
+Ken Thompson,
+``The Plan 9 File Server''.
diff --git a/static/plan9-4e/man8/httpd.8 b/static/plan9-4e/man8/httpd.8
new file mode 100644
index 00000000..2e569b85
--- /dev/null
+++ b/static/plan9-4e/man8/httpd.8
@@ -0,0 +1,196 @@
+.TH HTTPD 8
+.SH NAME
+httpd, echo, save, imagemap, man2html \- HTTP server
+.SH SYNOPSIS
+.PP
+.B ip/httpd/httpd
+.RB [ -a
+.IR srvaddr ]
+.RB [ -d
+.IR domain ]
+.RB [ -n
+.IR namespace ]
+.RB [ -w
+.IR webroot ]
+.PP
+.B ip/httpd/echo
+.RB [ -b
+.IR inbuf ]
+.RB [ -d
+.IR domain ]
+.RB [ -r
+.IR remoteip ]
+.RB [ -w
+.IR webroot ]
+.RB [ -N
+.IR netdir ]
+.I method version uri
+.RI [ search ]
+.PP
+.B ip/httpd/save
+.RB [ -b
+.IR inbuf ]
+.RB [ -d
+.IR domain ]
+.RB [ -r
+.IR remoteip ]
+.RB [ -w
+.IR webroot ]
+.RB [ -N
+.IR netdir ]
+.I method version uri
+.RI [ search ]
+.PP
+.B ip/httpd/imagemap
+.RB [ -b
+.IR inbuf ]
+.RB [ -d
+.IR domain ]
+.RB [ -r
+.IR remoteip ]
+.RB [ -w
+.IR webroot ]
+.RB [ -N
+.IR netdir ]
+.I method version uri
+.PP
+.B ip/httpd/man2html
+.RB [ -b
+.IR inbuf ]
+.RB [ -d
+.IR domain ]
+.RB [ -r
+.IR remoteip ]
+.RB [ -w
+.IR webroot ]
+.RB [ -N
+.IR netdir ]
+.I method version uri
+.RI [ search ]
+.SH DESCRIPTION
+.I Httpd
+serves the
+.I webroot
+directory of the file system described by
+.I namespace
+(default
+.BR /lib/namespace.httpd ),
+using version 1.1 of the HTTP protocol.
+It announces the service
+.I srvaddr
+(default
+.BR tcp!*!http ),
+and listens for incoming calls.
+.PP
+.I Httpd
+supports only the GET and HEAD methods of the HTTP protocol;
+some magic programs support POST as well.
+Persistent connections are supported for HTTP/1.1 or later clients;
+all connections close after a magic command is executed.
+The Content-type
+(default application/octet-stream)
+and Content-encoding
+(default binary)
+of a file are determined by looking for suffixes of the file name in
+.BR /sys/lib/mimetype .
+.PP
+Each requested URI is looked up in a redirection table, read from
+.BR /sys/lib/httpd.rewrite .
+If a prefix of the URI matches a redirection path,
+the URI is rewritten using a replacement path,
+and a redirect is sent to the HTTP client.
+If the replacement path does not specify a server name,
+and the request has no explicit host,
+then
+.I domain
+is the host name used in the redirection.
+.PP
+Before opening any file,
+.I httpd
+looks for a file in the same directory called
+.BR .httplogin .
+If the file exists, the directory is considered
+locked and the client must specify a user name
+and password machine a pair in the file.
+.B .httplogin
+contains a list of space or newline separated tokens, each
+possibly delimited by single quotes. The first
+is a domain name presented to the HTTP client.
+The rest are pairs of user name and password.
+Thus, there can be many user name/password pairs
+valid for a directory.
+.PP
+If the requested URI begins with
+.BI /magic/ server /\f1,
+.I httpd
+executes the file
+.BI /bin/ip/httpd/ server
+to finish servicing the request.
+.IR Method
+and
+.IR version
+are those received on the first line of the request.
+.I Uri
+is the remaining portion of the requested URI.
+.I Inbuf
+contains the rest of the bytes read by the server,
+and
+.I netdir
+is the network directory for the connection.
+There are routines for processing command arguments,
+parsing headers, etc. in the httpd library,
+.BR /sys/src/cmd/ip/httpd/libhttpd.a.$O .
+See
+.B httpd.h
+in that directory and existing magic commands for more details.
+.PP
+.I Echo
+is a trivial server that just returns the method, URI, any search,
+the headers, and the message body sent by the client.
+.PP
+.I Save
+writes a line to
+.BI /usr/web/save/ uri .data
+and returns the contents of
+.BI /usr/web/save/ uri .html.
+Both files must be accessible for the request to succeed.
+The saved line includes the current time
+and either the search string from a HEAD or GET
+or the first line of the body from a POST.
+It is used to record form submissions.
+.PP
+.I Imagemap
+processes an HTML imagemap query.
+It looks up a the point
+.I search
+in the image map file given by
+.IR uri ,
+and returns a redirection to the appropriate page.
+The map file defaults to NCSA format.
+Any entries after a line starting with the word
+.B #cern
+are interpreted in CERN format.
+.PP
+.I Man2html
+converts
+.IR man (6)
+format manual pages into html.
+It includes some abilities to search the manuals.
+.SH FILES
+.TF /lib/namespace.httpd
+.TP
+.B /sys/lib/mimetype
+content type description file
+.TP
+.B /lib/namespace.httpd
+default namespace file for httpd
+.TP
+.B /sys/lib/httpd.rewrite
+redirection file
+.SH SOURCE
+.B /sys/src/cmd/ip/httpd
+.SH "SEE ALSO"
+.I newns
+in
+.IR auth (2),
+.IR listen (8)
diff --git a/static/plan9-4e/man8/init.8 b/static/plan9-4e/man8/init.8
new file mode 100644
index 00000000..94c3a465
--- /dev/null
+++ b/static/plan9-4e/man8/init.8
@@ -0,0 +1,87 @@
+.TH INIT 8
+.SH NAME
+init \- initialize machine upon booting
+.SH SYNOPSIS
+.B /$cputype/init
+[
+.B -ctm
+] [
+.I command ...
+]
+.SH DESCRIPTION
+.I Init
+initializes the machine: it establishes the name space (see
+.IR namespace (4)
+and
+.I newns
+in
+.IR auth (2)),
+and environment (see
+.IR env (3))
+and starts a shell
+.RI ( rc (1))
+on the console.
+If a
+.I command
+is supplied, that is run instead of the shell.
+On a CPU server the invoked shell runs
+.IR cpurc (8)
+before accepting commands on the console;
+on a terminal, it runs
+.IR termrc
+and then the user's profile.
+Options
+.B -t
+(terminal)
+and
+.B -c
+(CPU)
+force the behavior to correspond to the specified service class.
+Otherwise
+.I init
+uses the value of the environment variable
+.B $service
+to decide the service class.
+.PP
+.I Init
+sets environment variables
+.B $service
+(either to the incoming value or according to
+.B -t
+or
+.BR -c ),
+.B $objtype
+(to the value of
+.BR $cputype ),
+.B $user
+(to the contents of
+.BR #c/user ),
+and
+.B $timezone
+(to the contents of
+.BR /adm/timezone/local ).
+.PP
+With option
+.B -m
+.I init
+starts only an interactive shell
+regardless of the
+.I command
+or service class.
+.PP
+On a CPU server,
+.I init
+requires the machine's password to be supplied before starting
+.I rc
+on the console.
+.PP
+.I Init
+is invoked by
+.IR boot (8),
+which sets the arguments as appropriate.
+.SH SOURCE
+.B /sys/src/cmd/init.c
+.SH "SEE ALSO"
+.IR rc (1),
+.IR auth (2),
+.IR boot (8)
diff --git a/static/plan9-4e/man8/ipconfig.8 b/static/plan9-4e/man8/ipconfig.8
new file mode 100644
index 00000000..ef547979
--- /dev/null
+++ b/static/plan9-4e/man8/ipconfig.8
@@ -0,0 +1,205 @@
+.TH IPCONFIG 8
+.SH NAME
+ipconfig, rip \- Internet configuration and routing
+.SH SYNOPSIS
+.B ip/ipconfig
+.RB [ -ndDrG ]
+.RB [ -b
+.IR baud ]
+.RB [ -m
+.IR mtu ]
+.RB [ -g
+.IR gateway ]
+.RB [ -h
+.IR hostname ]
+.RB [ -x
+.IR netmtpt ]
+.I type
+.I device
+.RI [ verb ]
+.RI [ local-addr ]
+.RI [ mask ]
+.RI [ remote-addr ]
+.RI [ file-server-addr ]
+.RI [ auth-server-addr ]
+.PP
+.B ip/rip
+.RB [ -bdr ]
+.RB [ -x
+.IR netmtpt ]
+.SH DESCRIPTION
+.I Ipconfig
+binds a device interface (default
+.BR /net/ether0 )
+to a mounted IP stack (default
+.BR /net )
+and configures the interface with a local address, a
+mask, and a remote address. The addresses can be specified
+in the command line or obtained via DHCP. If DHCP is
+requested, it will also obtain the addresses of DNS
+servers, NTP servers, gateways, a Plan 9 file server,
+and a Plan 9 authentication server. If this is the first
+interface on the IP stack, the information will be
+written to
+.B /net/ndb
+in the form of an
+.IR ndb (8)
+entry.
+.PP
+.I Type
+may be
+.BR ether ,
+.BR ppp ,
+or
+.BR gbe .
+The
+.B gbe
+type is equivalent to
+.B ether
+except that it allows jumbo packets.
+For
+.B ppp
+the device can be any byte stream device.
+.PP
+The verb (default
+.IR add )
+determines the action performed. The verbs are:
+.TP
+.B add
+if the device is not bound to the IP stack, bind it.
+Add the given local address, mask, and remote address to the interface.
+An interface may have multiple addresses.
+.TP
+.B remove
+remove the address from the device interface.
+.TP
+.B unbind
+unbind the device interface and all its addresses from the
+IP stack.
+.PP
+The options are:
+.TP
+.B x
+use the IP stack mounted at
+.I netmtpt
+instead of at
+.BR /net .
+.TP
+.B g
+the default gateway.
+.TP
+.B d
+use DHCP to determine any unspecified configuration parameters.
+.TP
+.B r
+by default,
+.I ipconfig
+exits after trying DHCP for 15 seconds with no answer.
+This option directs
+.I ipconfig
+instead to fork a background
+process that keeps trying forever.
+.TP
+.B h
+the hostname to add to DHCP requests. Some DHCP
+servers, such as the one used by COMCAST, will not respond
+unless a correct hostname is in the request.
+.TP
+.B n
+determine parameters but don't configure the interface.
+.TP
+.B b
+the baud rate to use on a serial line
+when configuring
+.BR PPP .
+.TP
+.B D
+turn on debugging.
+.TP
+.B G
+use only generic DHCP options. Without this option,
+.I ipconfig
+adds to requests a Vendor Class option with value
+.BI plan9_$ cputype
+and also requests vendor specific options 128 and 129 which we
+interpret as the Plan 9 file server and auth server.
+Replies to these options contain a list of IP addresses for possible
+file servers and auth servers.
+.TP
+.B m
+the maximum IP packet size to use on this
+interface.
+.PP
+If DHCP is requested, a process is forked
+off to renew the lease before it
+runs out. If the lease does run out, this
+process will remove any configured addresses
+from the interface.
+.PP
+.I Rip
+runs the routing protocol RIP.
+It listens for RIP packets on connected networks and
+updates the kernel routing tables.
+The options are:
+.TP
+.B b
+broadcasts routing information onto the networks.
+.TP
+.B n
+gathers routing information but doesn't write to the
+route table. This is useful with
+.B \-d
+to debug a network.
+.TP
+.B x
+use the IP stack mounted at
+.I netmtpt
+instead of at
+.BR /net .
+.TP
+.B d
+turn on (voluminous) debugging.
+.PP
+.SH EXAMPLE
+Configure Ethernet 0 as the primary IP interface.
+Get all addresses via DHCP. Start up a connection server
+and DNS resolver for this IP stack.
+.IP
+.EX
+% bind -b '#l0' /net
+% bind -a '#I0' /net
+% ip/ipconfig
+% ndb/cs
+% ndb/dns -r
+.EE
+.PP
+Add a second address to the stack.
+.IP
+.EX
+% ip/ipconfig ether /net/ether0 add 12.1.1.2 255.255.255.0
+.EE
+.PP
+At Lucent our primary IP stack is always to the company's internal
+firewall-protected network. The following creates an external
+IP stack to directly access the outside Internet. Note that the
+connection server uses a different set of
+.I ndb
+files. This prevents us from confusing inside and outside name/address
+bindings.
+.IP
+.EX
+% bind -b '#l1' /net.alt
+% bind -b '#I1' /net.alt
+% ip/ipconfig -x /net.alt -g 204.178.31.1 ether /net.alt/ether1\\
+ 204.178.31.6 255.255.255.0
+% ndb/cs -x /net.alt -f /lib/ndb/external
+% ndb/dns -sx /net.alt -f /lib/ndb/external
+% aux/listen -d /rc/bin/service.alt /net.alt/tcp
+% aux/listen -d /rc/bin/service.alt /net.alt/il
+.EE
+.SH SOURCE
+.B /sys/src/cmd/ip/ipconfig.c
+.br
+.B /sys/src/cmd/ip/rip.c
+.SH "SEE ALSO"
+.IR ndb (6)
diff --git a/static/plan9-4e/man8/ipserv.8 b/static/plan9-4e/man8/ipserv.8
new file mode 100644
index 00000000..313a125f
--- /dev/null
+++ b/static/plan9-4e/man8/ipserv.8
@@ -0,0 +1,239 @@
+.TH IPSERV 8
+.SH NAME
+telnetd, rlogind, rexexec, ftpd, imap4d \- Internet remote access daemons
+.SH SYNOPSIS
+.PP
+.B ip/telnetd
+.RB [ -adnptN ]
+.RB [ -u
+.IR user ]
+.PP
+.B ip/rlogind
+.PP
+.B ip/rexexec
+.PP
+.B ip/ftpd
+.RB [ -adp ]
+.RB [ -n
+.IR namepace-file ]
+.PP
+.B ip/imap4d
+.RB [ -ap ]
+.RB [ -d
+.IR smtpdomain ]
+.RB [ -s
+.IR servername ]
+.PP
+.SH DESCRIPTION
+These programs support remote access across the Internet. All expect the
+network connection to be standard input, output, and error. They are normally
+started from scripts in
+.B /rc/bin/service
+(see
+.IR listen (8)).
+.PP
+.I Telnetd
+allows login from a remote client.
+There are three types of login:
+.TF anonymous
+.TP
+.I normal
+Normal users log in by encrypting and returning a
+challenge printed by
+.IR telnetd .
+The user can use either the
+.IR netkey
+program
+(see
+.IR passwd (1))
+or a SecureNet handheld authenticator to encrypt the challenge.
+.B /lib/namespace
+defines the namespace.
+.TP
+.I noworld
+Users in group
+.B noworld
+in
+.BR /adm/users
+authenticate with a password in the clear.
+.B /lib/namespace.noworld
+defines the namespace.
+.TP
+.I anonymous
+User
+.B none
+requires no authentication.
+.B /lib/namespace
+defines the namespace.
+.PD
+.PP
+The options are:
+.TP
+.B a
+allow anonymous login by
+.B none
+.TP
+.B d
+print debugging to standard error
+.TP
+.B p
+don't originate any telnet control codes
+.TP
+.B n
+turn on local character echoing and imply the
+.B p
+option
+.TP
+.B t
+trusted, that is, don't authenticate
+.TP
+.B u
+use
+.I user
+as the local account name
+.TP
+.B N
+permit connections by `noworld' users only.
+.PD
+.PP
+.I Rlogind
+logs in using the BSD remote login protocol.
+.I Rlogind
+execs
+.I telnetd
+.B -nu
+after completing its initial handshake.
+.PP
+.I Rexexec
+executes a command locally for a remote client. It uses the
+standard Plan 9 authentication (see
+.IR authsrv (6)).
+.PP
+.I Ftpd
+runs the Internet file transfer protocol. Users may transfer
+files in either direction between the local and
+remote machines.
+As for
+.IR telnetd ,
+there are three types of login:
+.TF anonymous
+.TP
+.I normal
+Normal users authenticate
+via the same challenge/response as for
+.IR telnetd .
+.BI /usr/ username /lib/namespace.ftp
+or, if that file does not exist,
+.B /lib/namespace
+defines the namespace.
+.TP
+.I noworld
+Users in group
+.B noworld
+in
+.B /adm/users
+login using a password in the clear.
+.B /lib/namespace.noworld
+defines the namespace.
+.TP
+.I anonymous
+Users
+.B anonymous
+and
+.B none
+require no authentication.
+The argument to the
+.B \-n
+option (default
+.IR /lib/namespace.ftp )
+defines the namespace.
+Anonymous users may only store files in the subtree
+below
+.BR /incoming .
+.PD
+.PP
+The options are:
+.TP
+.B a
+allow anonymous access
+.TP
+.B n
+the namespace for anonymous users (default
+.BR /lib/namespace.ftp )
+.TP
+.B d
+write debugging output to standard error
+.PP
+.I Imap4d
+provides access to a user's mailboxes via the IMAP4rev1 protocol.
+Only files rooted in
+.BI /mail/box/ username /
+are accessible.
+The list of subscribed mailboxes is contained in
+.BI /mail/box/ username /imap.subscribed ,
+and initially contains only
+.BR INBOX ,
+IMAP's name for the user's mailbox.
+A shadow file,
+.IB mailbox .imp ,
+is created for each mailbox examined.
+.PP
+The options are:
+.TP
+.B a
+Assume the user is already authenticated.
+By default, the user must authenticate using
+CRAM-MD5 or
+.IR securenet (8)
+challenge/response authentication.
+.TP
+.B p
+Allow login authentication. This option
+should only be enabled for servers using
+an encrypted connection, such as SSL,
+and when enabled, all non-encrypted connections should be disallowed.
+.I Imap4d
+does not enforce this policy.
+.TP
+.B s
+The server's name.
+If none is provided,
+.B cs
+(see
+.IR ndb (8))
+is queried or
+.B /env/sysname
+is used.
+.TP
+.B d
+The local mail domain.
+Defaults to the server
+.B /env/site
+in the mail server's domain.
+.SH FILES
+.B /lib/namepace
+.br
+.BI /usr/ username /lib/namespace.ftp
+.br
+.B /lib/namespace.world
+.br
+.B /lib/namespace.ftp
+.br
+.BI /mail/box/ username / mailbox
+.br
+.BI /mail/box/ username / mailbox .imp
+.br
+.BI /mail/box/ username /imap.subscribed
+.SH SOURCE
+.B /sys/src/cmd/ip/telnetd.c
+.br
+.B /sys/src/cmd/ip/rlogind.c
+.br
+.B /sys/src/cmd/ip/rexexec.c
+.br
+.B /sys/src/cmd/ip/ftpd.c
+.br
+.B /sys/src/cmd/ip/imap4d/
+.br
+.SH "SEE ALSO"
+.IR ftpfs (4)
diff --git a/static/plan9-4e/man8/kfscmd.8 b/static/plan9-4e/man8/kfscmd.8
new file mode 100644
index 00000000..e2122a6f
--- /dev/null
+++ b/static/plan9-4e/man8/kfscmd.8
@@ -0,0 +1,198 @@
+.TH KFSCMD 8
+.SH NAME
+kfscmd, ksync \- kfs administration
+.SH SYNOPSIS
+.B disk/kfscmd
+.RB [ -n
+.IR name ]
+cmd ...
+.PP
+.B disk/ksync
+.SH DESCRIPTION
+.I Kfs
+is a local user-level file server for a Plan 9 terminal with a disk.
+.I Kfscmd
+transmits commands to the
+.I kfs
+server (see
+.IR kfs (4)).
+The
+.B -n
+option changes the name of the kfs service to
+.BI kfs. name
+(by default, full name is just
+.BR kfs ).
+.PP
+.I Ksync
+executes the
+.B sync
+command for all active
+.I kfs
+servers.
+.PP
+The known commands are described below.
+Note that some commands are multiple words and
+should be quoted to appear as a single argument to
+.IR rc (1).
+.TP \w'\fLallowoff\ \fIn'u
+.B allow
+Turn permission checking off (to simplify administration).
+.TP
+.B allowoff
+.TP
+.B disallow
+Turn permission checking on.
+.TP
+.B noauth
+Disable authentication of users.
+.TP
+.B halt
+Write all changed blocks and stop the file system.
+.TP
+.B start
+The opposite of halt; restart the file system.
+.TP
+.B help
+Print the list of commands.
+.TP
+.BI "rename " "file name"
+Change the name of
+.I file
+to
+.IR name .
+.I Name
+may be a single path element or a full path; if it is a full path,
+every element along the path must exist except the last.
+.TP
+.BI "newuser " user
+Add
+.I user
+to
+.B /adm/users
+and make the standard directories needed for booting.
+.TP
+.BI "remove " file
+Remove
+.I file
+and place its blocks on the free list.
+.TP
+.BI "clri " file
+Remove
+.I file
+but do not place the blocks on the free list.
+This command can be used to remove files that have duplicated blocks.
+The non-duplicate blocks can be retrieved by checking the file system
+with option
+.B f
+(see below).
+.TP
+.BI create \ file\ owner\ group\ mode\ [adl]
+Create the file. Owner and group are users in
+.B /adm/users
+and mode is an octal number.
+If present,
+.L a
+creates an append only file,
+.L d
+creates a directory, and
+.L l
+creates a file that is exclusive-use.
+.TP
+.B sync
+Write to disk all of the dirty blocks in the memory cache.
+.TP
+.B atime
+Toggle whether atimes are updated as files and directories
+are accessed. By default, atimes are updated. On laptops it can be
+useful to turn off atime updates to reduce disk accesses.
+.TP
+.B stats
+Report statistics about the performance of the file system.
+.TP
+.B user
+Re-initialize authentication information by reading
+.BR /adm/users .
+.TP
+.BI cfs " filsys
+Change the `console' to the named file system (default is the main system).
+.TP
+.B chat
+Toggle tracing of 9P messages.
+.TP
+.B check [PRdfprtw]
+Check the file system.
+The options are
+.PD 0
+.RS
+.TP
+.B p
+print the names of directories as they are checked.
+.TP
+.B P
+print the names of all files as they are checked.
+.TP
+.B r
+read all of the data blocks and check the tags.
+.TP
+.B f
+rebuild the list of free blocks.
+.TP
+.B d
+delete redundant references to a block.
+.TP
+.B t
+fix bad tags.
+.TP
+.B c
+fix bad tags and clear the contents of the block.
+.TP
+.B w
+write all of the blocks that are touched.
+.RE
+.PD
+.TP
+.BI listen " [address]
+Start a listener to serve the network at
+.IR address ,
+default
+.BR il!*!17008 .
+This feature is intended to facilitate small networks of a couple
+machines in the situation when convenience is more
+important than performance.
+This command is only useful on machines with
+(possibly simulated) NVRAM, which needs to be readable
+to the
+.I kfs
+processes;
+see
+.I readnvram
+in
+.IR authsrv (2).
+The production file server
+(see
+.IR fs (4))
+is strongly encouraged for anything more than casual use.
+.TP
+.B noneattach
+When listening to the network, the default behavior is that the user
+.B none
+may only attach over connections that have already
+authenticated as someone else.
+This prevents just anyone from being
+able to dial your server and attach as
+.BR none .
+The
+.B noneattach
+command toggles whether
+.B none
+can attach without such a chaperone.
+.PD
+.SH SOURCE
+.B /sys/src/cmd/disk/kfscmd.c
+.br
+.B /$objtype/bin/disk/ksync
+.SH "SEE ALSO"
+.IR kfs (4),
+.IR mkfs (8),
+.IR prep (8),
+.IR sd (3)
diff --git a/static/plan9-4e/man8/listen.8 b/static/plan9-4e/man8/listen.8
new file mode 100644
index 00000000..4e4c5378
--- /dev/null
+++ b/static/plan9-4e/man8/listen.8
@@ -0,0 +1,172 @@
+.TH LISTEN 8
+.SH NAME
+listen, il7, il9, il19, il565, il566, il17007, il17008, il17009, il17013, il17031, tcp7, tcp9, tcp19, tcp21, tcp23, tcp25, tcp53, tcp110, tcp113, tcp143, tcp513, tcp515, tcp564, tcp565, tcp566, tcp567, tcp993, tcp17007, tcp17009, tcp17013 \- listen for calls on a network device
+.SH SYNOPSIS
+.B aux/listen
+.RB [ -q ]
+.RB [ -d
+.IR srvdir ]
+.RB [ -t
+.IR trustsrvdir ]
+.RB [ -n
+.IR namespace ]
+.RI[ net
+.RI [ name ]]
+.SH DESCRIPTION
+.I listen
+announces itself to a network as
+.I name
+(by default the contents of
+.BR /env/sysname )
+and listens for inbound calls to local services.
+.I Net
+is the network protocol on which to listen, by default
+.BR /net/il .
+The services available are executable files in
+.I srvdir
+or
+.IR trustsrvdir .
+If neither
+.I srvdir
+nor
+.I trustsrvdir
+is given,
+.I listen
+looks for executable files in
+.BR /bin/service .
+Services found in
+.I srvdir
+are executed as user
+.BR none ;
+services found in
+.I trustsrvdir
+as executed as the user who started
+.IR listen .
+Option
+.B -q
+suppresses affirmative log information;
+option
+.B -n
+sets an alternate
+.I namespace
+file (default
+.BR /lib/namespace ).
+.PP
+Service names are made by concatenating the name of
+the network with the name of the service or port.
+For example,
+an inbound call on the TCP network for port 565 executes service
+.BR tcp565 .
+.PP
+The following services are available in
+.BR /bin/service .
+.TF il17005\ tcp17005
+.TP
+.B il19 tcp19
+.B chargen
+service.
+.TP
+.B il17007 tcp17007
+serve a piece of the name space using the Plan 9 file system protocol,
+with authentication (typically used by
+.IR cpu (1)).
+.TP
+.B tcp564
+like 17007, without authentication (used by Unix
+systems to see Plan 9 files).
+.TP
+.B il17008
+like 17007, but serves the root of the tree, forgoing the negotiation for which subtree to serve.
+.TP
+.B il17009 tcp17009
+remote execution.
+.TP
+.B "il17013 tcp17013"
+server for
+.IR cpu (1)
+command.
+.TP
+.B il17031
+server for
+.IR ramfs (4).
+.TP
+.B il565 tcp565
+report the address of the incoming call.
+.TP
+.B tcp21
+FTP daemon
+.TP
+.B tcp515
+LP daemon; see
+.IR lp (8).
+.TP
+.B tcp23
+.B telnet
+terminal connection.
+.TP
+.B tcp25
+mail delivery.
+.TP
+.B tcp513
+.B rlogin
+terminal connection.
+.TP
+.B il7 tcp7
+echo any bytes received (bit mirror)
+.TP
+.B il9 tcp9
+consume any bytes received (bit bucket)
+.TP
+.B tcp53
+TCP port for DNS.
+.TP
+.B tcp110
+POP3 port.
+.TP
+.B tcp143
+IMAP4rev1 port.
+.TP
+.B tcp113
+.B Ident
+port (always reports
+.BR none ).
+.TP
+.B tcp567
+Plan 9 ticket service.
+.PD
+.PP
+The following services are available in
+.BR /bin/service.auth .
+.TF il565\ tcp565
+.TP
+.B tcp566
+check a SecureNet box.
+.TP
+.B il566
+authentication requests.
+.TP
+.B tcp993
+Secure IMAP4rev1 port.
+.SH FILES
+.TF /env/sysname
+.TP
+.B /net/il
+by convention, IL device bind point
+.TP
+.B /net/tcp
+by convention, TCP device bind point
+.TP
+.B /env/sysname
+default announced name
+.SH SOURCE
+The source to
+.I listen
+is in
+.BR /sys/src/cmd/aux/listen.c .
+The other commands are
+.IR rc (1)
+scripts in
+.BR /rc/bin/service .
+.SH "SEE ALSO"
+.IR authsrv (6),
+.IR dial (2)
diff --git a/static/plan9-4e/man8/lp.8 b/static/plan9-4e/man8/lp.8
new file mode 100644
index 00000000..f4502bc9
--- /dev/null
+++ b/static/plan9-4e/man8/lp.8
@@ -0,0 +1,126 @@
+.TH LP 8
+.SH NAME
+lp \- PostScript preprocessors
+.SH DESCRIPTION
+These programs are part of the
+.IR lp (1)
+suite.
+Each corresponds to a
+.I process
+in the
+.BI -p process
+option of
+.I lp
+and exists as an
+.IR rc (1)
+script in
+.B /sys/lib/lp/process
+that provides an interface to a PostScript conversion program in
+.BR /$cputype/bin/aux .
+The list of processors follows;
+after each description is a bracketed list of
+.I lp
+options to which the processor responds:
+.TF \fIp9bitpost\fP
+.TP
+.I dpost
+converts
+.IR troff (1)
+output for device
+.SM post
+to PostScript.
+This is used for files troff'ed on our
+.SM UNIX
+systems that do not handle
+.SM UTF
+characters.
+.RB [ DLcimnorxy ]
+.TP
+.I dvipost
+converts
+.IR tex (1)
+output to PostScript.
+.RB [ Lcinor ]
+.TP
+.I g3post
+converts CCITT Group 3 FAX data to PostScript.
+.RB [ DLm ]
+.TP
+.I gifpost
+converts GIF image data to PostScript.
+.RB [ DLm ]
+.TP
+.I generic
+is the default processor.
+It uses
+.IR file (1)
+to determine the type of input and executes the correct
+processor for a given (input, printer) pair.
+.TP
+.I hpost
+adds a header page to the beginning of a PostScript printer
+job so that it may be separated from other jobs in the output bin.
+The header has the image of the job's owner from the directory of faces (see
+.IR face (6)).
+Page reversal is also done in this processor.
+.TP
+.I jpgpost
+converts JPEG image data to PostScript.
+.RB [ DLm ]
+.TP
+.I noproc
+passes files through untouched.
+.TP
+.I p9bitpost
+.na
+converts a Plan 9 image to PostScript, such as
+.B /dev/screen
+for the whole screen,
+.B /dev/window
+for that window's data,
+and
+.B /dev/wsys/.../window
+for some other window's data.
+.RB [ DLm ]
+.ad
+.TP
+.I pdfpost
+converts PDF data to PostScript.
+.TP
+.I post
+passes PostScript through, adding option patches for paper tray information.
+This does not always work with PostScript generated on other systems.
+.TP
+.I ppost
+converts
+.SM UTF
+text to PostScript.
+.RB [ DLcfilmnorxy ]
+.TP
+.I tr2post
+converts
+.IR troff (1)
+output for device
+.SM utf
+(the default) to PostScript.
+See
+.B /sys/lib/troff/font/devutf
+directory for troff font width table descriptions.
+See also the
+.B /sys/lib/postscript/troff
+directory for mappings of
+troff
+.SM UTF
+character space to PostScript
+font space.
+.RB [ DLcimnorxy ]
+.SH SOURCE
+.B /sys/src/cmd/postscript
+.SH SEE ALSO
+.IR lp (1)
+.SH BUGS
+The
+.I file
+command is not always smart enough to deal with certain file
+types.
+There are PostScript conversion programs that do not have processors to drive them.
diff --git a/static/plan9-4e/man8/mk9660.8 b/static/plan9-4e/man8/mk9660.8
new file mode 100644
index 00000000..0f50b7fe
--- /dev/null
+++ b/static/plan9-4e/man8/mk9660.8
@@ -0,0 +1,231 @@
+.TH MK9660 8
+.SH NAME
+dump9660, mk9660 \- create an ISO-9660 CD image
+.SH SYNOPSIS
+.B disk/mk9660
+[
+.B -:D
+]
+[
+.B -9cjr
+]
+[
+.B -b
+.I bootfile
+]
+[
+.B -p
+.I proto
+]
+[
+.B -s
+src
+]
+[
+.B -v
+volume
+]
+.I image
+.PP
+.B disk/dump9660
+[
+.B -:D
+]
+[
+.B -9cjr
+]
+[
+.B -p
+.I proto
+]
+[
+.B -s
+src
+]
+[
+.B -v
+volume
+]
+[
+.B -m
+.I maxsize
+]
+[
+.B -n
+.I now
+]
+.I image
+.SH DESCRIPTION
+.I Mk9660
+writes to the random access file
+.I image
+an ISO-9660 CD image containing the
+files named in
+.I proto
+(default
+.BR /sys/lib/sysconfig/proto/allproto )
+from the file tree
+.I src
+(default
+.BR / ).
+The
+.I proto
+file is formatted as described in
+.IR mkfs (8).
+.PP
+The created CD image will be in ISO-9660
+format, but by default the file names will
+be stored in UTF-8 with no imposed length
+or character restrictions.
+The
+.B -c
+flag causes
+.I mk9660
+to use only file names in ``8.3'' form
+that use digits, letters, and underscore.
+File names that do not conform are changed
+to
+.BI D nnnnnn
+(for directories)
+or
+.BI F nnnnnn
+(for files);
+a key file
+.B _CONFORM.MAP
+is created in the root
+directory to ease the reverse process.
+.PP
+If the
+.B -9
+flag is given, the system use fields at the end of
+each directory entry will be populated with
+Plan directory information (owner, group, mode,
+full name); this is interpreted by
+.IR 9660srv .
+.PP
+If the
+.B -j
+flag is given, the usual directory tree is written,
+but an additional tree in Microsoft Joliet format is
+alos added.
+This second tree can contain long Unicode file names,
+and can be read by
+.I 9660srv
+as well as most versions of Windows
+and many Unix clones.
+The characters
+.BR * ,
+.BR : ,
+.BR ; ,
+.BR ? ,
+and
+.B \e
+are allowed in Plan 9 file names but not in Joliet file names;
+non-conforming file names are translated
+and a
+.B _CONFORM.MAP
+file written
+as in the case of the
+.B -c
+option.
+.PP
+If the
+.B -r
+flag is given, Rock Ridge extensions are written in the
+format of the system use sharing protocol;
+this format provides Posix-style file metadata and is
+common on Unix platforms.
+.PP
+The options
+.BR -c ,
+.BR -9 ,
+.BR -j ,
+and
+.B -r
+may be mixed freely with the exception that
+.B -9
+and
+.B -r
+are mutually exclusive.
+.PP
+The
+.B -v
+flag sets the volume title;
+if unspecified, the base name of
+.I proto
+is used.
+.PP
+The
+.B -:
+flag causes
+.B mk9660
+to replace colons in scanned file names with spaces;
+this is the inverse of the map applied by
+.IR dossrv (4)
+and is useful for writing Joliet CDs containing data
+from FAT file systems.
+.PP
+The
+.B -b
+option creates a bootable CD.
+Bootable CDs contain pointers to floppy images which are
+loaded and booted by the BIOS.
+.I Bootfile
+should be the name of the floppy image to use;
+it is a path relative to the root of the created CD.
+That is, the boot floppy image must be listed in the
+.I proto
+file already:
+the
+.B -b
+flag just creates a pointer to it.
+.PP
+The
+.B -D
+flag creates immense amounts of debugging output
+on standard error.
+.PP
+.I Dump9660
+is similar in specification to
+.I mk9660
+but creates and updates backup CD images in the style of
+the
+.I dump
+file system
+(see
+.IR fs (4)).
+The dump is file-based rather than block-based:
+if a file's contents have not changed since the last
+backup, only its directory entry will be rewritten.
+.PP
+The
+.B -n
+option specifies a time (in seconds since January 1, 1970)
+to be used for naming the dump directory.
+.PP
+The
+.B -m
+option specifies a maximum size for the image;
+if a backup would cause the image to grow larger than
+.IR maxsize ,
+it will not be written, and
+.I dump9660
+will exit with a non-empty status.
+.SH EXAMPLE
+.PP
+Create an image of the Plan 9 source tree,
+including a conformant ISO-9660 directory tree,
+Plan 9 extensions in the system use fields, and
+a Joliet directory tree.
+.IP
+.EX
+disk/mk9660 -9cj -s /n/bootes -p plan9proto cdimage
+.EE
+.SH SOURCE
+.B /sys/src/cmd/disk/9660
+.SH "SEE ALSO"
+.I 9660srv
+(in
+.IR dossrv (4)),
+.IR cdfs (4),
+.IR mkfs (8)
diff --git a/static/plan9-4e/man8/mkfs.8 b/static/plan9-4e/man8/mkfs.8
new file mode 100644
index 00000000..796539ab
--- /dev/null
+++ b/static/plan9-4e/man8/mkfs.8
@@ -0,0 +1,187 @@
+.TH MKFS 8
+.SH NAME
+mkfs, mkext \- archive or update a file system
+.SH SYNOPSIS
+.B disk/mkfs
+.RB [ -aprvxU ]
+.RB [ -d
+.IR root ]
+.RB [ -n
+.IR name ]
+.RB [ -s
+.IR source ]
+.RB [ -u
+.IR users ]
+.RB [ -z
+.IR n ]
+.I proto ...
+.PP
+.B disk/mkext
+.RB [ -d
+.IR name ]
+.RB [ -u ]
+.RB [ -h ]
+.RB [ -v ]
+.RB [ -x ]
+.I file ...
+.SH DESCRIPTION
+.I Mkfs
+copies files from the file tree
+.I source
+(default
+.BR / )
+to a
+.B kfs
+file system (see
+.IR kfs (4)).
+The kfs service is mounted on
+.I root
+(default
+.BR /n/kfs ),
+and
+.B /adm/users
+is copied to
+.IB root /adm/users\f1.
+The
+.I proto
+files are read
+(see
+.IR proto (2)
+for their format)
+and any files specified in them that are out of date are copied to
+.BR /n/kfs .
+.PP
+.I Mkfs
+copies only those files that are out of date.
+Such a file is first copied into a temporary
+file in the appropriate destination directory
+and then moved to the destination file.
+Files in the
+.I kfs
+file system that are not specified in the
+.I proto
+file
+are not updated and not removed.
+.PP
+The options to
+.I mkfs
+are:
+.TF "s source"
+.TP
+.B a
+Instead of writing to a
+.B kfs
+file system, write an archive file to standard output, suitable for
+.IR mkext .
+All files in
+.IR proto ,
+not just those out of date, are archived.
+.TP
+.B x
+For use with
+.BR -a ,
+this option writes a list of file names, dates, and sizes to standard output
+rather than producing an archive file.
+.TP
+.BI "d " root
+Copy files into the tree rooted at
+.I root
+(default
+.BR /n/kfs ).
+This option suppresses setting the
+.B uid
+and
+.B gid
+fields when copying files.
+Use
+.B -U
+to reenable it.
+.TP
+.BI "n " name
+Use
+.RI kfs. name
+as the name of the kfs service (default
+.BR kfs ).
+.TP
+.B p
+Update the permissions of a file even if it is up to date.
+.TP
+.B r
+Copy all files.
+.TP
+.BI "s " source
+Copy from files rooted at the tree
+.IR source .
+.TP
+.BI "u " users
+Copy file
+.I users
+into
+.B /adm/users
+in the new system.
+.TP
+.B v
+Print the names of all of the files as they are copied.
+.TP
+.BI "z " n
+Copy files assuming kfs block
+.I n
+(default 1024)
+bytes long.
+If a block contains only 0-valued bytes, it is not copied.
+.PD
+.PP
+.I Mkext
+unpacks archive files made by the
+.B -a
+option of
+.IR mkfs .
+The
+.B -d
+option specifies a directory (default
+.BR / )
+to serve as the root of the unpacked file system.
+The
+.B -u
+option, to be used only when initializing a new
+.IR fs (4)
+file system, sets the owners of the files created to correspond to
+those in the archive and restores the modification times of the files.
+(This is only permitted at the initial load of the files into a file
+system.)
+Each file on the command line is unpacked in one pass through the archive.
+If the file is a directory,
+all files and subdirectories of that directory are also unpacked.
+When a file is unpacked, the entire path is created if it
+does not exist.
+If no files are specified, the entire archive is unpacked;
+in this case, missing intermediate directories are not created.
+The
+.B -v
+option prints the names and sizes of files as they are extracted;
+.B -h
+prints headers for the files on standard output
+instead of unpacking the files.
+.SH EXAMPLES
+.PP
+Make an archive to establish a new file system:
+.IP
+.EX
+disk/mkfs -a -u files/adm.users -s dist proto > arch
+.EE
+.PP
+Unpack that archive onto a new file system:
+.IP
+.EX
+srv il!newfs
+mount -c /srv/il!newfs /n/newfs
+disk/mkext -u -d /n/newfs < arch
+.EE
+.SH SOURCE
+.B /sys/src/cmd/disk/mkfs.c
+.br
+.B /sys/src/cmd/disk/mkext.c
+.SH "SEE ALSO"
+.IR prep (8),
+.IR kfscmd (8),
+.IR sd (3)
diff --git a/static/plan9-4e/man8/mkpaqfs.8 b/static/plan9-4e/man8/mkpaqfs.8
new file mode 100644
index 00000000..691f4856
--- /dev/null
+++ b/static/plan9-4e/man8/mkpaqfs.8
@@ -0,0 +1,52 @@
+.TH MKPAQFS 8
+.SH NAME
+mkpaqfs \- make a compressed read-only file system
+.SH SYNOPSIS
+.B mkpaqfs
+[
+.B -u
+] [
+.B -b
+.I blocksize
+] [
+.B -l
+.I label
+] [
+.B -o
+.I file
+] [
+.I source
+]
+.SH DESCRIPTION
+.I Mkpaqfs
+copies files from the file tree
+.I source
+(default
+.BR . )
+to a the
+.IR paqfs (4)
+file system archive
+.IR file .
+.PP
+The files and directory structure are divided into
+.I blocksize
+(default
+.BR 4096 )
+byte blocks.
+Larger blocks make large files more compact but take longer to access.
+.I Blocksize
+must be in the range of 512 bytes to 52K bytes.
+If the
+.B -u
+option is set, the blocks are not compressed.
+Otherwise each block is compressed using the
+.IR flate (2)
+compression algorithm.
+The
+.B -l
+option embeds a label of up to 32 bytes within the file header and may be
+useful for identifying the file system.
+.SH SOURCE
+.B /sys/src/cmd/paqfs/mkpaqfs.c
+.SH "SEE ALSO"
+.IR paqfs (4)
diff --git a/static/plan9-4e/man8/mksacfs.8 b/static/plan9-4e/man8/mksacfs.8
new file mode 100644
index 00000000..fbeb11c2
--- /dev/null
+++ b/static/plan9-4e/man8/mksacfs.8
@@ -0,0 +1,38 @@
+.TH MKSACFS 8
+.SH NAME
+mksacfs \- make a compressed file system
+.SH SYNOPSIS
+.B disk/mksacfs
+.RB [ -u ]
+.RB [ -b
+.IR blocksize ]
+.RB [ -o
+.IR file ]
+.I source
+.SH DESCRIPTION
+.I Mksacfs
+copies files from the file tree
+.I source
+(default
+.BR . )
+to a the
+.IR sacfs (4)
+file system archive
+.IR file .
+.PP
+The files and directory structure are divided into
+.I blocksize
+(default
+.BR 4096 )
+byte blocks.
+Larger blocks make large files more compact but take longer to access.
+.I Blocksize
+must be at least 116.
+If
+.B -u
+is given, the blocks are not compressed.
+Otherwise each block is compressed using an efficient compression algorithm.
+.SH SOURCE
+.B /sys/src/cmd/disk/sacfs/mksacfs.c
+.SH "SEE ALSO"
+.IR sacfs (4)
diff --git a/static/plan9-4e/man8/mouse.8 b/static/plan9-4e/man8/mouse.8
new file mode 100644
index 00000000..a3bb52ea
--- /dev/null
+++ b/static/plan9-4e/man8/mouse.8
@@ -0,0 +1,120 @@
+.TH MOUSE 8
+.SH NAME
+aux/mouse, aux/accupoint \- configure a mouse to a port
+.SH SYNOPSIS
+.B aux/mouse
+[
+.B -b
+.I baud
+] [
+.B -d
+.I type
+] [
+.B -n
+]
+.I port
+.PP
+.B aux/accupoint
+.SH DESCRIPTION
+.B Mouse
+queries a mouse on a serial or PS2 port for
+its type and then configures the port and the
+mouse to be used to control the cursor.
+.PP
+.I Port
+can be either a port number (e.g.
+.B 0
+or
+.BR 1 )
+or the string
+.B ps2
+or
+.BR ps2intellimouse .
+The initialization can be automated by setting
+.BR mouseport
+in
+.IR plan9.ini (8),
+which will enable a call to
+.I mouse
+in
+.B termrc
+(see
+.IR cpurc (8)).
+.PP
+The option
+.B -d
+provides a default mouse type should
+.B mouse
+fail to determine it. The
+types are:
+.IP C
+Logitech type C mouse
+.IP W
+Logitech type W mouse
+.IP M
+Microsoft compatible mouse
+.PP
+The
+.B -n
+flag queries the mouse and reports its type but does not set the device type.
+.PP
+The
+.B -b
+flag sets the baud rate for communication; it is effectual only for serial mice.
+.SH
+.I Accupoint
+is a process, to be used with
+.IR pipefile (1),
+that processes events from an AccuPoint II pointing device
+with four buttons, such as on Toshiba Portégé 3440CT and 3480CT
+laptops, converting events on the two extra buttons
+(which appear as buttons 4 and 5 in the
+.IR mouse (3)
+interface) into a simulation of button 2.
+These extra buttons on laptops are in turn simulations of Intellimouse
+scrolling buttons and have peculiar properties: they generate
+only `down' events that repeat automatically, like a keypad, in
+an approximation of the Intellimouse scroll wheel.
+.I Accupoint
+overcomes this behavior to produce a reasonable approximation of
+a normal mouse button 2:
+it makes left button act like a regular button 2, but is slow to release (the
+program must wait for a repeat time before it knows the button has been released),
+while the right button generates a fast button 2 `click'.
+To use
+.IR accupoint ,
+add a line like this to
+.B /usr/$user/lib/profile
+or to a system-dependent configuration script in
+.B termrc
+(see
+.IR cpurc (8)):
+.EX
+.IP
+pipefile -dr /bin/aux/accupoint /dev/mouse
+.EE
+.PP
+Before running
+.IR accupoint ,
+the mouse should be configured as an
+.B intellimouse
+or
+.BR ps2intellimouse .
+.SH SOURCE
+.B /sys/src/cmd/aux/mouse.c
+.br
+.B /sys/src/cmd/aux/accupoint.c
+.SH SEE ALSO
+.IR cons (3),
+.IR cpurc (8),
+.IR pipefile (1).
+.SH BUGS
+Due to the limitations of
+.IR pipefile (1),
+when running
+.I accupoint
+it is difficult restart
+.IR rio (1)
+if it has exited.
+
+
diff --git a/static/plan9-4e/man8/na.8 b/static/plan9-4e/man8/na.8
new file mode 100644
index 00000000..eb0a111e
--- /dev/null
+++ b/static/plan9-4e/man8/na.8
@@ -0,0 +1,33 @@
+.TH NA 8
+.SH NAME
+na \- assembler for the Symbios Logic PCI-SCSI I/O Processors
+.SH SYNOPSIS
+.B aux/na file
+.SH DESCRIPTION
+The SYM53C8XX series of PCI-SCSI I/O Processors contain
+loadable microcode to control their operation.
+The microcode is written in a language called SCRIPTS.
+.I Aux/na
+is an assembler for the SCRIPTS programming language.
+It assembles SCRIPTS code in
+.I file
+into an array of assembled SCRIPTS
+instructions, patches, defines and enums
+that can be included in a C device driver.
+.SH SOURCE
+.TF /sys/src/cmd/aux/na
+.TP
+.B /sys/src/cmd/aux/na
+.SH "SEE ALSO"
+Symbios Logic,
+``PCI-SCSI I/O Processors Programming Guide Version 2.1''
+.br
+.TF /sys/src/9/*/sd53c8xx.c
+.TP
+.B /sys/src/9/*/sd53c8xx.n
+SCRIPTS source code
+.TP
+.B /sys/src/9/*/sd53c8xx.c
+driver for the SYM53C8XX series of PCI-SCSI controllers
+.SH AUTHOR
+Nigel Roles (ngr@9fs.org)
diff --git a/static/plan9-4e/man8/ndb.8 b/static/plan9-4e/man8/ndb.8
new file mode 100644
index 00000000..322a1373
--- /dev/null
+++ b/static/plan9-4e/man8/ndb.8
@@ -0,0 +1,459 @@
+.TH NDB 8
+.SH NAME
+query, mkhash, mkdb, cs, csquery, dns, dnsquery, ipquery, dnsdebug, mkhosts \- network database
+.SH SYNOPSIS
+.B ndb/query
+[
+.B -f
+.I dbfile
+]
+.I "attr value"
+[
+.I rattr
+]
+.br
+.B ndb/ipquery
+.I "attr value"
+.I rattr...
+.br
+.B ndb/mkhash
+.I "file attr"
+.br
+.B ndb/cs
+[
+.B -n
+] [
+.B -f
+.I dbfile
+] [
+.B -x
+.I netmtpt
+]
+.br
+.B ndb/csquery
+[
+.B -s
+]
+[
+.B server
+[
+.I addr...
+]
+]
+.br
+.B ndb/dns
+[
+.B -rs
+] [
+.B -f
+.I dbfile
+] [
+.B -x
+.I netmtpt
+]
+.br
+.B ndb/dnsquery
+.br
+.B ndb/dnsdebug
+[
+.B -rx
+]
+[ [
+.BI @ server
+]
+.I domain-name
+[
+.I type
+] ]
+.br
+.B ndb/mkdb
+.SH DESCRIPTION
+The network database holds administrative information used by
+network programs such as
+.IR dhcpd (8),
+.IR ipconfig (8),
+.IR con (1),
+etc.
+.PP
+.I Ndb/query
+searches the database for an attribute of type
+.I attr
+and value
+.IR value .
+If
+.I rattr
+is not specified, all entries matched by the search are returned.
+If
+.I rattr
+is specified, the value of the first pair with attribute
+.I rattr
+of all the matched entries is returned.
+.PP
+.I Ndb/ipquery
+uses
+.I ndbipinfo
+(see
+.IR ndb (2))
+to search for the values of the attributes
+.I rattr
+corresponding to the system
+with entries of attribute type
+.I attr
+and
+value
+.IR value .
+.PP
+.I Ndb/mkhash
+creates a hash file for all entries with attribute
+.I attr
+in database file
+.IR file .
+The hash files are used by
+.I ndb/query
+and by the ndb library routines.
+.PP
+.I Ndb/cs
+is a server used by
+.IR dial (2)
+to translate network names.
+It is started at boot time.
+It finds out what networks are configured
+by looking for
+.B /net/*/clone
+when it starts.
+It can also be told about networks by writing
+to
+.B /net/cs
+a message of the form:
+.IP
+.B "add net1 net2 ..."
+.PP
+.I Ndb/cs
+also sets the system name in
+.B /dev/sysname
+if it can figure it out.
+The options are:
+.TP
+.B -f
+supplies the name of the data base file to use,
+default
+.BR /lib/ndb/local .
+.TP
+.B -x
+specifies the mount point of the
+network.
+.TP
+.B -n
+causes cs to do nothing but set the system name.
+.PP
+.I Ndb/csquery
+can be used to query
+.I ndb/cs
+to see how it resolves addresses.
+.I Ndb/csquery
+prompts for addresses and prints out what
+.I ndb/cs
+returns.
+.I Server
+defaults to
+.BR /net/cs .
+If any
+.I addrs
+are specified,
+.I ndb/csquery
+prints their translations and immediately exits.
+The exit status will be nil only if all addresses
+were successfully translated
+The
+.B -s
+flag sets exit status without printing any results.
+.PP
+.I Ndb/dns
+is a server used by
+.I ndb/cs
+and by remote systems to translate Internet domain names.
+.I Ndb/dns
+is started at boot time.
+By default
+.I dns
+serves only requests written to
+.BR /net/dns .
+The options are:
+.TP
+.B -f
+supplies the name of the data base file to use,
+default
+.BR /lib/ndb/local .
+.TP
+.B -x
+specifies the mount point of the
+network.
+.TP
+.B -s
+also answer domain requests sent to UDP port 53.
+.TP
+.B -r
+defer to other servers to resolve queries.
+.PP
+When the
+.B -r
+option is specified, the servers used come from the
+.I dns
+attribute in the database. For example, to specify a set of dns servers that
+systems on the network
+.IR mh-net :
+.EX
+
+ipnet=mh-net ip=135.104.0.0 ipmask=255.255.0.0
+ dns=ns1.cs.bell-labs.com
+ dns=ns2.cs.bell-labs.com
+dom=ns1.cs.bell-labs.com ip=135.104.1.11
+dom=ns2.cs.bell-labs.com ip=135.104.1.12
+
+.EE
+.PP
+The server for a domain is indicated by a database entry containing
+both a
+.I dom
+and a
+.I ns
+attribute.
+For example, the entry for the Internet root is:
+.EX
+
+dom=
+ ns=A.ROOT-SERVERS.NET
+ ns=B.ROOT-SERVERS.NET
+ ns=C.ROOT-SERVERS.NET
+dom=A.ROOT-SERVERS.NET ip=198.41.0.4
+dom=B.ROOT-SERVERS.NET ip=128.9.0.107
+dom=C.ROOT-SERVERS.NET ip=192.33.4.12
+
+.EE
+The last three lines provide a mapping for the
+server names to their ip addresses. This is only
+a hint and will be superseded from whatever is learned
+from servers owning the domain.
+.PP
+The root of a domain subtree served by the local database is indicated
+by an entry with an
+.B soa
+attribute.
+For example, the Bell Labs CS research domain is:
+.EX
+
+dom=cs.bell-labs.com soa=
+ refresh=3600 ttl=3600
+ ns=plan9.bell-labs.com
+ ns=ns1.cs.bell-labs.com
+ ns=ns2.cs.bell-labs.com
+ mb=presotto@plan9.bell-labs.com
+ mx=mail.research.bell-labs.com pref=20
+ mx=plan9.bell-labs.com pref=10
+
+.EE
+Here, the
+.B mb
+entry is the mail address of the person responsible for the
+domain (default
+.BR postmaster ).
+The
+.B mx
+entries list mail exchangers for the domain name and
+.B refresh
+and
+.B ttl
+define the area refresh interval and the minimum TTL for
+records in this domain.
+.PP
+Delegation of a further subtree to another set of name servers
+is indicated by an
+.B soa=delegated
+attribute.
+.EX
+
+dom=bignose.cs.research.bell-labs.com
+ soa=delegated
+ ns=anna.cs.research.bell-labs.com
+ ns=dj.cs.research.bell-labs.com
+
+.EE
+Nameservers within the delegated domain (as in this example)
+must have their IP addresses listed elsewhere in
+.I ndb
+files.
+.PP
+Wild-carded domain names can also be used.
+For example, to specify a mail forwarder for all Bell Labs research systems:
+.EX
+
+dom=*.research.bell-labs.com
+ mx=research.bell-labs.com
+
+.EE
+`Cname' aliases may be established by adding a
+.B cname
+attribute giving the real domain name;
+the name attached to the
+.B dom
+attribute is the alias.
+`Cname' aliases are severely restricted;
+the aliases may have no other attributes than
+.B dom
+and are daily further restricted in their use by new RFCs.
+.EX
+
+cname=anna.cs.research.bell-labs.com dom=www.cs.research.bell-labs.com
+
+.EE
+.I Ndb/dnsquery
+can be used to query
+.I ndb/dns
+to see how it resolves requests.
+.I Ndb/dnsquery
+prompts for commands of the form
+.IP
+.I "domain-name request-type"
+.LP
+where
+.I request-type
+can be
+.BR ip ,
+.BR mx ,
+.BR ns ,
+.BR cname ,
+.BR ptr ....
+In the case of the inverse query type,
+.BR ptr ,
+.I dnsquery
+will reverse the ip address and tack on the
+.B .in-addr.arpa
+for you.
+.PP
+.I Ndb/dnsdebug
+is like
+.I ndb/dnsquery
+but bypasses the local server.
+It communicates via UDP with the domain name servers
+in the same way that the local resolver would and displays
+all packets received.
+The query can be specified on the command line or
+can be prompted for.
+The queries look like those of
+.I ndb/dnsquery
+with one addition.
+.I Ndb/dnsdebug
+can be directed to query a particular name server by
+the command
+.BI @ name-server\f1.
+From that point on, all queries go to that name server
+rather than being resolved by
+.IR dnsdebug .
+The
+.B @
+command returns query resolution to
+.IR dnsdebug .
+Finally, any command preceded by a
+.BI @ name-server
+sets the name server only for that command.
+.PP
+Normally
+.I dnsdebug
+uses the
+.B /net
+interface and the database file
+.BR /lib/ndb/local.
+The
+.B -x
+option directs
+.I dnsdebug
+to use the
+.B /net.alt
+interface and
+.B /lib/ndb/external
+file.
+The
+.B -r
+option is the same as for
+.IR ndb/dns .
+.PP
+.I Ndb/mkdb
+is used in concert with
+.IR awk (1)
+scripts to convert
+uucp systems files and IP host files
+into database files.
+It is very specific to the situation at Murray Hill.
+.PP
+When the database files change underfoot,
+.I ndb/cs
+and
+.I ndb/dns
+track them properly. Nonetheless, to keep the database searches efficient
+it is necessary to run
+.I ndb/mkhash
+whenever the files are modified.
+It may be profitable to control this by a frequent
+.IR cron (8)
+job.
+.PP
+.I Ndb/mkhosts
+generates a BSD style
+.BR hosts ,
+.BR hosts.txt ,
+and
+.B hosts.equiv
+files from an ndb data base file specified on the
+command line (default
+.BR /lib/ndb/local ).
+For local reasons the files are called
+.BR hosts.1127 ,
+.BR astro.txt ,
+and
+.BR hosts.equiv .
+.SH EXAMPLES
+.EX
+% ndb/query sys helix
+sys=helix dom=helix.research.bell-labs.com bootf=/mips/9powerboot
+ ip=135.104.117.31 ether=080069020427
+ proto=il
+% ndb/dnsquery
+> plan9.bell-labs.com ip
+plan9.bell-labs.com ip 204.178.31.2
+> 204.178.31.2 ptr
+2.31.178.204.in-addr.arpa ptr plan9.bell-labs.com
+2.31.178.204.in-addr.arpa ptr ampl.com
+>
+.EE
+.SH FILES
+.TF /lib/ndb/local.*xxx
+.TP
+.B /lib/ndb/local
+first database file searched
+.TP
+.B /lib/ndb/local.*
+hash files for
+.B /lib/ndb/local
+.TP
+.B /srv/cs
+service file for
+.I ndb/cs
+.TP
+.B /net/cs
+where
+.B /srv/cs
+gets mounted
+.TP
+.B /srv/dns
+service file for
+.I ndb/dns
+.TP
+.B /net/dns
+where
+.B /srv/dns
+gets mounted
+.SH SOURCE
+.B /sys/src/cmd/ndb
+.SH SEE ALSO
+.IR ndb (2)
+.IR ndb (6)
diff --git a/static/plan9-4e/man8/newuser.8 b/static/plan9-4e/man8/newuser.8
new file mode 100644
index 00000000..2d385245
--- /dev/null
+++ b/static/plan9-4e/man8/newuser.8
@@ -0,0 +1,119 @@
+.TH NEWUSER 8
+.SH NAME
+newuser \- adding a new user
+.SH SYNOPSIS
+.B /sys/lib/newuser
+.SH DESCRIPTION
+To establish a new user on Plan 9,
+add the user's name to
+.B /adm/users
+by running the
+.B newuser
+command on the console of the file server
+(see
+.IR users (6)
+and
+.IR fs (8)).
+Next, give the user a password using the
+.B changeuser
+command on the console of the authentication server
+(see
+.IR auth (8)).
+At this point, the user can bootstrap a terminal using the new name and
+password.
+The terminal will only get as far as running
+.BR rc ,
+however, as no
+.B profile
+exists for the user.
+.PP
+The
+.IR rc (1)
+script
+.B /sys/lib/newuser
+sets up a sensible environment for a new user of Plan 9.
+Once the terminal is running
+.BR rc ,
+type
+.IP
+.EX
+/sys/lib/newuser
+.EE
+.PP
+to build the necessary directories in
+.B /usr/$user
+and create a reasonable initial profile in
+.BR /usr/$user/lib/profile
+and
+plumbing rules in
+.BR /usr/$user/lib/plumbing
+(see
+.IR plumber (4)).
+The script then runs the profile which, as its last step, brings up
+.IR rio (1).
+At this point the user's environment is established and running.
+(There is no need to reboot.)
+It may be prudent at this point to run
+.IR passwd (1)
+to change the password, depending on how the initial password was chosen.
+.PP
+The
+.B profile
+built by
+.B /sys/lib/newuser
+looks like this:
+.IP
+.EX
+bind -a $home/bin/rc /bin
+bind -a $home/bin/$cputype /bin
+bind -c tmp /tmp
+font = /lib/font/bit/pelm/euro.9.font
+switch($service){
+case terminal
+ plumber
+ upas/fs
+ echo -n accelerated > '#m/mousectl'
+ echo -n 'res 3' > '#m/mousectl'
+ prompt=('term% ' ' ')
+ fn term%{ $* }
+ exec rio
+case cpu
+ if (test -e /mnt/term/mnt/wsys) {
+ # rio already running
+ bind -a /mnt/term/mnt/wsys /dev
+ echo -n $sysname > /dev/label
+ }
+ bind /mnt/term/dev/cons /dev/cons
+ bind /mnt/term/dev/consctl /dev/consctl
+ bind -a /mnt/term/dev /dev
+ prompt=('cpu% ' ' ')
+ fn cpu%{ $* }
+ upas/fs
+ news
+ if (! test -e /mnt/term/mnt/wsys) {
+ # cpu call from drawterm
+ font=/lib/font/bit/pelm/latin1.8.font
+ exec rio
+ }
+case con
+ prompt=('cpu% ' ' ')
+ news
+}
+.EE
+.PP
+Sites may make changes to
+.B /sys/lib/newuser
+that reflect the properties of the local environment.
+.PP
+Use the
+.B -c
+option of
+.IR mail (1)
+to create a mailbox.
+.SH "SEE ALSO"
+.IR passwd (1),
+.IR rio (1),
+.IR namespace (4),
+.IR users (6),
+.IR auth (8),
+.IR fs (8)
diff --git a/static/plan9-4e/man8/nfsserver.8 b/static/plan9-4e/man8/nfsserver.8
new file mode 100644
index 00000000..95394314
--- /dev/null
+++ b/static/plan9-4e/man8/nfsserver.8
@@ -0,0 +1,164 @@
+.TH NFSSERVER 8
+.SH NAME
+nfsserver, portmapper, pcnfsd, 9auth \- NFS service
+.SH SYNOPSIS
+.B aux/nfsserver
+[
+.I rpc-options...
+]
+[
+.I nfs-options...
+]
+.br
+.B aux/pcnfsd
+[
+.I rpc-options...
+]
+.br
+.B aux/portmapper
+[
+.I rpc-options...
+]
+.SH DESCRIPTION
+These programs collectively provide NFS access to Plan 9 file servers.
+.IR Nfsserver ,
+.IR pcnfsd ,
+and
+.I portmapper
+run on a Plan 9 CPU server, and should be started in that order.
+All users on client machines have the
+access privileges of the Plan 9 user
+.LR none .
+.PP
+The
+.I rpc-options
+are all intended for debugging:
+.nr zz \w'\f5-a\f2 addr'+2n/1n
+.TP \n(zz
+.B -r
+Reject: answer all RPC requests by returning the
+.B AUTH_TOOWEAK
+error.
+.TP
+.B -v
+Verbose: show all RPC calls and internal program state, including 9P messages.
+(In any case, the program creates a file
+.BI /srv/ name .chat
+where
+.I name
+is that of the program; echoing
+.L 1
+or
+.L 0
+into this file sets or clears the
+.B -v
+flag dynamically.)
+.TP
+.B -D
+Debug: show all RPC messages (at a lower level than
+.BR -v ).
+This flag may be repeated to get more detail.
+.TP
+.B -C
+Turn off caching: do not answer RPC requests using the
+RPC reply cache.
+.PP
+The
+.I nfs-options
+are:
+.TP \n(zz
+.BI -a " addr"
+Set up NFS service for the 9P server at network address
+.IR addr .
+.TP
+.BI -f " file"
+Set up NFS service for the 9P server at
+.I file
+(typically an entry in
+.BR /srv ).
+.TP
+.B -n
+Do not allow per-user authentication.
+.TP
+.BI -c " file"
+.I File
+contains the uid/gid map configuration. It is read at startup
+and subsequently every hour (or if
+.L c
+is echoed into
+.BR /srv/nfsserver.chat ).
+Blank lines or lines beginning with
+.L #
+are ignored; lines beginning with
+.L !
+are executed as commands; otherwise lines contain four fields
+separated by white space: a regular expression (in the notation of
+.IR regexp (6))
+for a class of servers, a regular expression for
+a class of clients, a file of user id's (in the format of a Unix
+password file), and a file of group id's (same format).
+.PP
+NFS clients must be in the Plan 9
+.B /lib/ndb
+database.
+The machine name is deduced from the IP address via
+.BR ndb/query .
+The machine name specified in the NFS Unix credentials
+is completely ignored.
+.PP
+.I Pcnfsd
+is a toy program that authorizes PC-NFS clients. All clients
+are mapped to uid=1, gid=1
+.RB ( daemon
+on most systems) regardless of name or password.
+.SH EXAMPLES
+A simple
+.B /lib/ndb/nfs
+might contain:
+.PP
+.EX
+!9fs tcp!ivy
+\&.+ [^.]+\e.cvrd\e.hall\e.edu /n/ivy/etc/passwd /n/ivy/etc/group
+.EE
+.PP
+A typical entry in
+.B /rc/bin/cpurc
+might be:
+.PP
+.EX
+aux/nfsserver -a il!bootes -a il!fornax -c /lib/ndb/nfs
+aux/pcnfsd
+aux/portmapper
+.EE
+.PP
+Assuming the cpu server's name is
+.BR eduardo ,
+the mount commands on the client would be:
+.PP
+.EX
+/etc/mount -o soft,intr eduardo:bootes /n/bootes
+/etc/mount -o soft,intr eduardo:fornax /n/fornax
+.EE
+.PP
+Note that a single instance of
+.I nfsserver
+may provide access to several 9P servers.
+.SH FILES
+.TF /lib/ndb/nfs
+.TP
+.B /lib/ndb/nfs
+List of uid/gid maps.
+.TP
+.B /sys/log/nfs
+Log file.
+.SH SOURCE
+.B /sys/src/cmd/9nfs
+.SH BUGS
+It would be nice to provide authentication for users, but Unix systems
+provide too low a level of security to be trusted in a Plan 9 world.
+.SH SEE ALSO
+RFC1057,
+.I "RPC: Remote Procedure Call Protocol Specification, Version 2."
+.br
+RFC1094,
+.I "NFS: Network File System Protocol Specification."
diff --git a/static/plan9-4e/man8/pcmcia.8 b/static/plan9-4e/man8/pcmcia.8
new file mode 100644
index 00000000..027a7f99
--- /dev/null
+++ b/static/plan9-4e/man8/pcmcia.8
@@ -0,0 +1,23 @@
+.TH PCMCIA 8
+.SH NAME
+pcmcia \- identify a PCMCIA card
+.SH SYNOPSIS
+.B aux/pcmcia
+[
+.I file
+]
+.SH DESCRIPTION
+.B Aux/pcmcia
+translates the PCMCIA information structure from
+.I file
+(default
+.BR #y/pcm0attr )
+into a readable description and writes it to
+standard output.
+.SH FILES
+.TF #y/pcm0attr
+.TP
+.B #y/pcm0attr
+The attribute memory of the card in the PCMCIA slot.
+.SH SOURCE
+.B /sys/src/cmd/aux/pcmcia.c
diff --git a/static/plan9-4e/man8/ping.8 b/static/plan9-4e/man8/ping.8
new file mode 100644
index 00000000..a78ba99c
--- /dev/null
+++ b/static/plan9-4e/man8/ping.8
@@ -0,0 +1,146 @@
+.TH PING 8
+.SH NAME
+ping, gping, traceroute, hogports \- probe the Internet
+.SH SYNOPSIS
+.B ping
+[
+.B -d
+] [
+.B -i
+.I interval
+] [
+.B -s
+.I size
+] [
+.B -n
+.I count
+]
+.I destination
+.PP
+.B gping
+[
+.B -r
+] [
+.B -l
+] [
+.B -i
+.I interval
+]
+.I destination
+[
+.I destination
+\&... ]
+.PP
+.B traceroute
+[
+.B -dn
+][
+.B -t
+.I tries
+]
+.I dest
+.PP
+.B hogports
+.B [\fImtpt\fP/]\fIproto\fP!\fIaddress\fP!\fIstartport\fP[-\fIendport\fP]
+.SH DESCRIPTION
+.I Ping
+sends ICMP echo requests to a system and returns the time
+for a response. It can be used to determine the network delay
+and whether or not the destination is up.
+.PP
+The options are:
+.TP
+.B n
+requests that a total of
+.I count
+messages be sent, default 32.
+.TP
+.B i
+sets the time between messages
+to be
+.I interval
+milliseconds, default 1000 ms.
+.TP
+.B s
+sets the length of the message to be
+.I size
+bytes, ICMP header included.
+The size cannot be smaller than 32 or
+larger than 8192. The default is
+64.
+.TP
+.B d
+causes message numbers to be printed
+so that one can see the order with which
+messages are received and which are lost.
+.PP
+.I Gping
+is a
+.I ping
+with a graphical display. It
+presents separate graphs for each destination
+specified.
+.PP
+The options are:
+.TP
+.B r
+display round trip time in seconds.
+This is the default.
+.TP
+.B l
+display percentage of lost messages.
+A message is considered lost if not
+replied to in 10 seconds. The percentage
+is an exponentially weighted average.
+.TP
+.B i
+sets the time between messages
+to be
+.I interval
+milliseconds, default 5000 ms.
+.PP
+Graphs can be dropped and added using
+the button 3 menu. Clicking button 1
+on a datapoint displays the value of the
+datapoint and the time it was recorded.
+.PP
+.I Traceroute
+displays the IP addresses and average round trip times to all
+routers between the machine it is run on and
+.IR dest .
+It does this by sending packets to
+.I dest
+with increasing times to live (TTL) in their headers.
+Each router that a packet expires at replies with an ICMP
+warning message.
+The options are:
+.TP
+.B d
+print debugging to standard error
+.TP
+.B n
+just print out IP numbers, don't try to
+look up the names of the routers.
+.TP
+.B t
+send
+.I tries
+packets at each TTL value (default 1).
+.PP
+.I Hogports
+announces on a range of ports to keep them from other processes.
+For example, to keep anyone from making a vncserver visible on
+the network mounted at
+.BR /net.alt :
+.EX
+
+ ip/hogports /net.alt/tcp!*!5900-5950
+.EE
+.SH SOURCE
+.B /sys/src/cmd/ip/ping.c
+.br
+.B /sys/src/cmd/ip/gping.c
+.br
+.B /sys/src/cmd/ip/traceroute.c
+.br
+.B /sys/src/cmd/ip/hogports.c
diff --git a/static/plan9-4e/man8/plan9.ini.8 b/static/plan9-4e/man8/plan9.ini.8
new file mode 100644
index 00000000..6cfb2b55
--- /dev/null
+++ b/static/plan9-4e/man8/plan9.ini.8
@@ -0,0 +1,815 @@
+.TH PLAN9.INI 8
+.SH NAME
+plan9.ini \- configuration file for PCs
+.SH SYNOPSIS
+.I none
+.SH DESCRIPTION
+When booting Plan 9 on a PC, the DOS program
+.IR 9load (8)
+first reads a DOS file
+containing configuration information from the boot disk.
+This file,
+.BR plan9.ini ,
+looks like a shell script containing lines of the form
+.PP
+.EX
+ name=\f2value\fP
+.EE
+.LP
+each of which defines a kernel or device parameter.
+.PP
+For devices, the generic format of
+.I value
+is
+.PP
+.EX
+ type=TYPE [port=N] [irq=N] [mem=N] [size=N] [dma=N] [ea=N]
+.EE
+.LP
+specifying the controller type,
+the base I/O port of the interface, its interrupt
+level, the physical starting address of any mapped memory,
+the length in bytes of that memory, the DMA channel,
+and for Ethernets an override of the physical network address.
+Not all elements are relevant to all devices; the relevant values
+and their defaults are defined below in the description of each device.
+.PP
+The file is used by
+.B 9load
+and the kernel to configure the hardware available.
+The information it contains is also passed to the boot
+process, and subsequently other programs,
+as environment variables
+(see
+.IR boot (8)).
+However, values whose names begin with an asterisk
+.B *
+are used by the kernel and are not converted into environment variables.
+.PP
+The following sections describe how variables are used.
+.SS \fLetherX=value\fP
+This defines an Ethernet interface.
+.IR X ,
+a unique monotonically increasing number beginning at 0,
+identifies an Ethernet card to be probed at system boot.
+Probing stops when a card is found or there is no line for
+.BR etherX+1 .
+After probing as directed by the
+.BI ether X
+lines, any remaining ethernet cards that can be automatically
+detected are added.
+Almost all cards can be automatically detected.
+This automatic probing is only done by the kernel, not by
+.IR 9load (8).
+Thus, if you want to load a kernel over the ethernet, you need
+to specify an
+.B ether0
+line so that
+.I 9load
+can find the ethernet card, even if the kernel would
+have automatically detected it.
+.PP
+Some cards are software configurable and do not require all options.
+Unspecified options default to the factory defaults.
+.PP
+Known types are
+.TP
+.B ne2000
+Not software configurable. 16-bit card.
+Defaults are
+.EX
+ port=0x300 irq=2 mem=0x04000 size=0x4000
+.EE
+The option (no value)
+.B nodummyrr
+is needed on some (near) clones to turn off a dummy remote read in the driver.
+.TP
+.B amd79c970
+The AMD PCnet PCI Ethernet Adapter (AM79C970).
+(This is the ethernet adapter used by VMware.)
+Completely configurable, no options need be given.
+.TP
+.B wd8003
+Includes WD8013 and SMC Elite and Elite Ultra cards. There are varying degrees
+of software configurability. Cards may be in either 8-bit or 16-bit slots.
+Defaults are
+.EX
+ port=0x280 irq=3 mem=0xD0000 size=0x2000
+.EE
+BUG: On many machines only the 16 bit card works.
+.TP
+.B elnk3
+The 3COM Etherlink III series of cards including the 5x9, 59x, and 905 and 905B.
+Completely configurable, no options need be given.
+The media may be specified by setting
+.B media=
+to the value
+.BR 10BaseT ,
+.BR 10Base2 ,
+.BR 100BaseTX ,
+.BR 100BaseFX ,
+.BR aui ,
+and
+.BR mii .
+If you need to force full duplex, because for example the Ethernet switch does not negotiate correctly,
+just name the word (no value)
+.B fullduplex
+or
+.BR 100BASE-TXFD .
+Similarly, to force 100Mbit operation, specify
+.BR force100 .
+Port 0x110 is used for the little ISA configuration dance.
+.TP
+.B 3c589
+The 3COM 3C589 series PCMCIA cards, including the
+3C562 and the 589E.
+There is no support for the modem on the 3C562.
+Completely configurable, no options need be given.
+Defaults are
+.EX
+ port=0x240 irq=10
+.EE
+The media may be specified as
+.B media=10BaseT
+or
+.BR media=10Base2 .
+.TP
+.B ec2t
+The Linksys Combo PCMCIA EthernetCard (EC2T),
+EtherFast 10/100 PCMCIA cards (PCMPC100) and integrated controllers (PCM100),
+the Netgear FA410TX 10/100 PCMCIA card
+and the Accton EtherPair-PCMCIA (EN2216).
+Completely configurable, no options need be given.
+Defaults are
+.EX
+ port=0x300 irq=9
+.EE
+These cards are NE2000 clones.
+Other NE2000 compatible PCMCIA cards may be tried
+with the option
+.EX
+ id=string
+.EE
+where
+.B string
+is a unique identifier string contained in the attribute
+memory of the card (see
+.IR pcmcia (8));
+unlike most options in
+.BR plan9.ini ,
+this string is case-sensitive.
+The option
+.B dummyrr=[01]
+can be used to turn off (0) or on (1) a dummy remote read in the driver
+in such cases,
+depending on how NE2000 compatible they are.
+.TP
+.B i82557
+Cards using the Intel 8255[789] Fast Ethernet PCI Bus LAN Controller such as the
+Intel EtherExpress PRO/100B.
+Completely configurable, no options need be given.
+If you need to force the media, specify
+one of the options (no value)
+.BR 10BASE-T ,
+.BR 10BASE-2 ,
+.BR 10BASE-5 ,
+.BR 100BASE-TX ,
+.BR 10BASE-TFD ,
+.BR 100BASE-TXFD ,
+.BR 100BASE-T4 ,
+.BR 100BASE-FX ,
+or
+.BR 100BASE-FXFD .
+.TP
+.B 2114x
+Cards using the Digital Equipment (now Intel) 2114x PCI Fast Ethernet Adapter Controller,
+for example the Netgear FA310.
+Completely configurable, no options need be given.
+Media can be specified the same was as for the
+.BR i82557 .
+Some cards using the
+.B PNIC
+and
+.B PNIC2
+near-clone chips may also work.
+.\" .TP
+.\" .B ga620
+.\" Netgear GA620 and GA620T Gigabit Ethernet cards,
+.\" and other cards using the Alteon Acenic chip such as the
+.\" Alteon Acenic fiber and copper cards,
+.\" the DEC DEGPA-SA and the SGI Acenic.
+.\" Completely configurable.
+.TP
+.B wavelan
+Lucent Wavelan (Orinoco) IEEE 802.11b
+and compatible PCMCIA cards.
+Compatible cards include the Dell TrueMobile 1150
+and the Linksys Instant Wireless Network PC Card.
+Port and IRQ defaults are 0x180 and 3 respectively.
+
+These cards take a number of unique options to aid in
+identifying the card correctly on the 802.11b network.
+The network may be
+.I "ad hoc"
+or
+.I managed
+(i.e. use an access point):
+.EX
+ mode=[adhoc, managed]
+.EE
+and defaults to
+.IR managed .
+The 802.11b network to attach to
+.RI ( managed
+mode)
+or identify as
+.RI ( "ad hoc"
+mode),
+is specified by
+.EX
+ essid=string
+.EE
+and defaults to a null string.
+The card station name is given by
+.EX
+ station=string
+.EE
+and defaults to
+.IR "Plan 9 STA" .
+The channel to use is given by
+.EX
+ channel=number
+.EE
+where
+.I number
+lies in the range 1 to 16 inclusive;
+the channel is normally negotiated automatically.
+
+If the card is capable of encryption,
+the following options may be used:
+.EX
+ crypt=[off, on]
+.EE
+and defaults to
+.IR on .
+.EX
+ key\fIN\fP=string
+.EE
+sets the encryption key
+.I n
+(where
+.I n
+is in the range 1 to 4 inclusive) to
+.IR string ;
+this will also set the transmit key to
+.I n
+(see below).
+.EX
+ txkey=number
+.EE
+sets the transmit key to use to be
+.I number
+in the range 1 to 4 inclusive.
+If it is desired to exclude or include unencrypted packets
+.EX
+ clear=[off, on]
+.EE
+configures reception and defaults to inclusion.
+
+The defaults are intended to match the common case of
+a managed network with encryption and a typical entry would
+only require, for example
+.EX
+ essid=left-armpit key2=fishcalledraawaru
+.EE
+if the port and IRQ defaults are used.
+These options may be set after boot by writing to the device's
+.I ctl
+file using a space as the separator between option and value, e.g.
+.EX
+ echo 'key2 fishcalledraawaru' > /net/ether0/0/ctl
+.EE
+.TP
+.B wavelanpci
+PCI ethernet adapters that use the same Wavelan
+programming interface.
+Currently the only tested cards are those based on the
+Intersil Prism 2.5 chipset.
+.TP
+.B 83815
+National Semiconductor DP83815-based adapters, notably
+the Netgear FA311, Netgear FA312, and various SiS built-in
+controllers such as the SiS900.
+On the SiS controllers, the ethernet address is not detected properly;
+specify it with an
+.B ea=
+attribute.
+.\" .TP
+.\" .B 83820
+.\" National Semiconductor DP83820-based gigabit ethernet adapters, notably
+.\" the D-Link DGE-500T.
+.TP
+.B rtl8139
+The Realtek 8139.
+.TP
+.B 82543gc
+The Intel RS-82543GC gigabit ethernet controller,
+as found on the Intel PRO/1000[FT] server adapter.
+The older non-[FT] cards based on the 82542 (LSI L2A1157)
+chip are not supported, although support would probably be
+easy to add.
+.TP
+.B smc91cxx
+SMC 91cXX chip-based PCMCIA adapters, notably the SMC EtherEZ card.
+.TP
+.B sink
+A
+.B /dev/null
+for ethernet packets \(em the interface discards sent
+packets and never receives any.
+This is used to provide a test bed for
+some experimental ethernet bridging software.
+.SS \fLusbX=type=uhci port=xxx irq=xxx\fP
+This specifies the settings for a USB UHCI controller.
+Like the ethernet controllers, USB controllers are autodetected
+after scanning for the ones listed in
+.IR plan9.ini .
+Thus, most systems will not need a
+.B usbX
+line.
+.SS \fLscsiX=value\fP
+This defines a SCSI interface which cannot be automatically detected
+by the kernel.
+.PP
+Known types are
+.TP
+.B aha1542
+The Adaptec 154x series of controllers (and clones).
+Almost completely configurable, only the
+.EX
+ port=0x300
+.EE
+option need be given.
+.PP
+NCR/Symbios/LSI Logic 53c8xx-based adapters
+and Mylex MultiMaster (Buslogic BT-*) adapters are
+automatically detected and need no entries.
+.PP
+By default, the NCR 53c8xx driver searches for up to 32 controllers.
+This can be changed by setting the variable
+.BR *maxsd53c8xx .
+.PP
+By default the Mylex driver resets SCSI cards by using
+both the hard reset and SCSI bus reset flags in the driver interface.
+If a variable
+.BR *noscsireset
+is defined, the SCSI bus reset flag is omitted.
+.SS Uarts
+Plan 9 automatically configures COM1 and COM2, if found,
+as
+.B eia0
+(port 0x3F8, IRQ4)
+and
+.B eia1
+(port 0x2F8, IRQ3)
+respectively.
+These devices can be disabled by adding a line:
+.EX
+ eia\fIX\fP=disabled
+.EE
+This is typically done in order to reuse the IRQ for
+another device.
+.PP
+Plan 9 used to support various serial concentrators,
+including the TTC 8 serial line card and various models
+in the Star Gate Avanstar series of intelligent serial boards.
+These are no longer supported; the much simpler
+Perle PCI-Fast4, PCI-Fast8, and PCI-Fast16 controllers
+have taken their places.
+These latter cards are automatically detected
+and need no configuration lines.
+.PP
+The line
+.B serial=type=com
+can be used to specify settings for a PCMCIA modem.
+.SS \fLmouseport=value\fP
+This specifies where the mouse is attached.
+.I Value
+can be
+.TP
+.B ps2
+the PS2 mouse/keyboard port. The BIOS setup procedure
+should be used to configure the machine appropriately.
+.TP
+.B ps2intellimouse
+an Intellimouse on the PS2 port.
+.TP
+.B 0
+for COM1 (currently not supported)
+.TP
+.B 1
+for COM2 (currently not supported)
+.SS \fLmodemport=value\fP
+Picks the UART line to call out on.
+This is used when connecting to a file server over
+an async line.
+.I Value
+is the number of the port.
+.SS \fLpcmciaX=type=XXX irq=value\fP
+If the default IRQ for the
+PCMCIA
+is correct, this entry can be omitted. The value of
+.B type
+is ignored.
+.SS \fLconsole=value params\fP
+This is used to specify the console device.
+The default
+value is
+.BR cga ;
+a number
+.B 0
+or
+.B 1
+specifies
+.I COM1
+or
+.I COM2
+respectively.
+A serial console is initially configured with the
+.IR uart (3)
+configuration string
+.B b9600
+.B l8
+.B pn
+.BR s1 ,
+specifying 9600 baud,
+8 bit bytes, no parity, and one stop bit.
+If
+.I params
+is given, it will be used to further
+configure the uart.
+Notice that there is no
+.B =
+sign in the
+.I params
+syntax.
+For example,
+.EX
+ console=0 b19200 po
+.EE
+would use COM1 at 19,200 baud
+with odd parity.
+.SS \fLbootfile=value\fP
+This is used to direct the actions of
+.IR 9load (8)
+by naming the device and file from which to load the kernel.
+.SS \fLrootdir=dir\fP
+.SS \fLrootspec=spec\fP
+These are used by
+.IR 9load (8)
+to identify the directory
+.I dir
+to make the root directory for the kernel, and the
+file system specifier
+.I spec
+(see
+.B mount
+in
+.IR bind (2))
+on which it can be found.
+These are usually used to test variant file systems for distributions, etc.
+.SS \fLbootargs=value\fP
+The value of this variable is passed to
+.IR boot (8)
+by the kernel as the name of the root file system.
+For example, if the system is to run from a local
+.IR kfs (4)
+partition, the definition might read
+.BR bootargs=local!#S/sdC0/fs .
+.SS \fLcfs=value\fP
+This gives the name of the file holding the disk partition
+for the cache file system,
+.IR cfs (4).
+Extending the
+.B bootargs
+example, one would write
+.BR cfs=#S/sdC0/cache .
+.SS \fLbootdisk=value\fP
+This deprecated variable was used to specify the disk used by
+the cache file system and other disk-resident services.
+It is superseded by
+.B bootargs
+and
+.BR cfs .
+.SS \fLpartition=value\fP
+This defines the partition table
+.IR 9load (8)
+will examine to find disk partitioning information.
+By default, a partition table in a Plan 9 partition
+is consulted; if no such table is found, an old-Plan 9
+partition table on the next-to-last or last sector
+of the disk is consulted.
+A value of
+.B new
+consults only the first table,
+.B old
+only the second.
+.SS \fL*maxmem=value\fP
+This defines the maximum physical address that the system will scan when sizing memory.
+By default the operating system will scan up to 768 megabytes, but setting
+.B *maxmem
+will limit the scan.
+If the system has more than 768 megabytes, you must set
+.B *maxmem
+for the kernel to find it.
+.B *maxmem
+must be less than 1.75 gigabytes.
+.SS \fL*kernelpercent=value\fP
+This defines what percentage of available memory is reserved for the kernel allocation pool.
+The remainder is left for user processes. The default
+.I value
+is
+.B 30
+on CPU servers,
+.B 60
+on terminals with less than 16MB of memory,
+and
+.B 40
+on terminals with memories of 16MB or more.
+Terminals use more kernel memory because
+.IR draw (3)
+maintains its graphic images in kernel memory.
+This deprecated option is rarely necessary in newer kernels.
+.SS \fL*nomce=value\fP
+If machine check exceptions are supported by the processor,
+then they are enabled by default.
+Setting this variable to
+.B 1
+causes them to be disabled even when available.
+.SS \fL*nomp=value\fP
+A multiprocessor machine will enable all processors by default.
+Setting
+.B *nomp
+restricts the kernel to starting only one processor and using the
+traditional interrupt controller.
+.SS \fL*ncpu=value\fP
+Setting
+.B *ncpu
+restricts the kernel to starting at most
+.I value
+processors.
+.SS \fL*pcimaxbno=value\fP
+This puts a limit on the maximum bus number probed
+on a PCI bus (default 255).
+For example, a
+.I value
+of 1 should suffice on a 'standard' motherboard with an AGP slot.
+This, and
+.B *pcimaxdno
+below are rarely used and only on troublesome or suspect hardware.
+.SS \fL*pcimaxdno=value\fP
+This puts a limit on the maximum device number probed
+on a PCI bus (default 31).
+.\" .SS \fL*nobios=\fP
+.\" what does this do? something with pci
+.SS \fLioexclude=value\fP
+Specifies a list of ranges I/O ports to exclude from use by drivers.
+Ranges are inclusive on both ends and separated by commas.
+For example:
+.EX
+ ioexclude=0x330-0x337,0x430-0x43F
+.EE
+.SS \fLapm0=\fP
+This enables the ``advanced power management'' interface
+as described in
+.IR apm (3)
+and
+.IR apm (8).
+The main feature of the interface is the ability to watch
+battery life (see
+.IR stats (8)).
+It is not on by default because it causes problems on some laptops.
+.SS \fLmonitor=value\fP
+.SS \fLvgasize=value\fP
+These are used not by the kernel but by
+.I termrc
+(see
+.IR cpurc (8))
+when starting
+.IR vga (8).
+.SS \fL*dpms=value\fP
+This is used to specify the screen blanking behavior of the MGA4xx
+video driver.
+Values are
+.BR standby ,
+.BR suspend ,
+and
+.BR off .
+The first two specify differing levels of power saving;
+the third turns the monitor off completely.
+.SS \fLnvr=value\fP
+This is used by a file server kernel to locate a file holding information
+to configure the file system.
+The file cannot live on a SCSI disk.
+The default is
+.B fd!0!plan9.nvr
+(sic),
+unless
+.B bootfile
+is set, in which case it is
+.B plan9.nvr
+on the same disk as
+.BR bootfile .
+The syntax is either
+.BI fd! unit ! name
+or
+.BI hd! unit ! name
+where
+.I unit
+is the numeric unit id.
+This variant syntax is a vestige of the file server kernel's origins.
+.SS \fLaudioX=value\fP
+This defines a sound interface.
+.PP
+Known types are
+.TP
+.B sb16
+Sound Blaster 16.
+.TP
+.B ess1688
+A Sound Blaster clone.
+.PP
+The DMA channel may be any of 5, 6, or 7.
+The defaults are
+.EX
+ port=0x220 irq=7 dma=5
+.EE
+.SS \fLfs=a.b.c.d\fP
+.SS \fLauth=a.b.c.d\fP
+These specify the IP address of the file and authentication server
+to use when mounting a network-provided root file system.
+They are used only if the addresses cannot be determined via DHCP.
+.SH Multiple Configurations
+.PP
+A
+.B plan9.ini
+file may contain multiple configurations,
+each within a block beginning with a line
+.EX
+ [tag]
+.EE
+A special block with the tag
+.B menu
+gives a list of blocks from which the user may
+interactively select the contents of
+.BR plan9.ini .
+There may also be multiple blocks with the tag
+.B common
+which will be included in all selections;
+if any lines appear in
+.B plan9.ini
+before the first block,
+they are treated as a
+.B common
+block.
+.LP
+Within the
+.B menu
+block the following configuration lines are allowed:
+.SS \fLmenuitem=tag[, description]
+The block identified by
+.B tag
+will appear in the presented menu.
+The menu entry will consist of the
+.B tag
+unless the optional
+.B description
+is given.
+.SS \fLmenudefault=tag[, timeout]
+Identifies a default block to be given in the
+menu selection prompt.
+If the optional
+.B timeout
+is given (in seconds),
+the default block will be selected if there is no user
+input within the timeout period.
+.SS \fLmenuconsole=value[, baud]
+Selects a serial console upon which to present the menu
+as no
+.B console
+or
+.B baud
+configuration information will have been processed yet
+(the
+.B plan9.ini
+contents are still to be decided...).
+.LP
+In response to the menu being printed,
+the user is prompted to select a menu item from the list.
+If the numeric response is followed by a
+.BR p ,
+the selected configuration is printed and the menu presented
+again.
+.LP
+The line
+.EX
+ menuitem=tag
+.EE
+is prefixed to the selected configuration as an aid to
+user-level initialization scripts.
+.SH EXAMPLES
+.PP
+A representative
+.BR plan9.ini :
+.IP
+.EX
+% cat /n/c:/plan9.ini
+ether0=type=3C509
+mouseport=ps2
+modemport=1
+serial0=type=generic port=0x3E8 irq=5
+monitor=445x
+vgasize=1600x1200x8
+%
+.EE
+.PP
+Minimum CONFIG.SYS and AUTOEXEC.BAT files to use
+COM2 as a console:
+.IP
+.EX
+% cat /n/c:/config.sys
+SHELL=COMMAND.COM COM2 /P
+% cat /n/c:/autoexec.bat
+@ECHO OFF
+PROMPT $p$g
+PATH C:\eDOS;C:\eBIN
+mode com2:96,n,8,1,p
+SET TEMP=C:\eTMP
+%
+.EE
+.PP
+Simple
+.B plan9.ini
+with multiple configurations:
+.IP
+.EX
+[menu]
+menuitem=vga, Plan 9 with VGA
+menuitem=novga, Plan 9 no automatic VGA
+menudefault=vga
+
+[vga]
+monitor=multisync135
+vgasize=1024x768x8
+
+[novga]
+
+[common]
+ether0=type=i82557
+audio0=type=sb16 port=0x220 irq=5 dma=1
+.EE
+.PP
+With this, the following menu will be presented on boot:
+.IP
+.EX
+Plan 9 Startup Menu:
+====================
+ 1. Plan 9 with VGA
+ 2. Plan 9 no automatic VGA
+Selection[default==1]:
+.EE
+.PP
+Selecting item 1 generates the following
+.B plan9.ini
+to be used by the remainder of the bootstrap process:
+.IP
+.EX
+menuitem=vga
+monitor=multisync135
+vgasize=1024x768x8
+ether0=type=i82557
+audio0=type=sb16 port=0x220 irq=5 dma=1
+.EE
+.PP
+and selecting item 2:
+.IP
+.EX
+menuitem=novga
+ether0=type=i82557
+audio0=type=sb16 port=0x220 irq=5 dma=1
+.EE
+.SH "SEE ALSO"
+.IR 9load (8),
+.IR booting (8),
+.IR boot (8)
+.SH BUGS
+Being able to set the console device to other than a
+display is marginally useful on file servers; MS-DOS
+and the programs which run under it are so tightly bound
+to the display that it is necessary to have a display if any
+setup or reconfiguration programs need to be run.
+Also, the delay before any messages appear at boot time
+is disconcerting, as any error messages from the BIOS
+are lost.
+.PP
+This idea is at best an interesting experiment that needs another iteration.
diff --git a/static/plan9-4e/man8/ppp.8 b/static/plan9-4e/man8/ppp.8
new file mode 100644
index 00000000..28e250bf
--- /dev/null
+++ b/static/plan9-4e/man8/ppp.8
@@ -0,0 +1,275 @@
+.TH PPP 8
+.SH NAME
+ppp, pppoe, pptp, pptpd \- point to point protocol
+.SH SYNOPSIS
+.B ip/ppp
+[
+.B -CPScdfu
+][
+.B -b
+.I baud
+][
+.B -m
+.I mtu
+][
+.B -p
+.I dev
+][
+.B -s
+.IR username : secret
+][
+.B -x
+.I netmntpt
+][
+.B -t
+.I modemcmd
+]
+[
+.I local
+[
+.I remote
+] ]
+.PP
+.B ip/pppoe
+[
+.B -m
+.I mtu
+]
+[
+.B -P
+]
+[
+.B -d
+]
+[
+.B -s
+.IR username : secret
+]
+[
+.B -x
+.I pppnetmntpt
+]
+.I etherdir
+.PP
+.B ip/pptp
+[
+.B -P
+]
+[
+.B -d
+]
+[
+.B -s
+.IR username : secret
+]
+[
+.B -w
+.I window
+]
+[
+.B -x
+.I pppnetmntpt
+]
+.I server
+.PP
+.B ip/pptpd
+[
+.B -d
+] [
+.B -p
+.I pppnetmtpt
+] [
+.B -w
+.I window
+] [
+.B -D
+.I fraction
+]
+.I tcp-dir
+.SH DESCRIPTION
+The Point to Point Protocol is used to encapsulate Internet Protocol packets
+for transfer over serial lines or other protocol connections.
+.I Ppp
+can run either as a client or, with the
+.I \-S
+option, as a server. The only differences between a client and a server is
+that the server will not believe any local address the client tries to
+supply it and that the server always initiates the authentication of the
+client.
+.PP
+With no option,
+.I ppp
+communicates with the remote system via standard input and output.
+This is useful if a program wants to use
+.I ppp
+in a communications stream. However, the normal mode is to
+specify a communications device, usually a serial line with a modem.
+.PP
+PPP supports the following options:
+.TP
+.B p
+communicate over
+.I dev
+instead of standard I/O
+.TP
+.B u
+before starting the PPP porotcol with the remote end, shuttle
+bytes between the device and standard I/O until an EOF on standard
+input. This allows a user to start
+.I ppp
+and then type commands at a modem before
+.I ppp
+takes over
+.TP
+.B b
+set the baud rate on the communications device
+.TP
+.B f
+make PPP add HDLC framing. This is necessary when using
+PPP over a serial line or a TCP connection
+.TP
+.B m
+set the maximum transfer unit (default 1450)
+.TP
+.B P
+use this as the primary IP interface; set the default
+route through this interface and write it's configuration
+to
+.B /net/ndb
+.TP
+.B s
+supplies the user name and secret
+to be used in authenticating to the remote side.
+The
+.I username
+is optional, the default being the local user id.
+We support both PPP CHAP and MS CHAP
+.TP
+.B S
+run as a server
+.TP
+.B x
+use the IP stack mounted at
+.I netmntpt
+.TP
+.B t
+before starting the PPP protocol, write
+.I modemcmd
+to the device
+.TP
+.B c
+disallow packet compression
+.TP
+.B C
+disallow ip header compression
+.PD
+.PP
+If both the
+.I local
+and
+.I remote
+addresses are specified, don't ask the other end for either
+or believe it if it supplies one. If either is missing, get
+it from the remote end.
+.PP
+.I Pppoe
+is a PPP over ethernet (PPPoE) client.
+It invokes
+.I ppp
+to start a PPP conversation which is
+tunneled in PPPoE packets on
+the ethernet device mounted at
+.I etherdir
+(default
+.BR /net/ether0 ).
+The options are:
+.TP
+.B A
+insist on an access concentrator named
+.I acname
+during PPPoE discovery
+.TP
+.B S
+insist on a service named
+.I srvname
+during PPPoE discovery
+.TP
+.B d
+write debugging output to standard error,
+and pass
+.B -d
+to
+.I ppp
+.TP
+.B m
+pass
+.B -m
+.I mtu
+to
+.IR ppp ,
+default 1492
+.TP
+.B s
+pass
+.B -s
+.IR username : secret
+to
+.I ppp
+.TP
+.B x
+pass
+.B -x
+.I pppnetmntpt
+to
+.I ppp
+.PD
+.PP
+.I Pptp
+is a client for a PPTP encrypted tunnel.
+.I Server
+is the name of the server to dial.
+.I Pptp
+takes the same options as
+.IR pppoe ,
+except for the lack of a
+.B -m
+option and the addition of a
+.B -w
+option.
+The
+.B -w
+option specifies the local send window size
+(default 16) in packets.
+.PP
+.I Pptpd
+is the server side of a PPTP encrypted tunnel.
+.I Tcpdir
+is the directory of a TCP connection to the client.
+The TCP connection is used to control the tunnel while
+packets are sent back and forth using PPP inside of
+GRE packets.
+The options are:
+.TP
+.B d
+write debugging output to standard error.
+.TP
+.B p
+use the IP stack mounted at
+.I pppnetmtpt
+to terminate the PPP connection.
+.TP
+.B w
+set the receive window to
+.IR window .
+.TP
+.B D
+drop
+.I fraction
+of the received packets. This is used for testing.
+.PD
+.SH SOURCE
+.B /sys/src/cmd/ip/ppp
+.br
+.B /sys/src/cmd/ip/pptpd.c
+.br
+.B /sys/src/cmd/ip/pppoe.c
diff --git a/static/plan9-4e/man8/prep.8 b/static/plan9-4e/man8/prep.8
new file mode 100644
index 00000000..e2b945bf
--- /dev/null
+++ b/static/plan9-4e/man8/prep.8
@@ -0,0 +1,657 @@
+.TH PREP 8
+.SH NAME
+prep, fdisk, format, mbr \- prepare hard and floppy diskettes, flashes
+.SH SYNOPSIS
+.B disk/prep
+[
+.B -abcfnprw
+]
+[
+.B -s
+.I sectorsize
+]
+.I plan9partition
+.PP
+.B disk/fdisk
+[
+.B -abfprw
+]
+[
+.B -s
+.I sectorsize
+]
+.I disk
+.PP
+.B disk/format
+[
+.B -dfvx
+]
+[
+.B -b
+.I bootblock
+]
+[
+.B -c
+.I csize
+]
+[
+.B -l
+.I label
+]
+[
+.B -r
+.I nresrv
+]
+[
+.B -t
+.I type
+]
+.I disk
+[
+.IR file ...
+]
+.PP
+.B disk/mbr
+[
+.B -m
+.I mbrfile
+]
+.SH DESCRIPTION
+A partition table is stored on a hard disk to specify the division of
+the physical disk into a set of logical units.
+On PCs, the partition table is stored at the end of the master boot record
+of the disk.
+Partitions of type
+.B 0x39
+are Plan 9 partitions.
+The names of PC partitions are chosen by convention from the type:
+.BR dos ,
+.BR plan9 ,
+etc.
+Second and subsequent partitions of the same type on a given disk are given
+unique names by appending a number (or a period and a number if the name
+already ends in a number).
+.PP
+Plan 9 partitions (and Plan 9 disks on non-PCs) are
+themselves divided, using a textual partition table, called the Plan 9 partition table, in the second
+sector of the partition (the first is left for architecture-specific boot data, such as PC boot blocks).
+The table is a sequence of lines of the format
+.BI part " name start end" \fR,
+where
+.I start
+and
+.I end
+name the starting and ending sector.
+Sector 0 is the first sector of the Plan 9 partition or disk,
+regardless of its position in a larger disk.
+Partition extents do not contain the ending sector,
+so a partition from 0 to 5 and a partition from 5 to 10
+do not overlap.
+.PP
+The Plan 9 partition often contains a number of
+conventionally named subpartitions.
+They include:
+.TF cache
+.TP
+.B 9fat
+A small FAT file system used to hold
+configuration information
+(such as
+.B plan9.ini
+and
+.BR plan9.nvr )
+and kernels.
+This typically begins in the first sector
+of the partition, and contains the partition
+table as a ``reserved'' sector.
+See the discussion of the
+.B -r
+option to
+.IR format .
+.TP
+.B cache
+A
+.IR cfs (4)
+file system cache.
+.TP
+.B fs
+A
+.IR kfs (4)
+file system.
+.TP
+.B swap
+A
+.IR swap (8)
+swap partition.
+.PD
+.PP
+.I Fdisk
+edits the PC partition table and is usually
+invoked with a disk like
+.B /dev/sdC0/data
+as its argument, while
+.I prep
+edits the Plan 9 partition table
+and is usually invoked with a disk partition
+like
+.B /dev/sdC0/plan9
+as its argument.
+.I Fdisk
+works in units of disk ``cylinders'': the cylinder
+size in bytes is printed when
+.I fdisk
+starts.
+.I Prep
+works in units of disk sectors, which are almost always 512 bytes.
+.I Fdisk
+and
+.I prep
+share most of their options:
+.TP
+.B -a
+Automatically partition the disk.
+.I Fdisk
+will create a Plan 9
+partition in the largest unused area on the disk,
+doing nothing if a
+Plan 9 partition already exists.
+If no other partition on the disk is marked active (i.e. marked as the boot partition),
+.I fdisk
+will mark the new partition active.
+.I Prep
+will create
+.BR 9fat ,
+.BR swap ,
+and
+.B fs
+partitions, doing
+nothing if the disk
+has already been partitioned.
+If the
+.B -c
+option is present,
+.I prep
+will also create a
+.B cache
+partition.
+If the
+.B -n
+option is present,
+.I prep
+will create a one-sector
+.B nvram
+partition.
+.TP
+.B -b
+Start with a blank disk, ignoring any extant partition table.
+.TP
+.B -p
+Print a sequence of commands that when sent to the disk device's
+.B ctl
+file
+will bring the partition
+table information kept by
+the
+.IR sd (3)
+driver up to date.
+Then exit.
+.I Prep
+will check to see if it is being called with a disk partition
+(rather than an entire disk) as its argument; if so, it
+will translate the printed sectors by the partition's offset
+within the disk.
+Since
+.I fdisk
+operates on a table of unnamed partitions,
+it assigns names based on the partition type
+(e.g.,
+.BR plan9 ,
+.BR dos ,
+.BR ntfs ,
+.BR linux ,
+.BR linuxswap )
+and resolves collisions by appending a numbered suffix.
+(e.g.,
+.BR dos ,
+.BR dos.1 ,
+.BR dos.2 ).
+.TP
+.B -r
+In the absence of the
+.B -p
+and
+.B -w
+flags,
+.I prep
+and
+.I fdisk
+enter an interactive partition editor;
+the
+.B -r
+flag runs the editor in read-only mode.
+.TP
+.BI -s " sectorsize"
+Specify the disk's sector size.
+In the absence of this flag,
+.I prep
+and
+.I fdisk
+look for a disk
+.B ctl
+file and read it to find the disk's sector size.
+If the
+.B ctl
+file cannot be found, a message is printed and
+a sector size of 512 bytes is assumed.
+.TP
+.B -w
+Write the partition table to the disk and exit.
+This is useful when used in conjunction with
+.B -a
+or
+.BR -b .
+.PP
+If neither the
+.B -p
+flag nor the
+.B -w
+flag is given,
+.I prep
+and
+.I fdisk
+enter an interactive partition editor that
+operates on named partitions.
+The PC partition table distinguishes between
+primary partitions, which can be listed in the boot
+sector at the beginning of the disk,
+and secondary (or extended) partitions, arbitrarily
+many of which may be chained together in place
+of a primary partition.
+Primary partitions are named
+.BR p \fIn\fR,
+secondary partitions
+.BR s \fIn\fR.
+The number of primary partitions plus number of contiguous chains of
+secondary partitions cannot exceed four.
+.PP
+The commands are as follows.
+In the descriptions, read ``sector'' as ``cylinder'' when using
+.IR fdisk .
+.TP
+.B "a\fR \fIname\fR [ \fIstart\fR [ \fIend\fR ] ]"
+Create a partition named
+.I name
+starting at sector offset
+.I start
+and ending at offset
+.IR end .
+The new partition will not be created if
+it overlaps an extant partition.
+If
+.I start
+or
+.I end
+are omitted,
+.I prep
+and
+.I fdisk
+will prompt for them.
+.I Start
+and
+.I end
+may be expressions using the operators
+.BR + ,
+.BR - ,
+.BR * ,
+and
+.BR / ,
+numeric constants, and the
+pseudovariables
+.B .
+and
+.BR $ .
+At the start of the program,
+.B .
+is set to zero; each time a partition is
+created, it is set to the end sector
+of the new partition.
+It can also be explicitly set using the
+.B .
+command.
+When evaluating
+.IR start ,
+.B $
+is set to one past the last disk sector.
+When evaluating
+.IR end ,
+.B $
+is set to the maximum value that
+.I end
+can take on without running off the disk
+or into another partition.
+Finally, the expression
+.IB n %
+evaluates to
+.RI ( n × disksize )/100.
+As an example,
+.B a
+.B .
+.B .+20%
+creates a new partition starting at
+.B .
+that takes up a fifth of the disk,
+and
+.B a
+.B 1000
+.B $
+creates a new partition starting at
+sector 1000 and
+extending as far as possible.
+.TP
+.B ".\fR \fInewdot"
+Set the value of the variable
+.B .
+to
+.IR newdot ,
+which is an arithmetic expression as described
+in the discussion of the
+.B a
+command.
+.TP
+.BI d " name"
+Delete the named partition.
+.TP
+.B h
+Print a help message listing command synopses.
+.TP
+.B p
+Print the disk partition table.
+Unpartitioned regions are also listed.
+The table consists of a number of lines containing
+partition name, beginning and ending sectors,
+and total size.
+A
+.B '
+is prefixed to the names of partitions
+whose entries have been modified but not written to disk.
+.I Fdisk
+adds to the end of each line a textual partition type,
+and places a
+.B *
+next to the name of the active partition
+(see the
+.B A
+command below).
+.TP
+.B P
+Print the partition table in the format accepted by the disk's
+.B ctl
+file, which is also the format of the output of the
+.B -p
+option.
+.TP
+.B w
+Write the partition table to disk.
+.I Prep
+will also inform the kernel of the changed
+partition table.
+The write will fail if any programs have any
+of the disk's partitions open.
+If the write fails (for this or any other reason),
+.I prep
+and
+.I fdisk
+will attempt to restore the partition table to
+its former state.
+.TP
+.B q
+Quit the program.
+If the partition table has been modified but not written,
+a warning is printed.
+Typing
+.B q
+again will quit the program.
+.PP
+.I Fdisk
+also has the following commands.
+.TP
+.BI A " name"
+Set the named partition active.
+The active partition is the one whose boot block is used
+when booting a PC from disk.
+.TP
+.B e
+Print the names of empty slots in the partition table, i.e., the
+valid names to use when creating a new partition.
+.PD
+.PP
+.I Format
+prepares for use the floppy diskette or hard disk partition in the file named
+.IR disk ,
+for example
+.B /dev/fd0disk
+or
+.BR /dev/sdC0/9fat .
+The options are:
+.TP
+.B -f
+Do not physically format the disc. Used
+to install a FAT file system on a
+previously formatted disc. If
+.I disk
+is not a floppy device, this flag is a no-op.
+.TP
+.B -t
+specify a density and type of disk to be prepared.
+The possible
+.I types
+are:
+.RS
+.TP
+.B 3½DD
+3½" double density, 737280 bytes
+.TP
+.B 3½HD
+3½" high density, 1474560 bytes
+.TP
+.B 5¼DD
+5¼" double density, 368640 bytes
+.TP
+.B 5¼HD
+5¼" high density, 1146880 bytes
+.TP
+.B hard
+fixed disk
+.PD
+.PP
+The default when
+.I disk
+is a floppy drive is the highest possible on the device.
+When
+.I disk
+is a regular file, the default is
+.BR 3½HD .
+When
+.I disk
+is an
+.IR sd (3)
+device, the default is
+.BR hard .
+.RE
+.TP
+.B -d
+initialize a FAT file system on the
+.IR disk .
+.TP
+.B -b
+use the contents of
+.I bootblock
+as a bootstrap block
+to be installed in sector 0.
+.PD
+.PP
+The remaining options have effect only when
+.B -d
+is specified:
+.TP
+.B -c
+use a FAT cluster size of
+.I csize
+sectors when creating the FAT.
+.TP
+.B -l
+add a
+.I label
+when creating the FAT file system.
+.TP
+.BI -r
+mark the first
+.I nresrv
+sectors of the partition as ``reserved''.
+Since the first sector always contains the
+FAT parameter block, this really marks
+the
+.IR nresrv -1
+sectors starting at sector 1 as ``reserved''.
+When formatting the
+.B 9fat
+partition,
+.B -r
+.B 2
+should be used to jump over the partition table sector.
+.PD
+.PP
+Again under
+.BR -d ,
+any
+.I files
+listed are added, in order,
+to the root
+directory of the FAT file system. The files are
+contiguously allocated.
+If a file is named
+.BR 9load ,
+it will be created with the
+.B SYSTEM
+attribute set so that
+.IR dossrv (4)
+keeps it contiguous when modifying it.
+.PP
+.I Format
+checks for a number of common mistakes; in particular,
+it will refuse to format a
+.B 9fat
+partition unless
+.B -r
+is specified with
+.I nresrv
+larger than two.
+It also refuses to format a raw
+.IR sd (3)
+partition that begins at offset zero in the disk.
+(The beginning of the disk should contain an
+.I fdisk
+partition table with master boot record,
+not a FAT file system or boot block.)
+Both checks are disabled by the
+.B -x
+option.
+The
+.B -v
+option prints debugging information.
+.PP
+The file
+.B /386/pbs
+is an example of a suitable
+.I bfile
+to make the disk a boot disk.
+It gets loaded by the BIOS at 0x7C00,
+reads the root directory into address 0x7E00, and looks at
+the first root directory entry.
+If that file is called
+.BR 9LOAD ,
+it uses
+single sector reads to load the file into address 0x10000 and then
+jumps to the loaded file image.
+The file
+.B /386/pbslba
+is similar, but because it uses LBA addressing (not supported
+by all BIOSes), it can access more than the first 8.5GB of the disk.
+.PP
+.I Mbr
+installs a new boot block in sector 0 (the master boot record)
+of a disk such as
+.BR /dev/sdC0/data .
+This boot block should not be confused with the
+boot block used by
+.IR format ,
+which goes in sector 0 of a partition.
+Typically, the boot block in the master boot record
+scans the PC partition table to find an active
+partition and then executes the boot block for
+that partition.
+The partition boot block then loads a bootstrap
+program such as
+.IR 9load (8),
+which then loads the operating system.
+If MS-DOS or Windows 9[58] is already installed
+on your hard disk, the master boot record
+already has a suitable boot block.
+Otherwise,
+.B /386/mbr
+is an appropriate
+.IR mbrfile .
+It detects and uses LBA addressing when available
+from the BIOS (the same could not
+be done in the case of
+.B pbs
+due to space considerations).
+If the
+.I mbrfile
+is not specified, a boot block is installed that
+prints a message explaining that the disk is not bootable.
+.SH EXAMPLES
+Initialize the kernel disk driver with the partition information
+from the FAT boot sectors.
+If Plan 9 partitions exist, pass that partition information as well.
+.IP
+.EX
+for(disk in /dev/sd??) {
+ if(test -f $disk/data && test -f $disk/ctl)
+ disk/fdisk -p $disk/data >$disk/ctl
+ for(part in $disk/plan9*)
+ if(test -f $part)
+ disk/prep -p $part >$disk/ctl
+}
+.EE
+.PP
+Create a Plan 9 boot floppy on a previously formatted diskette:
+.IP
+.EX
+disk/format -b /386/pbs -df /dev/fd0disk /386/9load /tmp/plan9.ini
+.EE
+.PP
+Initialize the blank hard disk
+.BR /dev/sdC0/data .
+.IP
+.EX
+disk/mbr -m /386/mbr /dev/sdC0/data
+disk/fdisk -baw /dev/sdC0/data
+disk/prep -baw /dev/sdC0/plan9
+disk/format -b /386/pbs -d -r 2 /dev/sdC0/9fat 9load 9pcdisk plan9.ini
+.EE
+.PP
+.SH SOURCE
+.B /sys/src/cmd/disk/prep
+.br
+.B /sys/src/boot/pc
+.SH SEE ALSO
+.IR floppy (3),
+.IR sd (3),
+.IR 9load (8)
+.SH BUGS
+.I Format
+can create FAT12 and FAT16
+file systems, but not FAT32 file systems.
+The boot block can only read from
+FAT12 and FAT16 file systems.
diff --git a/static/plan9-4e/man8/qer.8 b/static/plan9-4e/man8/qer.8
new file mode 100644
index 00000000..93d6ed6a
--- /dev/null
+++ b/static/plan9-4e/man8/qer.8
@@ -0,0 +1,226 @@
+.TH QER 8
+.SH NAME
+qer, runq \- queue management for spooled files
+.SH SYNOPSIS
+.B qer
+[
+.B -q
+.I subdir
+]
+[
+.B -f
+.I file
+]
+.I root tag reply args
+.br
+.B runq
+[
+.B -adsE
+]
+[
+.B -f
+.I file
+]
+[
+.B -q
+.I subdir
+]
+[
+.B -l
+.I load
+]
+[
+.B -t
+.I time
+]
+[
+.B -r
+.I nfiles
+]
+[
+.B -n
+.I nprocs
+]
+.I root cmd
+.SH DESCRIPTION
+.I Qer
+creates a control and a data file in a queue directory.
+The control file contents consist of the
+.IR tag ,
+.IR reply ,
+and
+.I args
+separated by spaces.
+The data file contains the standard input to
+.IR qer .
+The files are created in the directory
+.IR root / subdir ,
+where
+.I subdir
+is the argument to
+.B -q
+if present, else the contents of
+.BR /dev/user .
+The names of the control and data files differ only
+in the first character which is `C' and `D' respectively.
+.IR Mktemp (2)
+is used to create the actual names of the control and
+data file.
+.P
+Some commands, such as
+.I fax
+(see
+.IR telco (4)),
+must queue more files than just the data file.
+Each
+.I file
+following a
+.B \-f
+flag is copied into the queue directory. The names
+of the copies differ from the name of the data file
+only in the first character. The first one is
+starts with 'F', the second 'G', etc.
+.P
+.I Runq
+processes the files queued by
+.IR qer .
+Without the
+.B -a
+option,
+.I runq
+processes all requests in the directory
+.IR root / subdir ,
+where
+.I subdir
+is the argument to
+.B -q
+if present, else the contents of
+.BR /dev/user .
+With the
+.B -a
+it processes all requests.
+Each request is processed by executing the command
+.I cmd
+with the contents of the control file as its arguments,
+the contents of the data file as its standard input, and
+standard error appended to the error file
+.BR E.XXXXXX .
+.P
+The action taken by
+.I runq
+depends on the return status of
+.IR cmd .
+If
+.I cmd
+returns a null status, the processing is assumed successful and the
+control, data, and error files are removed.
+If
+.I cmd
+returns an error status containing the word
+.LR Retry ,
+the files are left to be reprocessed at a later time.
+For any other status, an error message is mailed
+to the requester and the files are removed.
+.I Runq
+uses the
+.I reply
+field in the control file as
+a mail address to which to send an error notification.
+The notification contains the contents of the control
+file to identify the failed request.
+.P
+To avoid reprocessing files too often, the following algorithm is used:
+a data file younger than one hour will not be processed if its
+error file exists and was last modified within the preceding 10 minutes.
+A data file older than one hour will not be processed if its error
+file exists and was last modified within the preceding hour.
+The
+.B -E
+flag causes all files to be reprocessed regardless of
+the file times.
+.P
+The
+.B -d
+option causes debugging output on standard error
+describing the progress through the queues.
+.P
+The
+.B -t
+flags specifies the number of hours
+that retries will continue after a send
+failure. The default is 48 hours.
+.P
+The
+.BR -r
+flag limits the number of files that are processed in a single pass of a queue.
+.I Runq
+accumulates the entire directory containing a queue before processing any
+files. When a queue contains many files and the system does not
+have enough memory,
+.I runq
+exits without making progress. This flag forces
+.I runq
+to process the directory in chunks, allowing the queue to
+be drained incrementally. It is most useful in combination with the
+.I -q
+flag.
+.P
+The
+.BR -s ,
+.BR -n ,
+and
+.B -l
+flags are only meaningful with the
+.B -a
+flag. They control amount of parallelism that
+is used when sweeping all of the queues. The argument following the
+.B -n
+flag specifies the number of queues that are swept
+in parallel; the default is 50. The argument following the
+.B -l
+flag specifies the total number of queues that are being swept.
+By default, there is no limit. The number of active sweeps
+is cumulative over all active executions of
+.IR runq .
+The
+.B -s
+flag forces each queue directory to be processed by exactly
+one instance of
+.IR runq .
+This is useful on systems that connect to slow
+external systems and prevents all the queue sweeps from
+piling up trying to process a few slow systems.
+.PP
+.I Runq
+is often called from
+.IR cron (8)
+by an entry such as
+.IP
+.EX
+0,10,20,30,40,50 * * * * kremvax
+ runq -a /mail/queue /mail/lib/remotemail
+.EE
+.LP
+The entry must be a single line; it is folded here only so it fits on the page.
+.SH FILES
+.TF \fIroot\fP/\fIuser\fP/[F-Z].XXXXXX
+.TP
+.B \fIroot\fP/\fIuser\fP
+queue directory for
+.I user
+.TP
+.B \fIroot\fP/\fIuser\fP/D.XXXXXX
+data file
+.TP
+.B \fIroot\fP/\fIuser\fP/C.XXXXXX
+control file
+.TP
+.B \fIroot\fP/\fIuser\fP/E.XXXXXX
+error file
+.TP
+.B \fIroot\fP/\fIuser\fP/[F-Z].XXXXXX
+secondary data files
+.SH SOURCE
+.B /sys/src/cmd/upas/q
+.SH "SEE ALSO"
+.IR mail (1)
diff --git a/static/plan9-4e/man8/rdarena.8 b/static/plan9-4e/man8/rdarena.8
new file mode 100644
index 00000000..071011ab
--- /dev/null
+++ b/static/plan9-4e/man8/rdarena.8
@@ -0,0 +1,30 @@
+.TH RDARENA 8
+.SH NAME
+rdarena \- extract a Venti arena
+.SH SYNOPSIS
+.B venti/rdarena
+[
+.B -v
+]
+.I venti.config
+.I arena
+.SH DESCRIPTION
+.I Rdarena
+extracts the named
+.I arena
+from the Venti system described by the
+.IR venti.conf (6)
+file
+.I venti.config
+and writes this arena to standard output.
+This command is typically used to back up an arena to external media.
+The
+.B -v
+option generates more verbose output on standard error.
+.SH SOURCE
+.B /sys/src/cmd/venti
+.SH "SEE ALSO"
+.IR venti (8)
+.SH BUGS
+There is currently no way to restore a Venti system from a collection of extracted
+arenas.
diff --git a/static/plan9-4e/man8/reboot.8 b/static/plan9-4e/man8/reboot.8
new file mode 100644
index 00000000..0dd8f4d5
--- /dev/null
+++ b/static/plan9-4e/man8/reboot.8
@@ -0,0 +1,20 @@
+.TH REBOOT 8
+.SH NAME
+reboot \- reboot the system upon loss of remote file server connection
+.SH SYNOPSIS
+.B aux/reboot
+[
+.I file
+]
+.SH DESCRIPTION
+.I Reboot
+stats
+.IR file ,
+default
+.BR /$\fIcputype\fP/init ,
+once a minute. If the stat times out,
+.I reboot
+reboots the system. This is used to restart diskless cpu
+servers whenever their file server connection is broken.
+.SH SOURCE
+.B /sys/src/cmd/aux/reboot.c
diff --git a/static/plan9-4e/man8/replica.8 b/static/plan9-4e/man8/replica.8
new file mode 100644
index 00000000..fa578c2a
--- /dev/null
+++ b/static/plan9-4e/man8/replica.8
@@ -0,0 +1,303 @@
+.TH REPLICA 8
+.SH NAME
+applychanges, applylog, compactdb, updatedb \- simple client-server replica management
+.SH SYNOPSIS
+.B replica/compactdb
+.I db
+.br
+.B replica/updatedb
+[
+.B -cl
+]
+[
+.B -p
+.I proto
+]
+[
+.B -r
+.I root
+]
+[
+.B -t
+.I now
+.I n
+]
+[
+.B -u
+.I uid
+]
+[
+.B -x
+.I path
+] ...
+.I db
+.br
+.B replica/applylog
+[
+.B -cnsuv
+]
+.I clientdb
+.I clientroot
+.I serverroot
+[
+.I path ...
+]
+.br
+.B replica/applychanges
+[
+.B -nuv
+]
+[
+.B -p
+.I proto
+]
+[
+.B -x
+.I path
+] ...
+.I clientdb
+.I clientroot
+.I serverroot
+[
+.I path ...
+]
+.SH DESCRIPTION
+These four tools collectively provide simple log-based
+client-server replica management.
+The shell scripts described in
+.IR replica (1)
+provide a more polished interface.
+.PP
+Both client and server maintain textual databases of file system
+metadata. Each line is of the form
+.sp 0.5
+\h'0.25i'
+.I path
+.I mode
+.I uid
+.I gid
+.I mtime
+.I length
+.sp 0.5
+Later entries for a
+.I path
+supersede previous ones.
+A line with the string
+.B REMOVED
+in the
+.I mode
+field annuls all previous entries for that
+.IR path .
+The entries in a file are typically kept sorted by
+.I path
+but need not be.
+These properties facilitate updating the database atomically
+by appending to it.
+.I Compactdb
+reads in a database and writes out an equivalent one,
+sorted by path and without outdated or annulled records.
+.PP
+A replica is further described on the server by a textual
+log listing creation and deletion of files and changes
+to file contents and metadata.
+Each line is of the form:
+.sp 0.5
+\h'0.25i'
+.I time
+.I gen
+.I verb
+.I path
+.I serverpath
+.I mode
+.I uid
+.I gid
+.I mtime
+.I length
+.sp 0.5
+The
+.I time
+and
+.I gen
+fields are both decimal numbers, providing an ordering
+for log entries so that incremental tools need not process
+the whole log each time they are run.
+The
+.IR verb ,
+a single character,
+describes the event:
+addition of a file
+.RB ( a ),
+deletion of a file
+.RB ( d ),
+a change to a file's contents
+.RB ( c ),
+or a change to a file's metadata
+.RB ( m ).
+.I Path
+is the file path on the client;
+.I serverpath
+the path on the server (these are different when the
+optional fifth field in a proto file line is given;
+see
+.IR proto (2)).
+.IR Mode ,
+.IR uid ,
+.IR gid ,
+and
+.I mtime
+are the files metadata as in the
+.B Dir
+structure (see
+.IR stat (5)).
+For deletion events, the metadata is that of the deleted file.
+For other events, the metadata is that after the event.
+.PP
+.I Updatedb
+scans the file system rooted at
+.I root
+for changes not present in
+.IR db ,
+noting them by appending new entries to the database
+and by writing log events to standard output.
+The
+.B -c
+option causes
+.I updatedb
+to consider only file and metadata changes, ignoring file additions and deletions.
+By default, the log events have
+.I time
+set to the current system time
+and use incrementing
+.I gen
+numbers starting at 0.
+The
+.B -t
+option can be used to specify a different time and starting number.
+If the
+.B -u
+option is given, all database entries and log events will use
+.I uid
+rather than the actual uids.
+The
+.B -x
+option (which may be specified multiple times) excludes the named path
+and all its children from the scan.
+If the
+.B -l
+option is given, the database is not changed and the
+.I time
+and
+.I gen
+fields are omitted from the log events;
+the resulting output is intended to be a human-readable
+summary of file system activity since the last scan.
+.PP
+.I Applylog
+is used to propagate changes from server to client.
+It applies the changes listed in a log
+(read from standard input)
+to the file system rooted at
+.IR clientroot ,
+copying files when necessary from the file system rooted at
+.IR serverroot .
+By default,
+.I replapplylog
+does not attempt to set the uid on files; the
+.B -u
+flag enables this.
+.I Applylog
+will not overwrite local changes made to replicated files.
+When it detects such conflicts, by default it prints an error describing
+the conflict and takes no action.
+If the
+.B -c
+flag is given,
+.I replapplylog
+still takes no action, but does so silently and will not
+report the conflicts in the future.
+(The conflict is resolved in favor of the client.)
+If the
+.B -s
+flag is given,
+.I replapplylog
+overwrites the local changes.
+(The conflict is resolved in favor of the server.)
+.PP
+.I Applychanges
+is, in some sense, the opposite of
+.IR applylog ;
+it scans the client file system for changes, and applies
+those changes to the server file system.
+.I Applychanges
+will not overwrite remote changes made to replicated files.
+For example, if a file is copied from server to client and subsequently
+changed on both server and client,
+.I applychanges
+will not copy the client's new version to the server, because
+the server also has a new version.
+.I Applychanges
+and
+.I applylog
+detect the same conflicts; to resolve conflicts reported by
+.IR applychanges ,
+invoke
+.I applylog
+with the
+.B -c
+or
+.B -s
+flags.
+.SH EXAMPLE
+One might
+keep a client kfs file system up-to-date
+against a server file system using these tools.
+First, connect to a CPU server with a high-speed
+network connection to the file server and scan
+the server file system, updating the server database and log:
+.EX
+ repl=$home/lib/replica
+ proto=/sys/lib/sysconfig/proto/portproto
+ db=$repl/srv.portproto.db
+ log=$repl/srv.portproto.log
+
+ 9fs $fs
+ replica/updatedb -p $proto -r /n/$fs -x $repl $db >>$log
+ replica/compactdb $db >/tmp/a && mv /tmp/a $db
+.EE
+.PP
+Then, update the client file system:
+.EX
+ repl=$home/lib/replica
+ db=$repl/cli.portproto.db
+ log=$repl/srv.portproto.log
+
+ 9fs $fs
+ 9fs kfs
+ replica/applylog $db /n/kfs /n/$fs <$log
+ replica/compactdb $db >/tmp/a && mv /tmp/a $db
+.EE
+.PP
+The
+.B $repl
+directory is excluded from the sync so that multiple
+clients can each have their own local database.
+The shell scripts in
+.B /rc/bin/replica
+are essentially a further development of this example.
+.PP
+The Plan 9 distribution update program
+operates similarly, but omits the first scan;
+it is assumed that the Plan 9 developers run
+scans manually when the distribution
+file system changes.
+The manual page
+.IR replica (1)
+describes this in full.
+.SH SEE ALSO
+.IR replica (1)
+.SH BUGS
+These tools assume that
+.I mtime
+combined with
+.I length
+is a good indicator of changes to a file's contents.
diff --git a/static/plan9-4e/man8/scanmail.8 b/static/plan9-4e/man8/scanmail.8
new file mode 100644
index 00000000..ce639f72
--- /dev/null
+++ b/static/plan9-4e/man8/scanmail.8
@@ -0,0 +1,447 @@
+.TH SCANMAIL 8
+.SH NAME
+scanmail, testscan \- spam filters
+.SH SYNOPSIS
+.B upas/scanmail
+[
+.I options
+]
+[
+.I qer-args
+]
+.I root
+.B mail
+.I sender system rcpt-list
+.PP
+.B upas/testscan
+[
+.B -avd
+]
+[
+.B -p
+.I patfile
+]
+[
+.I filename
+]
+.SH DESCRIPTION
+.B Scanmail
+accepts a mail message supplied on standard input,
+applies a file of patterns to a portion of it,
+and dispatches
+the message based
+on the results.
+It exactly replaces the
+generic queuing command
+.IR qer (8)
+that is executed from the
+.IR rc (1)
+script
+.B /mail/lib/qmail
+in the mail processing pipeline.
+Associated with each pattern is an
+.I action
+in order of decreasing priority:
+.in +5
+.TP 10
+.B dump
+the message is deleted and a log entry is written to
+.B /sys/log/smtpd
+.TP 10
+.B hold
+the message is placed in a queue for human inspection
+.TP
+.B log
+a line containing the matching portion of the message is written to a log
+.in -5
+.PP
+If no pattern matches or only patterns with an action of
+.B log
+match, the message is accepted and
+.I scanmail
+queues the message for delivery.
+.I Scanmail
+meshes with the blocking facilities
+of
+.IR smtpd (6)
+to provide several layers of
+filtering on gateway systems. In all cases the sender
+is notified that the message has been successfully
+delivered,
+leaving the sender unaware that the message has been potentially delayed or deleted.
+.PP
+.I Scanmail
+accepts the arguments of
+.IR qer (8)
+as well as the following:
+.TF filename
+.TP
+.B -c
+Save a copy of each message in a
+randomly-named file in
+directory
+.BR /mail/copy .
+.TP
+.B -d
+Write debugging information to standard error.
+.TP
+.B -h
+Queue
+.I held
+messages by sending domain name.
+The
+.B -q
+option must specify a root directory; messages
+are queued in subdirectories of this directory.
+If the
+.B -h
+option is not specified,
+messages are accumulated in a subdirectory of
+.B /mail/queue.hold
+named for the contents of
+.BR /dev/user ,
+usually
+.BR none .
+.TF filename
+.TP
+.B -n
+Messages are never held for inspection, but are delivered. Also known as
+.IR "vacation mode" .
+.TP
+.BI -p " filename"
+Read the patterns from
+.I filename
+rather than
+.BR /mail/lib/patterns .
+.TP
+.BI -q " holdroot"
+Queue deliverable messages in subdirectories of
+.IR holdroot .
+This option is the same as the
+.B -q
+option of
+.IR qer (8)
+and must be present if the
+.B -h
+option is given.
+.TP
+.B -s
+Save deleted
+messages. Messages are stored, one per randomly-named file,
+in subdirectories of
+.B /mail/queue.dump
+named with the date.
+.TP
+.B -t
+Test mode. The pattern matcher is applied but the message is
+discarded and the result is not logged.
+.TP
+.B -v
+Print the highest priority match.
+This is useful
+with the
+.B -t
+option for testing the pattern matcher without actually
+sending a message.
+.PD
+.PP
+.I Testscan
+is the command line version of
+.IR scanmail .
+If
+.I filename
+is missing, it applies the pattern set to
+the message on standard input. Unlike
+.IR scanmail ,
+which finds the highest priority match,
+.I testscan
+prints all matches in the portion of the message under test.
+It is useful for testing a pattern set or
+implementing a personal filter
+using the
+.B pipeto
+file in a user's mail directory.
+.I Testscan
+accepts the following options:
+.TP
+.B -a
+Print matches in the complete input message
+.TP
+.B -d
+Enable debug mode
+.TP
+.B -v
+Print the message after conversion to canonical form
+.RI ( q.v. ).
+.TP
+.BI -p " filename"
+Read the patterns from
+.I filename
+rather than
+.BR /mail/lib/patterns .
+.SS Canonicalization
+Before pattern matching, both programs convert a portion of
+the message header and the beginning of the
+message to a canonical form. The amount of the header
+and message body processed are set by
+compile-time parameters in the source files.
+The canonicalization process converts letters to lower-case and
+replaces consecutive spaces, tabs and newline characters
+with a single space. HTML commands are
+deleted except for the parameters following
+.B A
+.BR HREF ,
+.B IMG
+.BR SRC ,
+and
+.B IMG
+.B BORDER
+directives. Additionally, the following MIME escape sequences
+are replaced by their ASCII
+equivalents:
+.PP
+.EX
+ Escape Seq ASCII
+ ---------- -----
+ =2e .
+ =2f /
+ =20 <space>
+ =3d =
+.EE
+and the sequence
+.I =<newline>
+is elided.
+.I Scanmail
+assembles the sender, destination domain and recipient fields of
+the command line into a string that is
+subjected to the same canonical processing.
+Following canonicalization, the command line and
+the two long strings containing
+the header and the message body are passed to the
+matching engine for analysis.
+.SS Pattern Syntax
+The matching engine compiles the pattern set
+and matches it to each canonicalized input string.
+Patterns are specified one per line
+as follows:
+.PP
+.EX
+ {*}\fIaction\fP: \fIpattern-spec\fP {~~\fIoverride\fP...~~\fIoverride\fP}
+.EE
+.PP
+On all lines, a
+.B #
+introduces a comment; there is no way to escape this character.
+.PP
+Lines beginning with
+.B *
+contain a
+.I pattern-spec
+that is a string; otherwise, the the
+.I pattern-spec
+is a regular expression in the style of
+.IR regexp (6).
+Regular expression matching is many
+times less efficient than string matching, so it is
+wiser to enumerate several similar strings
+than to combine them into a regular expression.
+The
+.I action
+is a keyword terminated by a
+.B :
+and separated from the pattern by optional white-space.
+It must be one of the following:
+.TP 10
+.B dump
+if the pattern matches, the message is deleted. If the
+.B -s
+command line option is set, the message is saved.
+.TP 10
+.B hold
+if the pattern matches, the message is queued in a subdirectory
+of
+.B /mail/queue.hold
+for manual inspection. After inspection, the queue can be swept
+manually using
+.B runq
+(see
+.IR qer (8))
+to deliver messages that were inadvertently matched.
+.TP 10
+.B header
+this is the same as the
+.B hold
+action, except the pattern is only applied to the message header.
+This optimization is useful for patterns that match header fields
+that are unlikely to be present in the body of the message.
+.TP 10
+.B line
+the sender and a section of the message around the match are written to
+the file
+.BR /sys/log/lines .
+The message is always delivered.
+.TP 10
+.B loff
+patterns of this type are applied only to the canonicalized command line.
+When a match occurs, all patterns with
+.B line
+actions are disabled. This is useful for limiting
+the size of the log file by excluding repetitive messages, such
+as those from mailing lists.
+.PP
+Patterns are accumulated into pattern sets sharing the same action.
+The matching engine applies the
+.B dump
+pattern set first, then the
+.B header
+and
+.B hold
+pattern sets, and finally the
+.B line
+pattern set. Each pattern set is applied three times:
+to the canonicalized command line, to the message header, and
+finally to the message body. The ordering of patterns
+in the pattern file is insignificant.
+.PP
+The
+.I pattern-spec
+is a string of characters terminated by a
+.BR newline ,
+.B #
+or override indicator,
+.BR ~~ .
+Trailing white-space is deleted but
+patterns containing leading or trailing white-space can
+be enclosed in double-quote
+characters. A pattern containing a double-quote
+must be enclosed in double-quote
+characters and preceded by a backslash.
+For example, the pattern
+.PP
+.EX
+ "this is not \\"spam\\""
+.EE
+.PP
+matches the string \fLthis is not "spam"\fP.
+The
+.I pattern-spec
+is followed by zero or more
+.I override
+strings. When the specific pattern matches,
+each override is applied and
+if one matches, it cancels the effect of the pattern.
+Overrides must be strings; regular expressions are not supported.
+Each override is introduced by the string
+.BR ~~
+and continues until a subsequent
+.BR ~~ ,
+.B #
+or
+.BR newline ,
+white-space included.
+A
+.B ~~
+immediately followed by a
+.B newline
+indicates a line continuation and further overrides continue
+on the following line.
+Leading white-space
+on the continuation line is ignored. For example,
+.PP
+.EX
+ *hold: sex.com~~essex.com~~sussex.com~~sysex.com~~
+ lasex.com~~cse.psu.edu!owner-9fans
+.EE
+.PP
+matches all input containing the string
+.B sex.com
+except for messages that also contain the
+strings in the override list. Often it
+is desirable to override a pattern based on
+the name of the sender or
+recipient. For this reason, each override
+pattern is applied to the header and the command line as well
+as the section of the
+canonicalized input containing the matching data.
+Thus a pattern matching the command line or the header
+searches both the command line and the header
+for overrides while a match in the body searches
+the body, header and command line for overrides.
+.PP
+The structure of the pattern file and the matching
+algorithm define the strategy for detecting
+and filtering unwanted messages. Ideally, a
+.B hold
+pattern selects a message for inspection and if it
+is determined to be undesirable, a specific
+.B dump
+pattern is added to delete further instances
+of the message. Additionally, it is often
+useful to block the sender by updating the
+.B smtpd
+control file.
+.PP
+In this regime, patterns with a
+.I dump
+action, generally match phrases
+that are likely to be unique. Patterns that
+hold a message for inspection
+match phrases commonly found in undesirable material and
+occasionally in legitimate messages. Patterns
+that log matches are less specific yet. In all
+cases the ability to override a pattern by
+matching another string, allows repetitive messages
+that trigger the pattern, such as mailing lists,
+to pass the filter after the first one is processed
+manually. The
+.B -s
+option allows deleted messages to be salvaged
+by either manual or semi-automatic review, supporting
+the specification of more aggressive patterns.
+Finally, the utility of the pattern matcher is not
+confined to filtering spam; it is a generally useful
+administrative tool for deleting inadvertently harmful
+messages, for example, mail loops, stuck senders or viruses.
+It is also useful for collecting or counting messages
+matching certain criteria.
+.SH FILES
+.TF /mail/queue.dump/*
+.TP
+.B /mail/lib/patterns
+default pattern file
+.TP
+.B /sys/log/smtpd
+log of deleted messages
+.TP
+.B /mail/log/lines
+file where
+.I log
+matches are logged
+.TP
+.B /mail/queue/*
+directories where legitimate messages are queued for delivery
+.TP
+.B /mail/queue.hold
+directory where held messages are queued for inspection
+.TP
+.B /mail/queue.dump/*
+directory where
+.I dumped
+messages are stored when the
+.B -s
+command line option is specified.
+.TP
+.B /mail/copy/*
+directory where copies of all incoming messages
+are stored.
+.SH SOURCE
+.TP
+.B /sys/src/cmd/upas/scanmail
+.SH "SEE ALSO"
+.IR mail (1),
+.IR qer (8),
+.IR smtpd (6)
+.SH BUGS
+.I Testscan
+does not report a match when the body of a message
+contains exactly one line.
diff --git a/static/plan9-4e/man8/scuzz.8 b/static/plan9-4e/man8/scuzz.8
new file mode 100644
index 00000000..2aed5c94
--- /dev/null
+++ b/static/plan9-4e/man8/scuzz.8
@@ -0,0 +1,370 @@
+.TH SCUZZ 8
+.SH NAME
+scuzz \- SCSI target control
+.SH SYNOPSIS
+.B scuzz
+[
+.B -q
+]
+[
+[
+.B -r
+]
+.I sddev
+]
+.SH DESCRIPTION
+.I Scuzz
+is an interactive program for exercising
+raw SCSI devices.
+Its intended purpose is to investigate and manipulate
+odd devices without the effort of writing a special driver,
+such as shuffling the media around on an optical jukebox.
+It reads commands from standard input and applies them to a SCSI target
+(other devices accessed through the
+.IR sd (3)
+interface,
+such as ATA(PI) devices,
+may also work).
+If
+.I sddev
+is given on the command line, an
+.B open
+(see below)
+is immediately applied to the target.
+On successful completion of a command,
+.BI ok " n
+is printed, where
+.I n
+is the number of bytes transferred to/from the target;
+the
+.B -q
+command line option suppresses the
+.B ok
+message.
+.SS Commands
+.TP
+.BI help " command
+.B Help
+is rudimentary and prints a one line synopsis for the named
+.IR command ,
+or for all commands if no argument is given.
+.TP
+.B probe
+.B Probe
+attempts an
+.B inquiry
+command on all SCSI units,
+and prints the result preceded by the name of those
+targets which respond.
+.LP
+The
+.B help
+and
+.B probe
+commands may be given at any time.
+.TP
+.BI open\ [ -r ] sddev
+.B Open
+must be given before any of the remaining commands will be accepted.
+Internally,
+unless the
+.B -r
+option is given,
+.B open
+issues
+.B ready
+then
+.BR inquiry ,
+followed by a device class-specific command to determine the
+logical block size of the target.
+.I Sddev
+is an
+.IR sd (3)
+device directory like
+.IR /dev/sdC0 .
+.TP
+.B close
+.B Close
+need only be given if another target is to be opened in the current
+session.
+.LP
+The remaining commands are in rough groups,
+intended for specific classes of device.
+With the exception of the
+.BR read ,
+.BR write ,
+and
+.B space
+commands,
+all arguments are in the style of ANSI-C integer constants.
+.TP
+.B ready
+Test Unit Ready
+checks if the unit is powered up and ready to do
+.B read
+and
+.B write
+commands.
+.TP
+.B rezero
+Rezero
+Unit requests that a disk be brought to a known state,
+usually by seeking to track zero.
+.TP
+.B rewind
+.B Rewind
+positions a tape at the beginning of current partition
+(there is usually only one partition, the beginning of tape).
+.TP
+.B reqsense
+Request Sense retrieves Sense Data concerning an error or
+other condition and is usually issued following the completion of a command
+that had check-condition status.
+.I Scuzz
+automatically issues a
+.B reqsense
+in response to a check-condition status and prints the result.
+.TP
+.B format
+Format
+Unit performs a ``low level'' format of a disk.
+.TP
+.B rblimits
+Read Block Limits
+reports the possible block lengths for the logical unit. Tapes only.
+.TP
+.BI read " file nbytes
+.B Read
+transfers data from the target to the host.
+A missing
+.I nbytes
+causes the entire device to be read.
+.TP
+.BI write " file nbytes
+.B Write
+transfers data from the host to the target.
+A missing
+.I nbytes
+causes the entire input file to be transferred.
+.IP
+The first argument to the
+.BR read
+and
+.BR write
+commands specifies a source
+.RB ( write )
+or destination
+.RB ( read )
+for the I/O.
+The argument is either a plain file name or
+.B |
+followed by a command to be executed by
+.IR rc (1).
+The argument may be quoted in the style of
+.IR rc (1).
+.TP
+.BI seek " offset whence
+.B Seek
+requests the target to seek to a position on a disk,
+arguments being in the style of
+.IR seek (2);
+.I whence
+is 0 by default.
+.IP
+.I Scuzz
+maintains an internal notion of where the current target
+is positioned.
+The
+.BR seek ,
+.BR read ,
+.BR write ,
+.BR rewind ,
+.BR rezero ,
+and
+.B wtrack
+commands all manipulate the internal offset.
+.TP
+.BI filemark " howmany
+Write Filemarks
+writes one (default) or more filemarks on a tape.
+.TP
+.BI space\ [ -b ]\ [ -f ]\ [[ "--\fP]\fIhowmany\fP]"
+.B Space
+positions a tape forwards or backwards.
+The arguments
+specify logical block
+.RB ( -b )
+or
+filemark
+.RB ( -f )
+spacing;
+default is
+.BR -b .
+If
+.I howmany
+is negative
+it specifies spacing backwards,
+and should be preceded by
+.B --
+to turn off any further
+option processing.
+Default is 1.
+.TP
+.B inquiry
+.B Inquiry
+is issued to determine the device type of a particular target,
+and to determine some basic information about the implemented options and
+the product name.
+.TP
+.BI modeselect bytes...
+.TP
+.BI modeselect6 bytes...
+Mode
+Select
+is issued to set variable parameters in the target.
+.I Bytes
+given as arguments comprise all the data for the target;
+see an appropriate manual for the format.
+The default is the 10-byte form of the command;
+modeselect6 is the 6-byte version.
+.TP
+.BI modesense\ [ page [ nbytes ]]
+.TP
+.BI modesense6\ [ page [ nbytes ]]
+Mode
+Sense
+reports variable and fixed parameters from the target.
+If no
+.I page
+is given,
+all pages are returned.
+.I Nbytes
+specifies how many bytes should be returned.
+The default is the 10-byte form of the command;
+modesense6 is the 6-byte version.
+.TP
+.BI start\ [ code ]
+.TP
+.BI stop\ [ code ]
+.TP
+.BI eject\ [ code ]
+.TP
+.BI ingest\ [ code ]
+.BR Start ,
+.BR stop ,
+.BR eject ,
+and
+.B ingest
+are synonyms for Start/Stop Unit with different default values of
+.IR code .
+Start/Stop Unit is typically used to spin up and spin down a rotating
+disk drive.
+.I Code
+is 0 to stop,
+1 to start and
+3 to eject (if the device supports ejection of the medium).
+.TP
+.B capacity
+Read Capacity reports the number of blocks and the block
+size of a disk.
+.LP
+The following commands are specific to CD and CD-R/RW devices.
+A brief description of each is given; see the SCSI-3
+Multimedia Commands (MMC) Specification for details of arguments
+and interpretation of the results.
+.TP
+.BI blank\ [ track/LBA [ type ]]
+Erase a CD-RW disk.
+Type identifies the method and coverage of the blanking.
+.TP
+.BI rtoc\ [ track/session-number [ ses ]]
+The Read TOC/PMA command transfers data from one of the tables of contents
+(TOC or PMA) on the CD medium.
+.TP
+.B rdiscinfo
+(Note the spelling.)
+Provides information about disks, including incomplete CD-R/RW.
+.TP
+.BI rtrackinfo\ [ track ]
+Provides information about a track, regardless of its status.
+.TP
+.B cdpause
+.TP
+.B cdresume
+Pause/resume playback.
+.TP
+.B cdstop
+Stop playback.
+.TP
+.BI cdplay\ [ track-number ]\ or\ [ -r [ "LBA\fP[\fIlength\fP]]]"
+Play audio.
+With no arguments, starts at the beginning of the medium.
+If a track number is given, the table of contents is read
+to find the playback start point.
+If the
+.B -r
+option is given, block addressing is used to find the
+playback start point.
+.TP
+.BI cdload\ [ slot ]
+.TP
+.BI cdunload\ [ slot ]
+Load/unload a disk from a changer.
+.TP
+.B cdstatus
+Read the mechanism status.
+.LP
+The following commands are specific to Media Changer devices.
+A brief description of each is given; see the SCSI-3
+Medium Changer Commands (SMC) Specification for details of arguments.
+.TP
+.B einit
+Initialize element status.
+.TP
+.BI estatus type [ length ]
+Report the status of the internal elements.
+Type 0 reports all element types.
+.TP
+.BI mmove transport\ source\ destination [ invert ]
+Move medium.
+.SH FILES
+.TF /dev/sdXX/raw
+.TP
+.B /dev/\fIsdXX\fP/raw
+raw SCSI interface for command, I/O, and status.
+.SH SOURCE
+.B /sys/src/cmd/scuzz
+.SH "SEE ALSO"
+.IR sd (3)
+.br
+.IR "Small Computer System Interface - 2 (X3T9.2/86-109)" ,
+Global Engineering Documents
+.br
+.IR "SCSI Bench Reference" ,
+ENDL Publications
+.br
+.IR "SCSI-3 Multimedia Commands (MMC) Specification" ,
+www.t10.org
+.br
+.IR "SCSI-3 Medium Changer Commands (SMC) Specification" ,
+www.t10.org
+.SH BUGS
+Only a limited subset of SCSI commands has been implemented (as needed).
+.LP
+Only one target can be open at a time.
+.LP
+LUNs other than 0 are not supported.
+.LP
+No way to force 6- or 10- byte commands.
+.LP
+Should be recoded to use
+.IR scsi (2)
+in order to get more complete sense code descriptions.
+.LP
+.I Scuzz
+betrays its origins by spelling
+.B rdiscinfo
+with a
+.B c
+even though the devices it manipulates are spelled with a
+.BR k .
diff --git a/static/plan9-4e/man8/secstore.8 b/static/plan9-4e/man8/secstore.8
new file mode 100644
index 00000000..33835184
--- /dev/null
+++ b/static/plan9-4e/man8/secstore.8
@@ -0,0 +1,47 @@
+.TH SECSTORE 8
+.SH NAME
+secstored, secuser \- secstore commands
+.SH SYNOPSIS
+.br
+.B auth/secstored
+[-S servername]
+[-s tcp!*!5356]
+[-x]
+.br
+.B auth/secuser
+username
+.br
+.PP
+.SH DESCRIPTION
+.PP
+.I Secstored
+serves requests from
+.IR secstore (1).
+The
+.B -x
+option announces on
+.B /net.alt/tcp!*!5356
+instead of the default
+.BR /net .
+.PP
+.I Secuser
+is an administrative command that runs on the
+secstore machine, normally the authserver,
+to create new accounts and
+to change status on existing accounts.
+It prompts for account information such as
+password and expiration date, writing to
+.BR /adm/secstore/who/$uid .
+.SH FILES
+.B /adm/secstore/who/$uid
+secstore account name, expiration date, verifier
+.br
+.B /adm/secstore/store/$uid/
+users' files
+.br
+.B /lib/ndb/auth
+for mapping local userid to RADIUS userid
+.SH SOURCE
+.B /sys/src/cmd/auth/secstore
+.SH SEE ALSO
+.IR secstore (1)
diff --git a/static/plan9-4e/man8/securenet.8 b/static/plan9-4e/man8/securenet.8
new file mode 100644
index 00000000..cdd4f23d
--- /dev/null
+++ b/static/plan9-4e/man8/securenet.8
@@ -0,0 +1,128 @@
+.TH SECURENET 8
+.SH NAME
+securenet \- Digital Pathways SecureNet Key remote authentication box
+.SH DESCRIPTION
+The
+.I SecureNet
+box is used to authenticate connections to Plan 9 from a foreign system
+such as a
+Unix
+machine or plain terminal.
+The box, which looks like a calculator,
+performs DES encryption with a key held in its memory.
+Another copy of the key is kept on the authentication server.
+Each box is protected from unauthorized use by a four digit PIN.
+.PP
+When the system requires SecureNet authentication,
+it prompts with a numerical challenge.
+The response is compared to one
+generated with the key stored on the authentication server.
+Respond as follows:
+.PP
+Turn on the box and enter your PIN at the
+.B EP
+prompt,
+followed by the
+.B ENT
+button.
+Enter the challenge at
+.B Ed
+prompt,
+again followed
+.BR ENT .
+Then type to Plan 9 the response generated by the box.
+If you make a mistake at any time, reset the box
+by pressing
+.BR ON .
+The authentication server compares the response generated by the box
+to one computed internally. If they match, the user is accepted.
+.PP
+The box will lose its memory if given the wrong PIN
+five times in succession or if its batteries are removed.
+.PP
+To reprogram it, type a
+.B 4
+at the
+.B E0
+prompt.
+.PP
+At the
+.B E1
+prompt, enter your key, which consists of eight three-digit octal numbers.
+While you are entering these digits,
+the box displays a number ranging from 1 to 8 on the left side of the display.
+This number corresponds to the octal number you are entering,
+and changes when you enter the first digit of the next number.
+.PP
+When you are done entering your key, press
+.B ENT
+twice.
+.PP
+At the
+.B E2
+prompt, enter a PIN for the box.
+.PP
+After you confirm by retyping the PIN at the
+.B E3
+prompt, you can use the box as normal.
+.PP
+You can change the PIN using the following procedure.
+First, turn on the box and enter your current PIN at the
+.B EP
+prompt.
+Press
+.B ENT
+three times;
+this will return you to the
+.B EP
+prompt.
+Enter your PIN again, followed by
+.BR ENT ;
+you should see a
+.B Ed
+prompt with a
+.B -
+on the right side of the display.
+Enter a
+.B 0
+and press
+.BR ENT .
+You should see the
+.B E2
+prompt; follow the instructions above for entering a PIN.
+.PP
+The
+.I SecureNet
+box
+performs the same encryption as the
+.B netcrypt
+routine
+(see
+.IR encrypt (2)).
+The entered challenge, a decimal number between 0 and 100000,
+is treated as a text string with trailing binary zero fill to 8 bytes.
+These 8 bytes are encrypted with the DES algorithm.
+The first four bytes are printed on the display as hexadecimal numbers.
+However, when set up as described,
+the box does not print hexadecimal digits greater than 9.
+Instead, it prints a 2 for an A, B, or C, and a 3 for a D, E, or F.
+If a
+.B 5
+rather than a
+.B 4
+is entered at the
+.B E0
+print, the hexadecimal digits are printed.
+This is not recommended, as letters are
+too easily confused with digits on the
+.I SecureNet
+display.
+.SH "SEE ALSO"
+.IR encrypt (2),
+.IR auth (2)
+.br
+Digital Pathways, Mountain View, California
+.SH BUGS
+The box is clumsy to use and too delicate.
+If carried in a pocket,
+it can turn itself on and wear out the batteries.
diff --git a/static/plan9-4e/man8/snoopy.8 b/static/plan9-4e/man8/snoopy.8
new file mode 100644
index 00000000..cc4e225a
--- /dev/null
+++ b/static/plan9-4e/man8/snoopy.8
@@ -0,0 +1,170 @@
+.TH SNOOPY 8
+.SH NAME
+snoopy \- spy on network packets
+.SH SYNOPSIS
+.B snoopy
+[
+.B -?stdC
+] [
+.B -f
+.I filter-expression
+] [
+.B -N
+.I n
+] [
+.B -h first-header
+] [
+packet-file
+]
+.SH DESCRIPTION
+.PP
+.I Snoopy
+reads packets from a packet source (default
+.BR /net/ether0 ),
+matches them to a filter (by default anything matches), and writes
+matching packets to standard output either in human readable form (default)
+or in a binary trace format that can be reinput to
+.IR snoopy .
+.PP
+The human readable format consists of multiple lines per packet.
+The first line contains the milliseconds since the
+trace was started. Subsequent ones are indented with a tab
+and each contains the dump of a single protocol header. The last line
+contains the dump of any contained data. For example, a
+.SM BOOTP
+packet would look like:
+.sp
+.EX
+324389 ms
+ ether(s=0000929b1b54 d=ffffffffffff pr=0800 ln=342)
+ ip(s=135.104.9.62 d=255.255.255.255 id=5099 frag=0000...
+ udp(s=68 d=67 ck=d151 ln= 308)
+ bootp(t=Req ht=1 hl=16 hp=0 xid=217e5f27 sec=0 fl=800...
+ dhcp(t=Request clientid=0152415320704e7266238ebf01030...
+.EE
+.PP
+The binary format consists of:
+.IP
+2 bytes of packet length, msb first
+.IP
+8 bytes of nanosecond time, msb first
+.IP
+the packet
+.PP
+Filters are expressions specifying protocols to be traced
+and specific values for fields in the protocol headers.
+The grammar is:
+.sp
+.EX
+expr : protocol
+ | field '=' value
+ | protocol '(' expr ')'
+ | '(' expr ')'
+ | expr '||' expr
+ | expr '&&' expr
+.EE
+.PP
+The values for <protocol> and <field> can
+be obtained using the
+.B -?
+option. It will list each known protocol,
+which subprotocols it can multiplex to,
+and which fields can be used for filtering.
+For example, the listing for ethernet is currently:
+.sp
+.EX
+ether's filter attr:
+ s - source address
+ d - destination address
+ a - source|destination address
+ t - type
+ether's subprotos:
+ ip
+ arp
+ rarp
+ ip6
+.EE
+.PP
+The format of <value> depends on context. In general,
+ethernet addresses are entered as a string of hex
+digits; IP numbers in the canonical `.' format for v4 and `:' format
+for v6; and ports in decimal.
+.PP
+.IR Snoopy 's
+options are:
+.TP
+.B -t
+input is a binary trace file. The default assumes
+a packet device, one packet per read.
+.TP
+.B -d
+output will be a binary trace file. The default is
+human readable.
+.TP
+.B -s
+force one output line per packet. The
+default is multiline.
+.TP
+.B -C
+compute correct checksums and if doesn't match
+the contained one, add a field
+.B !ck=\fIxxxx\fP
+where
+.I xxxx
+is the correct checksum.
+.TP
+.B -N
+dump
+.I n
+data bytes per packet. The default is 32.
+.TP
+.B -f
+use
+.I filter-exression
+to filter the packet stream. The default is
+to match all packets.
+.TP
+.B -h
+assume the first header per packet to be
+.IR first-header .
+The default is
+.IR ether .
+.SH EXAMPLES
+the following would display only
+.SM BOOTP
+and
+.SM ARP
+packets:
+.sp
+.EX
+% snoopy -f 'arp | bootp'
+after optimize: ether( arp | ip( udp( bootp ) ) )
+.EE
+.PP
+The first line of output shows the completed filter
+expression.
+.I Snoopy
+will fill in other protocols as necessary to complete
+the filter and then optimize to remove redundant
+comparisons.
+.PP
+To save all packets between 135.104.9.2 to 135.104.9.6 and
+later display those to/from TCP port 80:
+.sp
+.EX
+% ramfs
+% snoopy -df 'ip(s=135.104.9.2&d=135.104.9.6)|\\
+ ip(s=135.104.9.6&d=135.104.9.2)' > /tmp/quux
+<interrupt from the keyboard>
+% snoopy -tf 'tcp(sd=80)' /tmp/quux
+.EE
+.SH FILES
+.TP
+.B /net/ether
+Ethernet device
+.SH SOURCE
+.B /sys/src/cmd/ip/snoopy
+.SH BUGS
+At the moment it only dumps ethernet packets because there's
+no device to get IP packets without the media header. This will
+be corrected soon.
diff --git a/static/plan9-4e/man8/stats.8 b/static/plan9-4e/man8/stats.8
new file mode 100644
index 00000000..97716d6c
--- /dev/null
+++ b/static/plan9-4e/man8/stats.8
@@ -0,0 +1,145 @@
+.TH STATS 8
+.SH NAME
+stats \- display graphs of system activity
+.SH SYNOPSIS
+.B stats
+[
+.BI - option
+]
+[
+.I machine
+\&...
+]
+.SH DESCRIPTION
+.I Stats
+displays a rolling graph of various statistics collected by the operating
+system and updated once per second.
+The statistics may be from a remote
+.I machine
+or multiple
+.IR machines ,
+whose graphs will appear in adjacent columns.
+The columns are labeled by the machine names and the number
+of processors on the machine if it is a multiprocessor.
+.PP
+The right mouse button presents a menu to enable and disable the display
+of various statistics; by default,
+.I stats
+begins by showing the load average on the executing machine.
+.PP
+The
+lower-case
+.I options
+choose the initial set to display:
+.TF [t]tlbpurge
+.TP
+.B "b battery
+percentage battery life remaining.
+.TP
+.B "c context
+number of process context switches per second.
+.TP
+.B
+.B "e ether
+total number of packets sent and received per second.
+.TP
+.B
+.B "E etherin,out
+number of packets sent and received per second, displayed as separate graphs.
+.TP
+.B "f fault
+number of page faults per second.
+.TP
+.B "i intr
+number of interrupts per second.
+.TP
+.B "l load
+(default) system load average.
+The load is computed as a running average of
+the number of processes ready to run, multiplied by 1000.
+.TP
+.B "m mem
+total pages of active memory.
+The graph displays the fraction
+of the machine's total memory in use.
+.TP
+.B
+.B "n etherin,out,err
+number of packets sent and received per second, and total number of errors, displayed as separate graphs.
+.TP
+.B "p tlbpurge
+number of translation lookaside buffer flushes per second.
+.TP
+.B "s syscall
+number of system calls per second.
+.TP
+.B "t tlbmiss
+number of translation lookaside buffer misses per second.
+.TP
+.B "w swap
+number of valid pages on the swap device.
+The swap is displayed as a
+fraction of the number of swap pages configured by the machine.
+.TP
+.B "8 802.11b
+display the signal strength detected by the 802.11b wireless ether card; the value
+is usually below 50% unless the receiver is in the same room as the transmitter, so
+a midrange value represents a strong signal.
+.PD
+.PP
+The graphs are plotted with time on the horizontal axis.
+The vertical axes range from 0 to 1000, multiplied by the number of processors on the machine
+when appropriate.
+The only exceptions are
+memory
+and swap space,
+which display fractions of the total available, and the Ethernet error count,
+which goes from 0 to 10..
+If the value of the parameter is too large for the visible range, its value is shown
+in decimal in the upper left corner of the graph.
+.PP
+Upper-case options control details of the display.
+All graphs are affected; there is no mechanism to
+affect only one graph.
+.TP
+.BI -S " scale
+Sets a scale factor for the displays. A value of 2, for example,
+means that the highest value plotted will be twice as large as the default.
+.TP
+.B -L
+Plot all graphs with logarithmic
+.I y
+axes.
+The graph is plotted so the maximum value that would be displayed on
+a linear graph is 2/3 of the way up the
+.I y
+axis and the total range of the graph is a factor of 1000; thus the
+.I y
+origin is 1/100 of the default maximum value and the top of the graph is
+10 times the default maximum.
+.TP
+.B -Y
+If the display is large enough to show them,
+place value markers along the
+.I y
+axes of the graphs.
+Since one set of markers serves for all machines across the display,
+the values in the markers disregard scaling factors due to multiple processors
+on the machines. On a graph for a multiprocessor,
+the displayed values will be larger
+than the markers indicate.
+The markers appear along the right, and the markers
+show values appropriate to the rightmost machine; this only
+matters for graphs such as memory that have machine-specific
+maxima.
+.PD
+.SH FILES
+.B /net/ether0/0/stats
+.br
+.B #c/swap
+.br
+.B #c/sysstat
+.SH SOURCE
+.B /sys/src/cmd/stats.c
+.SH BUGS
+Some machines do not have TLB hardware.
diff --git a/static/plan9-4e/man8/swap.8 b/static/plan9-4e/man8/swap.8
new file mode 100644
index 00000000..09cea94a
--- /dev/null
+++ b/static/plan9-4e/man8/swap.8
@@ -0,0 +1,30 @@
+.TH SWAP 8
+.SH NAME
+swap \- establish a swap file
+.SH SYNOPSIS
+.B swap
+.I file
+.SH DESCRIPTION
+.I Swap
+establishes a file or device for the system to swap on.
+If
+.I file
+is a device, the device is used directly; if a directory,
+a unique file is created in that directory on which to swap.
+The environment variable
+.B swap
+is set to the full name of the resulting file.
+The number of blocks available in the file or device
+must be at least the number of swap blocks configured
+at system boot time.
+.PP
+If a swap channel has already been set and no blocks
+are currently valid in the file the old file will be
+closed and then replaced. If any blocks are valid on
+the device an error is returned instead.
+.SH SOURCE
+.B /sys/src/cmd/swap.c
+.SH BUGS
+Swapping to a file served by a user-level process, such as
+.IR kfs (4),
+can lead to deadlock; use raw devices or remote files instead.
diff --git a/static/plan9-4e/man8/timesync.8 b/static/plan9-4e/man8/timesync.8
new file mode 100644
index 00000000..dcfd09a7
--- /dev/null
+++ b/static/plan9-4e/man8/timesync.8
@@ -0,0 +1,95 @@
+.TH TIMESYNC 8
+.SH NAME
+timesync \- synchronize the system clock to a time source
+.SH SYNOPSIS
+.B aux/timesync
+[
+.B -a
+.I accuracy
+]
+[
+.B -s
+.I netroot
+]
+[
+.B -frnDdLil
+]
+[
+.I timeserver
+]
+.SH DESCRIPTION
+.B Aux/timesync
+synchronizes the system clock to a time source, by default a
+file server.
+The options are:
+.TP
+.B -f
+synchronize to a file server. If
+.I timeserver
+is missing, use
+.BR /srv/boot .
+.TP
+.B -r
+synchronize to the local real time clock,
+.BR #r/rtc .
+.TP
+.B -L
+used with
+.B -r
+to indicate the real time clock is in
+local time rather than GMT. This is
+useful on PCs that also run the
+Windows OS.
+.TP
+.B -n
+synchronize to an NTP server. If
+.I timeserver
+is missing, dial the server
+.BR udp!$ntp!ntp .
+.TP
+.B -D
+print debugging to standard error
+.TP
+.B -d
+put file containing last determined clock
+frequency in directory
+.IR dir ,
+default
+.BR /tmp .
+.TP
+.B -i
+stands for impotent.
+.I Timesync
+announces what it would do but doesn't do it.
+This is useful for tracking alternate time sources.
+.TP
+.B -a
+specifies the
+.I accuracy
+in nanoseconds to which the
+clock should be synchronized. This determines
+how often the reference clock is accessed.
+.TP
+.B -s
+causes
+.I timesync
+to listen for UDP NTP requests on the
+network rooted at
+.IR netroot .
+Up to 4
+.B -s
+options are allowed.
+.TP
+.B -l
+turns on logging to
+.BR /sys/log/timesync .
+.SH FILES
+.TF /tmp/ts.<sysname>.<type>.timeserver
+.TP
+.B /tmp/ts.<sysname>.<type>.timeserver
+where the last frequency guess is kept
+.TP
+.B /sys/log/timesync
+log file
+.SH SOURCE
+.B /sys/src/cmd/aux/timesync.c
diff --git a/static/plan9-4e/man8/tlssrv.8 b/static/plan9-4e/man8/tlssrv.8
new file mode 100644
index 00000000..fc23426b
--- /dev/null
+++ b/static/plan9-4e/man8/tlssrv.8
@@ -0,0 +1,38 @@
+.TH TLSSRV 8
+.SH NAME
+tlssrv \- TLS server
+.SH SYNOPSIS
+.PP
+.B tlssrv
+.RB [ -k
+.IR keydir ]
+.RB [ -l
+.IR logfile ]
+.RB [ -r
+.IR remotesys ]
+target
+.SH DESCRIPTION
+.I Tlssrv
+is a helper program, typically exec'd in a
+.B /bin/service/
+file to establish an SSL or TLS connection before launching
+the target server, for example IMAPS or HTTPS.
+.PP
+.I Keydir
+holds the server certificate and private key.
+.PP
+The specified
+.I logfile
+is by convention the same as for the target server.
+.I Remotesys
+is mainly used for logging. When invoked from
+.B /bin/service/
+it is written
+.B -r'{cat
+.BR $3/remote} .
+.SH FILES
+.TF /sys/lib/ssl
+.SH SOURCE
+.B /sys/src/cmd/tlssrv.c
+.SH "SEE ALSO"
+.IR listen (8)
diff --git a/static/plan9-4e/man8/udpecho.8 b/static/plan9-4e/man8/udpecho.8
new file mode 100644
index 00000000..60117974
--- /dev/null
+++ b/static/plan9-4e/man8/udpecho.8
@@ -0,0 +1,16 @@
+.TH UDPECHO 8
+.SH NAME
+udpecho \- echo UDP packets
+.SH SYNOPSIS
+.PP
+.B ip/udpecho
+[
+.B -x
+.I ext
+]
+.SH DESCRIPTION
+.PP
+Listen on UDP port 7 and echo back any packets
+received.
+This should only be run for testing since it can
+be used to disguise the identity of someone doing a denial of service attack.
diff --git a/static/plan9-4e/man8/update.8 b/static/plan9-4e/man8/update.8
new file mode 100644
index 00000000..2519f213
--- /dev/null
+++ b/static/plan9-4e/man8/update.8
@@ -0,0 +1,127 @@
+.TH UPDATE 8
+.SH NAME
+bootfloppy, bootplan9, bootwin9x, bootwinnt, personalize, setup.9fat, setup.disk,
+setup.kfs, update \- administration for local file systems
+.SH SYNOPSIS
+.B pc/bootfloppy
+.I floppydisk
+.I plan9.ini
+.br
+.B pc/bootplan9
+.I /dev/sdXX
+.br
+.B pc/bootwin9x
+.br
+.B pc/bootwinnt
+.br
+.B pc/personalize
+.br
+.B pc/setup.9fat
+.I /dev/sdXX/9fat
+.I plan9.ini
+.br
+.B pc/setup.disk
+.I /dev/sdXX
+.I plan9.ini
+.br
+.B pc/update
+.PD
+.SH DESCRIPTION
+These programs help maintain a file system on a local disk for a private machine.
+.PP
+.I Setup.disk
+partitions a disk
+and makes a new file system on the disk.
+It then calls
+.IR setup.9fat ,
+.IR update ,
+and
+.I personalize
+to initialize the file system.
+.PP
+.I Setup.9fat
+formats the named
+.I 9fat
+partition,
+installing
+.BR /386/9load ,
+.BR /386/9pcdisk ,
+and the named
+.I plan9.ini
+file.
+.PP
+.I Update
+copies the current kernel to the disk and updates
+files on the local file system by copying them from the main file server
+(named by the environment variable
+.BR $fileserver ).
+The files it updates are specified by the
+.IR mkfs (8)
+prototype file
+.BR /sys/lib/sysconfig/proto/386proto .
+.PP
+.I Personalize
+removes the contents of the
+.B /usr
+directory on the local disk and copies a minimal set of files for
+the user who runs the command.
+.PP
+The boot scripts prepare various ways to bootstrap Plan 9.
+.I Bootfloppy
+creates a boot floppy containing
+.BR 9load ,
+a zeroed 512-byte
+.BR plan9.nvr ,
+and the named file as
+.BR plan9.ini .
+.I Bootplan9
+sets the
+.B 9fat
+partition to be the active partition, the one
+used at boot time.
+.I Bootwin9x
+edits the files
+.BR config.sys ,
+.BR msdos.sys ,
+and
+.B autoexec.bat
+on the drive mounted by
+.B c:
+to provide Plan 9
+as a boot menu option.
+These system files are first backed up
+as
+.BR config.p9 ,
+.BR msdos.p9 ,
+and
+.BR autoexec.p9 .
+.I Bootwinnt
+edits the Windows NT
+boot loader menu contained in
+the first FAT partition's
+.I boot.ini
+to provide Plan 9
+as an option.
+It is first backed up as
+.IR boot.p9 .
+If backup files already exist,
+.I bootwin9x
+and
+.I bootwinnt
+do nothing.
+.SH FILES
+.TF /sys/lib/sysconfig/proto/
+.TP
+.B /sys/lib/sysconfig/proto/
+.IR Mkfs (8)
+prototype files.
+.SH SOURCE
+.B /rc/bin/pc/*
+.SH "SEE ALSO"
+.IR kfs (4),
+.IR 9load (8),
+.IR mkfs (8),
+.IR prep (8),
+.IR sd (3)
+.br
+``Installing the Plan 9 Distribution''.
diff --git a/static/plan9-4e/man8/venti.8 b/static/plan9-4e/man8/venti.8
new file mode 100644
index 00000000..91bc9b99
--- /dev/null
+++ b/static/plan9-4e/man8/venti.8
@@ -0,0 +1,196 @@
+.TH VENTI 8
+.SH NAME
+venti \- an archival block storage server
+.SH SYNOPSIS
+.B venti/venti
+[
+.B -dw
+]
+[
+.B -a
+.I ventiaddress
+]
+[
+.B -B
+.I blockcachesize
+]
+[
+.B -c
+.I config
+]
+[
+.B -C
+.I cachesize
+]
+[
+.B -h
+.I httpaddress
+]
+[
+.B -I
+.I icachesize
+]
+.SH DESCRIPTION
+.I Venti
+is a block storage server intended for archvial data.
+In a Venti server,
+the Sha1 hash of a block's contents acts as the block
+identifier for read and write operations.
+This approach enforces a write-once policy, preventing accidental or
+malicious destruction of data. In addition, duplicate copies of a
+block are coalesced, reducing the consumption of storage and
+simplifying the implementation of clients.
+.PP
+Storage for
+.I venti
+consists of a data log and an index, both of which
+can be spread across multiple files.
+The files containing the data log are themselves divided into self-contained sections called arenas.
+Each arena contains a large number of data blocks and is sized to
+facilitate operations such as copying to removable media.
+The index provides a mapping between the a Sha1 fingerprint and
+the location of the corresponding block in the data log.
+.PP
+The index and data log are typically stored on raw disk partitions.
+To improve the robustness, the data log should be stored on
+a device that provides RAID functionality. The index does
+not require such protection, since if necessary, it can
+can be regenerated from the data log.
+The performance of
+.I venti
+is typically limited to the random access performance
+of the index. This performance can be improved by spreading the
+index accross multiple disks.
+.PP
+The storage for
+.I venti
+is initialized using
+.IR fmtarenas (8),
+.IR fmtisect (8),
+and
+.IR fmtindex (8).
+A configuration file,
+.IR venti.conf (6),
+ties the index sections and data arenas together.
+.PP
+A Venti
+server is accessed via an undocumented network protocol.
+Two client applications are included in this distribution:
+.IR vac (1)
+and
+.IR vacfs (4).
+.I Vac
+copies files from a Plan 9 file system to Venti, creating an
+archive and returning the fingerprint of the root.
+This archive can be mounted in Plan 9 using
+.IR vacfs .
+These two commands enable a rudimentary backup system.
+A future release will include a Plan 9 file system that uses
+Venti as a replacement for the WORM device of
+.IR fs (4).
+.PP
+The
+.I venti
+server provides rudimentary status information via
+a built-in http server. The URL files it serves are:
+.TP
+.B stats
+Various internal statistics.
+.TP
+.B index
+An enumeration of the index sections and all non empty arenas, including various statistics.
+.TP
+.B storage
+A summary of the state of the data log.
+.TP
+.B xindex
+An enumeration of the index sections and all non empty arenas, in XML format.
+.PP
+Several auxiliary utilities aid in maintaining the storage for Venti.
+With the exception of
+.IR rdarena (8),
+these utilities should generally be run after killing the
+.I venti
+server.
+The utilities are:
+.TP
+.IR checkarenas (8)
+Check the integrity, and optionally fix, Venti arenas.
+.TP
+.IR checkindex (8)
+Check the integrity, and optionally fix, a Venti index
+.TP
+.IR buildindex (8)
+Rebuild a Venti index.
+.TP
+.IR rdarena (8)
+Extract a Venti arena and write to standard output.
+.PP
+Options to
+.I venti
+are:
+.TP
+.BI -a " ventiaddress
+The network address on which the server listens for incoming connections.
+The default is
+.LR tcp!*!venti .
+.TP
+.BI -B " blockcachesize
+The size, in bytes, of memory allocated to caching raw disk blocks.
+.TP
+.BI -c " config
+Specifies the
+Venti
+configuration file.
+Defaults to
+.LR venti.conf .
+.TP
+.BI -C " cachesize
+The size, in bytes, of memory allocated to caching
+Venti
+blocks.
+.TP
+.BI -d
+Produce various debugging information on standard error.
+.TP
+.BI -h " httpaddress
+The network address of Venti's built-in
+http
+server.
+The default is
+.LR tcp!*!http .
+.TP
+.BI -I " icachesize
+The size, in bytes, of memory allocated to caching the index mapping fingerprints
+to locations in
+.IR venti 's
+data log.
+.TP
+.B -w
+Enable write buffering. This option increase the performance of writes to
+.I venti
+at the cost of returning success to the client application before the
+data has been written to disk. Use of this option is recommended.
+.PP
+Note, the units for the various cache sizes above can be specified by appending a
+.LR k ,
+.LR m ,
+or
+.LR g
+to indicate kilobytes, megabytes, or gigabytes respectively.
+.SH SOURCE
+.B /sys/src/cmd/venti
+.SH "SEE ALSO"
+.IR venti.conf (6),
+.IR fmtarenas (8),
+.IR fmtisect (8),
+.IR fmtindex (8),
+.IR vac (1),
+.IR vacfs (4).
+.IR checkarenas (8),
+.IR checkindex (8),
+.IR buildindex (8),
+.IR rdarena (8)
+.br
+Sean Quinlan and Sean Dorward,
+``Venti: a new approach to archival storage''.
diff --git a/static/plan9-4e/man8/vga.8 b/static/plan9-4e/man8/vga.8
new file mode 100644
index 00000000..5344f328
--- /dev/null
+++ b/static/plan9-4e/man8/vga.8
@@ -0,0 +1,189 @@
+.TH VGA 8
+.SH NAME
+vga \- configure a VGA card
+.SH SYNOPSIS
+.B aux/vga
+[
+.B -BcdilpvV
+]
+[
+.B -b
+.I bios-string
+]
+[
+.B -m
+.I monitor
+]
+[
+.B -x
+.I file
+]
+[
+.I mode
+[
+.I size
+]
+]
+.SH DESCRIPTION
+.B Aux/vga
+configures a VGA controller for various display sizes and depths.
+Using the monitor type specified in
+.B /env/monitor
+(default
+.BR vga )
+and the
+.I mode
+given as argument
+(default
+.BR 640x480x1 ),
+.B aux/vga
+uses the database of known VGA controllers and monitors in
+.B /lib/vgadb
+(see
+.IR vgadb (6))
+to configure
+the display via the devices provided by
+.IR vga (3).
+The options are:
+.TP
+.BI -b " bios-string"
+use the VGA database entry corresponding to
+.I bios-string
+(e.g.
+\fL0xC0045="Stealth 64 DRAM Vers. 2.02"\fR)
+rather than looking for identifying strings in the BIOS
+memory.
+.TP
+.B -B
+dump the BIOS memory (in hex) to standard output and exit.
+.TP
+.B -c
+disable the use of the hardware graphics cursor.
+(Since there is no software cursor, this disables the cursor entirely.)
+.TP
+.B -d
+include the color palette in whatever actions are performed,
+usually printing the contents.
+.TP
+.B -i
+when used with
+.B -p
+display the register values that will be loaded.
+.TP
+.B -l
+load the desired mode.
+.TP
+.BI -m " monitor"
+override the
+.B /env/monitor
+value.
+.B /env/monitor
+is usually set by including it in the
+.B plan9.ini
+file read by the PC boot program
+.IR 9load (8).
+.TP
+.B -p
+print the current or expected register values at appropriate points depending on
+other options.
+.TP
+.B -v
+print a trace of the functions called.
+.TP
+.B -V
+print a verbose trace of the functions called.
+.TP
+.B -x " file"
+use
+.I file
+as the VGA database rather than
+.BR /lib/vgadb .
+.PP
+.I Mode
+is of the form
+.IB X x Y x Z
+, where
+.IR X ,
+.IR Y ,
+and
+.I Z
+are numbers specifying the display height, width, and depth respectively.
+The mode must appear in
+.B /lib/vgadb
+as a value for one of the monitor entries.
+The usual modes are
+.BR 640x480x[18] ,
+.BR 800x600x[18] ,
+.BR 1024x768x[18][i] ,
+.BR 1280x1024x[18][i] ,
+.BR 1376x1024x8 ,
+and
+.BR 1600x1200x8 .
+A trailing
+.L i
+indicates interlaced operation.
+The default mode is
+.BR 640x480x8 .
+.I Size
+is of the form
+.I X x Y
+and configures the display to have a virtual
+screen of the given size.
+The physical screen will pan to follow the mouse.
+This is useful on displays with small screens,
+such as laptops, but can be confusing.
+.SH EXAMPLES
+Change the display resolution:
+.IP
+.EX
+aux/vga -l 1600x1200x8
+.EE
+.PP
+Print the current VGA controller registers.
+It is usually best to redirect the output of a
+.B -p
+command to a file to prevent confusion caused by using the VGA
+controller while trying to dump its state:
+.IP
+.EX
+aux/vga -p >/tmp/x
+.EE
+.PP
+Force the VGA controller to a known state:
+.IP
+.EX
+aux/vga -m vga -l
+.EE
+.PP
+Print the current VGA controller state and what would be loaded
+into it for a new resolution, but don't do the load:
+.IP
+.EX
+aux/vga -ip 1376x1024x8 >/tmp/x
+.EE
+.PP
+.SH FILES
+.TF /env/monitor
+.TP
+.B /env/monitor
+display type (default
+.IR vga ).
+.TP
+.B /lib/vgadb
+VGA configuration file.
+.SH SOURCE
+.B /sys/src/cmd/aux/vga
+.SH SEE ALSO
+.IR vga (3),
+.IR vgadb (6),
+.IR 9load (8)
+.SH BUGS
+.B Aux/vga
+makes every effort possible to verify that the mode it is about
+to load is valid and will bail out with an error message
+before setting any registers if it encounters a problem.
+However, things can go wrong, especially when playing with a
+new VGA controller or monitor setting.
+It is useful in such cases to have
+the above command for setting the controller to a known state
+at your fingertips.