After a user's profile has run, the file name space should adhere
to a number of conventions if the system is to behave normally.
This manual page documents those conventions by traversing the
file hierarchy and describing the points of interest.
It also serves as a guide to where things reside in the file system proper.
The traversal is far from exhaustive.
First, here is the appearance of the file server as it appears before
any mounts or bindings.
- /
- The root directory.
- /adm
- The administration directory for the file server.
- /adm/users
- List of users known to the file server; see
users(6).
- /adm/keys
- Authentication keys for users.
- /adm/netkeys
- SecureNet keys for users; see
securenet(8).
- /adm/timezone
- Directory of timezone files; see
ctime(2).
- /adm/timezone/EST.EDT
- Time zone description for Eastern Time. Other such files are in this directory too.
- /adm/timezone/timezone
- Time zone description for the local time zone; a copy of one of the other files in this directory.
- /bin
- /dev
- /env
- /fd
- /net
- /proc
- /srv
- /tmp
- All empty unwritable directories, place holders for mounted services and directories.
- /mnt
- A directory containing mount points for applications.
- /n
- A directory containing mount points for file trees imported from
remote systems.
- /386
- /68000
- /68020
- /alpha
- /arm
- /mips
- /power
- /sparc
- Each CPU architecture supported by Plan 9 has a directory in the root containing
architecture-specific files, to be selected according to
$objtype
or
$cputype
(see
8c(1)
and
init(8)).
Here we list only those for
/386.
- /386/init
- The initialization program used during bootstrapping; see
init(8).
- /386/bin
- Directory containing binaries for the Intel x86 architecture.
- /386/bin/aux
- /386/bin/ip
- etc.
- Subdirectories of
/386/bin
containing auxiliary tools and collecting related programs.
- /386/lib
- Directory of object code libraries as used by
8l
(see
8l(1)).
- /386/include
- Directory of x86-specific C include files.
- /386/9*
- The files in
/386
beginning with a
9
are binaries of the operating system or its bootstrap loader.
- /386/mkfile
- Selected by
mk(1)
when
$objtype
is
386,
this file configures
mk
to compile for the Intel x86 architecture.
- /rc
- Isomorphic to the architecture-dependent directories, this holds executables
and libraries for the shell,
rc(1).
- /rc/bin
- Directory of shell executable files.
- /rc/lib
- Directory of shell libraries.
- /rc/lib/rcmain
- Startup code for
rc(1).
- /lib
- Collections of data, generally not parts of programs.
- /lib/mammals
- /lib/sky
- etc.
- Databases.
- /lib/ndb
- The network database used by the networking software; see
ndb(6)
and
ndb(8).
- /lib/namespace
- The file used by
newns
(see
auth(2))
to establish the default name space; see
namespace(6).
- /lib/font/bit
- Bitmap font files.
- /lib/font/hershey
- Vector font files.
- /lib/rfc
- Directory of Internet `Requests For Comments',
ranging from trivia to specifications.
- /lib/rfc/grabrfc
- Maintains RFC collection; usually run from
cron
(see
auth(8)).
- /sys
- System software.
- /sys/include
- Directory of machine-independent C include files.
- /sys/lib
- Pieces of programs not easily held in the various
bins.
- /sys/lib/acid
- Directory of
acid(1)
load modules.
- /sys/lib/dist
- Software used to assemble the distribution's installation floppy.
- /sys/lib/troff
- Directory of
troff(1)
font tables and macros.
- /sys/lib/yaccpar
- The
yacc(1)
parser.
- /sys/man
- The manual.
- /sys/doc
- Other system documentation.
- /sys/log
- Log files created by various system services.
- /sys/src
- Top-level directory of system sources.
- /sys/src/cmd
- Source to the commands in the
bin
directories.
- /sys/src/9
- Source to the operating system for terminals and CPU servers.
- /sys/src/fs
- Source to the operating system for file servers.
- /sys/src/lib*
- Source to the libraries.
- /usr
- A directory containing home directories of users.
- /mail
- Directory of electronic mail; see
mail(1).
- /mail/box
- Directory of users' mail box files.
- /mail/lib
- Directory of alias files, etc.
- /acme
- Directory of tools for
acme(1).
- /cron
- Directory of files for
cron(8).
- /cfg/system
- System-specific
files, often addenda to their namesakes,
notably
cpurc,
termrc,
namespace,
and
consoledb.
The following files and directories are modified in the standard
name space, as defined by
/lib/namespace
(see
namespace(6)).
- /
- The root of the name space. It is a kernel device,
root(3),
serving a number of local mount points such as
/bin
and
/dev
as well as the bootstrap program
/boot.
Unioned with
/
is the root of the main file server.
- /boot
- Compiled into the operating system kernel, this file establishes
the connection to the main file server and starts
init;
see
boot(8)
and
init(8).
- /bin
- Mounted here is a union directory composed of
/$objtype/bin,
/rc/bin,
$home/$objtype/bin,
etc., so
/bin
is always the directory containing the appropriate executables
for the current architecture.
- /dev
- Mounted here is a union directory containing I/O devices such as the
console
(cons(3)),
the interface to the raster display
(draw(3)),
etc.
The window system,
rio(1),
prefixes
this directory with its own version,
overriding many device
files with its own, multiplexed simulations of them.
- /env
- Mounted here is the environment device,
env(3),
which holds environment variables such as
$cputype.
- /net
- Mounted here is a union directory formed of all the network devices
available.
- /net/cs
- The communications point for the connection server,
ndb/cs
(see
ndb(8)).
- /net/dns
- The communications point for the Domain Name Server,
ndb/dns
(see
ndb(8)).
- /net/tcp
- /net/udp
- Directories holding the IP protocol devices
(see
ip(3)).
- /proc
- Mounted here is the process device,
proc(3),
which provides debugging access to active processes.
- /fd
- Mounted here is the dup device,
dup(3),
which holds pseudonyms for open file descriptors.
- /srv
- Mounted here is the service registry,
srv(3),
which holds connections to file servers.
- /srv/boot
- The communication channel to the main file server for the machine.
- /mnt/factotum
- Mount point for
factotum(4).
- /mnt/wsys
- Mount point for the window system.
- /mnt/term
- Mount point for the terminal's name space as seen by the CPU server
after a
cpu(1)
command.
- /n/kremvax
- A place where machine
kremvax's
name space may be mounted.
- /tmp
- Mounted here is each user's private
tmp,
$home/tmp.