Skip to content

Instantly share code, notes, and snippets.

@alanc
Created September 18, 2023 22:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alanc/c2c1dc37f73015e85f45a18374623e60 to your computer and use it in GitHub Desktop.
Save alanc/c2c1dc37f73015e85f45a18374623e60 to your computer and use it in GitHub Desktop.
SunOS 4.0 filesystem(7) man page
Miscellaneous Information Manual FILESYSTEM(7)
NAME
filesystem - file system organization
SYNOPSIS
/
/usr
DESCRIPTION
The SunOS file system tree is organized for easy administration. Dis‐
tinct areas within the file system tree are provided for files that are
private to one machine, files that can be shared by multiple machines
of a common architecture, files that can be shared by all machines, and
home directories. This organization allows the sharable files to be
stored on one machine, while being accessed by many machines using a
remote file access mechanism such as Sun's Network File System (NFS).
Grouping together similar files makes the file system tree easier to
upgrade and manage.
The file system tree consists of a root file system and a collection of
mountable file systems. The mount(8) program attaches mountable file
systems to the file system tree at mount points (directory entries) in
the root file system, or other previously mounted file systems. Two
file systems, / (the root) and /usr, must be mounted in order to have a
fully functional system. The root file system is mounted automatically
by the kernel at boot time; the /usr file system is mounted by the
/etc/rc.boot script, which is run as part of the booting process.
The root file system contains files that are unique to each machine; it
can not be shared among machines. The root file system contains the
following directories:
/dev Character and block special files. Device files provide
hooks into hardware devices or operating system facilities.
The MAKEDEV(8) command builds device files in the /dev
directory. Typically, device files are built to match the
kernel and hardware configuration of the machine.
/etc Various configuration files and system administration data‐
bases that are machine specific. You can think of /etc as
the “home directory” of a machine, defining its “iden‐
tity.” Executable programs are no longer kept in /etc.
/home Mount points for home directories. This directory may be
arranged so that shared user files are placed under the
directory /home/machine-name on machines serving as file
servers. Machines may then be locally configured with mount
points under /home for all of the file servers of interest,
with the name of the mount point being the name of the file
server.
/mnt A generic mount point. This is an empty directory available
for temporarily mounting file systems on.
/sbin Executable programs that are needed in the boot process
before /usr is mounted. /sbin contains only those programs
that are needed in order to mount the /usr file system:
hostname(1), ifconfig(8C), init(8), mount(8), and sh(1).
After /usr is mounted, the full complement of utilities are
available.
/tmp Temporary files that are deleted at reboot time.
/var Files, such as log files, that are unique to a machine but
that can grow to an arbitrary (“variable”) size.
/var/adm System logging and accounting files.
/var/preserve
Backup files for vi(1) and ex(1).
/var/spool
Subdirectories for files used in printer spooling, mail
delivery, cron(8), at(1), etc.
/var/tmp Transitory files that are not deleted at reboot time.
Because it is desirable to keep the root file system small, larger file
systems are often mounted on /var and /tmp.
The file system mounted on /usr contains architecture-dependent and
architecture-independent shareable files. The subtree rooted at
/usr/share contains architecture-independent shareable files; the rest
of the /usr tree contains architecture-dependent files. By mounting a
common remote file system, a group of machines with a common architec‐
ture may share a single /usr file system. A single /usr/share file
system can be shared by machines of any architecture. A machine acting
as a file server may export many different /usr file systems to support
several different architectures and operating system releases. Clients
usually mount /usr read-only to prevent their accidentally modifying
any shared files. The /usr file system contains the following subdi‐
rectories:
/usr/5bin System V executables.
/usr/5include System V include files.
/usr/5lib System V library files.
/usr/bin Executable programs. The bulk of the system
utilities are located here.
/usr/dict Dictionary databases.
/usr/etc Executable system administration programs.
/usr/games Executable game programs and data.
/usr/include Include files.
/usr/lib Program libraries and various architecture-
dependent databases.
/usr/pub Various data files.
/usr/ucb Executable programs descended from the Berke‐
ley Software Distribution.
/usr/share Subtree for architecture-independent shareable
files.
/usr/share/man Subdirectories for the on-line reference man‐
ual pages.
/usr/share/lib Architecture-independent databases.
A machine with disks may export root file systems, swap files and /usr
file systems to diskless or partially-disked machines, which mount
these into the standard file system hierarchy. The standard directory
tree for exporting these file systems is:
/export The root of the exported file system tree.
/export/exec/architecture-name
The exported /usr file system supporting
architecture-name for the current release.
/export/exec/architecture-name.release-name
The exported /usr file system supporting
architecture-name for SunOS release-name.
/export/share The exported common /usr/share directory tree.
/export/root/hostname The exported root file system for hostname.
/export/swap/hostname The exported swap file for hostname.
/export/var/hostname The exported /var directory tree for hostname.
/export/dump/hostname The exported dump file for hostname.
/export/crash/hostname The exported crash dump directory for host‐
name.
Changes from Previous Releases
The file system layout described here is quite a bit different from the
layout employed previous to release 4.0 of SunOS. For compatibility
with earlier releases of SunOS, and other versions of the UNIX system,
symbolic links are provided for various files and directories linking
their previous names to their current locations. The symbolic links
provided include:
/bin —> /usr/bin All programs previously located in /bin are
now in /usr/bin.
/lib —> /usr/lib All files previously located in /lib are now
in /usr/lib.
/usr/adm —> /var/adm The entire /usr/adm directory has been moved
to /var/adm.
/usr/spool —> /var/spool
The entire /usr/spool directory has been moved
to /var/spool.
/usr/tmp —> /var/tmp The /usr/tmp directory has been moved to
/var/tmp.
/etc/termcap —> /usr/share/lib/termcap
/usr/5lib/terminfo —> /usr/share/lib/terminfo
/usr/lib/me —> /usr/share/lib/me
/usr/lib/ms —> /usr/share/lib/ms
/usr/lib/tmac —> /usr/share/lib/tmac
/usr/man —> /usr/share/man
The following program binaries have been moved from /etc to /usr/etc
with symbolic links to them left in /etc: arp, clri, cron, chown,
chroot, config, dkinfo, dmesg, dump, fastboot, fasthalt, fsck, halt,
ifconfig, link, mkfs, mknod, mount, ncheck, newfs, pstat, rdump,
reboot, renice, restore, rmt, rrestore, shutdown, umount, update,
unlink, and vipw.
In addition, some files and directories have been moved with no sym‐
bolic link left behind in the old location:
Old Name New Name
/etc/biod /usr/etc/biod
/etc/fsirand /usr/etc/fsirand
/etc/getty /usr/etc/getty
/etc/in.rlogind /usr/etc/in.rlogind
/etc/in.routed /usr/etc/in.routed
/etc/in.rshd /usr/etc/in.rshd
/etc/inetd /usr/etc/inetd
/etc/init /usr/etc/init
/etc/nfsd /usr/etc/nfsd
/etc/portmap /usr/etc/portmap
/etc/rpc.lockd /usr/etc/rpc.lockd
/etc/rpc.statd /usr/etc/rpc.statd
/etc/ypbind /usr/etc/ypbind
/usr/lib/sendmail.cf
/etc/sendmail.cf
/usr/preserve /var/preserve
/usr/lib/aliases /etc/aliases
/stand /usr/stand
/etc/yp /var/yp
Note: with this new file system organization, the approach to repairing
a broken file system changes. One must mount /usr before doing an
fsck(8), for example. If the mount point for /usr has been destroyed,
/usr can be mounted temporarily on /mnt or /tmp. If the root file
system on a standalone system is so badly damaged that none of these
mount points exist, or if /sbin/mount has been corrupted, the only way
to repair it may be to re-install the root file system.
SEE ALSO
at(1), ex(1), hostname(1), sh(1), vi(1), intro(4), nfs(4P), hier(7),
ifconfig(8C), init(8), MAKEDEV(8), mount(8), fsck(8), rc(8)
10 January 1988 FILESYSTEM(7)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment