filesystem

- file system organization

Synopsis

/

/usr

Description

The file system tree is organized for administrative convenience. Distinct 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 platform, files that can be shared by all machines, and home
directories. This organization allows sharable files to be stored on one machine but
accessed by many machines using a remote file access mechanism such as
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(2) 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 and /var must be accessible
to have a functional system. The root file system is mounted automatically by
the kernel at boot time; the /usr file system is mounted by
the system start-up script, which is run as part of the booting
process. /var can be mounted as its own file system or be
part of /usr, as it is by default.

Certain locations, noted below, are approved installation locations for bundled Foundation Solaris
software. In some cases, the approved locations for bundled software are also
approved locations for add-on system software or for applications. The following descriptions
make clear where the two locations differ. For example, /etc is the installation
location for platform-dependent configuration files that are bundled with Solaris software. The
analogous location for applications is /etc/opt/packagename.

In the following descriptions, subsystem is a category of application or system
software, such as a window system (dt) or a language (java1.2)

The following descriptions make use of the terms platform, platform-dependent, platform-independent, and
platform-specific. Platform refers to a machines Instruction Set Architecture or processor type,
such as is returned by uname-i. Platform-dependent refers to a file that
is installed on all platforms and whose contents vary depending on the
platform. Like a platform-dependent file, a platform-independent file is installed on all platforms.
However, the contents of the latter type remains the same on all
platforms. An example of a platform-dependent file is compiled, executable program. An
example of a platform-independent file is a standard configuration file, such as
/etc/hosts. Unlike a platform-dependent or a platform-independent file, the platform-specific file is installed
only on a subset of supported platforms. Most platform-specific files are gathered
under /platform and /usr/platform.

In the following file or directory descriptions, GNOME stands for GNU Network
Object Model Environment. The GNOME Desktop is shipped with the Solaris operating
system.

Root File System

The root file system contains files that are unique to each machine.
It contains the following directories:

/

Root of the overall file system name space.

/dev

Primary location for special files. Typically, device files are built to match the kernel and hardware configuration of the machine.

/dev/cfg

Symbolic links to physical ap_ids.

/dev/cpu

Provides configuration and capability information about the processor type

Platform-dependent administrative and configuration files and databases that are not shared among systems. /etc may be viewed as the directory that defines the machine's identity. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /etc/opt/packagename.

Platform-dependent subsystem configuration files that are not shared among systems. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /etc/opt/packagename.

Subtree of platform-dependent loadable kernel modules required as part of the boot process. It includes the generic part of the core kernel that is platform-independent, /kernel/genunix. See kernel(1M) An approved installation location for bundled Solaris software and for add-on system software.

/kernel/drv

32-bit x86 device drivers.

/kernel/drv/sparcv9

64-bit SPARC device drivers.

/kernel/drv/amd64

64-bit device drivers for 64–bit x86 platforms.

/kernel/dtrace

Kernel modules representing components in the DTrace framework.

/kernel/genunix

Platform-independent kernel.

/kernel/amd64/genunix

64–bit, platform-independent kernel.

/kernel/subsystem/amd64

64-bit x86 platform-dependent modules required for boot. An approved installation location for bundled Solaris software and for add-on system software.

/kernel/subsystem/sparcv9

64-bit SPARC platform-dependent modules required for boot. An approved installation location for bundled Solaris software and for add-on system software.

/lib/svc/manifest

SMF method scripts. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/lib/svc/manifest.

/mnt

Default temporary mount point for file systems. This is an empty directory on which file systems can be temporarily mounted.

/net

Temporary mount point for file systems that are mounted by the automounter.

/opt

Root of a subtree for add-on application packages.

/platform

Subtree of platform-specific objects which need to reside on the root filesystem. It contains a series of directories, one per supported platform. The semantics of the series of directories is equivalent to / (root).

/platform/`uname-i`/kernel

Platform-specific modules required for boot. These modules have semantics equivalent to /kernel. It includes the file unix, the core kernel. See kernel(1M). An approved installation location for bundled Solaris software and for add-on system software.

/platform/`uname-m`/kernel

Hardware class-specific modules required for boot. An approved installation location for bundled Solaris software and for add-on system software.

32-bit platform-dependent kernel on i86 and a symlink to sparcv9/unix on SPARC.

/platform/`uname-i`/lib

Platform-specific shared objects required for boot. Semantics are equivalent to /lib. An approved installation location for bundled Solaris software and for add-on system software.

/platform/`uname-i`/sbin

Platform-specific administrative utilities required for boot. Semantics are equivalent to /sbin. An approved installation location for bundled Solaris software and for add-on system software.

/proc

Root of a subtree for the process file system.

/sbin

Essential executables used in the booting process and in manual system recovery. The full complement of utilities is available only after /usr is mounted. /sbin is an approved installation location for bundled Solaris software.

/system

Mount point for the contract (CTFS) and object (OBJFS) file systems.

/tmp

Temporary files; cleared during the boot operation.

/usr

Mount point for the /usr file system. See description of /usr file system, below.

/var

Root of a subtree for varying files. Varying files are files that are unique to a machine but that can grow to an arbitrary (that is, variable) size. An example is a log file. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /var/opt/packagename.

Temporary files which are not needed across reboots. Only root may modify the contents of this directory.

/var/sadm

Databases maintained by the software package management utilities.

/var/sadm/system/logs

Status log files produced by software management functions and/or applications. For example, log files produced for product installation. An approved installation location for bundled Solaris software and for add-on system software and applications.

SMF service manifests. An approved installation location for bundled, add-on system software and applications.

/var/svc/manifest/site

Site-local SMF service manifests.

/var/tmp

Files that vary in size or presence during normal system operations. This directory is not cleared during the boot operation. An approved installation location for bundled Solaris software and for add-on system software and applications.

Databases needed for backwards compatibility with NIS and ypbind(1M); unnecessary after full transition to NIS+.

/usr File System

Because it is desirable to keep the root file system small and
not volatile, on disk-based systems larger file systems are often mounted on
/home, /opt, /usr, and /var.

The file system mounted on /usr contains platform-dependent and platform-independent sharable files.
The subtree rooted at /usr/share contains platform-independent sharable files; the rest of
the /usr tree contains platform-dependent files. By mounting a common remote file system,
a group of machines with a common platform may share a single
/usr file system. A single /usr/share file system can be shared by
machines of any platform. A machine acting as a file server can
share many different /usr file systems to support several different architectures and
operating system releases. Clients usually mount /usr read-only so that they do
not accidentally change any shared files.

Platform-dependent, user-invoked executables. These are commands users expect to be run as part of their normal $PATH. For executables that are different on a 64–bit system than on a 32–bit system, a wrapper that selects the appropriate executable is placed here. See isaexec(3C). An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/bin.

/usr/bin/amd64

x86 64–bit, platform-dependent, user-invoked executables. This directory should not be part of a user's $PATH. A wrapper in /usr/bin should invoke the executable in this directory. See isaexec(3C). An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/bin/amd64.

/usr/bin/sparcv9

SPARC platform-dependent, user-invoked executables. This directory should not be part of a user's $PATH. A wrapper in /usr/bin should invoke the executable in this directory. See isaexec(3C). An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/bin/sparcv9.

/usr/bin/amd64

x86 platform-dependent, user-invoked executables. This directory should not be part of a user's $PATH. A wrapper in /usr/bin should invoke the executable in this directory. See isaexec(3C). An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/bin/amd64.

/usr/bin/subsystem

Platform-dependent user-invoked executables that are associated with subsystem. These are commands users expect to be run as part of their normal $PATH. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/bin.

/usr/subsystem/bin

Platform-dependent user-invoked executables that are associated with subsystem. These are commands users expect to be run as part of their normal $PATH. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/bin.

/usr/subsystem/bin/amd64

x86 64–bit, platform-dependent, user-invoked executables. This directory should not be part of a user's $PATH. A wrapper in /usr/bin should invoke the executable in this directory. See isaexec(3C). An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/bin/amd64.

/usr/subsystem/bin/sparcv9

SPARC 64–bit, platform-dependent, user-invoked executables. This directory should not be part of a user's $PATH. A wrapper in /usr/bin should invoke the executable in this directory. See isaexec(3C). An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/bin/sparcv9.

/usr/ccs

C compilation system.

/usr/ccs/bin

C compilation commands and system utilities.

/usr/ccs/lib

Symbolic link to /usr/lib.

/usr/demo

Demo programs and data.

/usr/dict

Symbolic link to the /usr/share/lib/dict directory, which contains the dictionary file used by the UNIX spell program.

/usr/dt

root of a subtree for CDE software.

/usr/dt/bin

Primary location for CDE system utilities.

/usr/dt/include

Header files for CDE software.

/usr/dt/lib

Libraries for CDE software.

/usr/dt/share/man

On-line reference manual pages for CDE software.

/usr/games

An empty directory, a remnant of the SunOS 4.0/4.1 software.

/usr/gnome

This is an obsolete directory where 3rd party programs can install their applications and pixmap files. It is supported for backwards compatibility.

/usr/include

Include headers (for C programs).

/usr/j2se

Java 2 SDK executables, loadable modules, and documentation.

/usr/java*

Directories containing Java programs and libraries.

/usr/jdk*

Java Platform virtual machine and core class libraries.

/usr/kernel

Subtree of platform-dependent loadable kernel modules, not needed in the root filesystem. An approved installation location for bundled Solaris software.

Platform-dependent libraries, various databases, commands and daemons not invoked directly by a human user. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/lib.

/usr/lib/32

Symbolic link to /usr/lib.

/usr/lib/64

Symbolic link to the most portable 64-bit Solaris interfaces, on both SPARC and x86 platforms.

Platform-dependent libraries, various databases, commands and daemons not invoked directly by a human user on 64–bit x86. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/lib/amd64.

Scripts and commands for the system activity report package. See sar(1).

/usr/lib/saf

Auxiliary programs and daemons related to the service access facility.

/usr/lib/sasl

Simple Authentication and Security Layer (SASL) plug-in modules.

/usr/lib/secure

Default trusted libraries.

/usr/lib/security

Solaris security plug-in modules.

/usr/lib/smartcard

IFD handler libraries.

/usr/lib/smedia

Removable media device server daemon, rpc.smserverd.

/usr/lib/sparcv9

SPARC 64-bit, platform-dependent libraries, various databases, commands and daemons not invoked directly by a human user. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/lib/sparcv9.

/usr/lib/spell

Auxiliary programs and databases for spell(1). This directory is only present when the Binary Compatibility Package is installed.

/usr/lib/ssh

Contains the Secure Shell daemon (sshd) and supporting programs.

/usr/lib/subsystem

Platform-dependent libraries, various databases, commands and daemons that are associated with subsystem and that are not invoked directly by a human user. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/lib.

/usr/lib/subsystem/amd64

x86 64–bit, platform-dependent libraries, various databases, commands and daemons that are associated with subsystem and that are not invoked directly by a human user. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/lib/amd64.

/usr/lib/subsystem/sparcv9

SPARC 64-bit, platform-dependent libraries, various databases, commands and daemons that are associated with subsystem and that are not invoked directly by a human user. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/lib/sparcv9.

/usr/subsystem/lib

Platform-dependent libraries, various databases, commands and daemons not invoked directly by a human user. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/lib.

/usr/subsystem/lib/amd64

x86 64–bit, platform-dependent libraries, various databases, commands and daemons that are associated with subsystem and that are not invoked directly by a human user. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/lib/amd64.

/usr/subsystem/lib/sparcv9

SPARC 64-bit, platform-dependent libraries, various databases, commands and daemons that are associated with subsystem and that are not invoked directly by a human user. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/lib/sparcv9.

Not part of the SVR4-based Solaris distribution. The /usr directory is exclusively for software bundled with the Solaris operating system. If needed for storing machine-local add-on software, create the directory /opt/local and make /usr/local a symbolic link to /opt/local. The /opt directory or filesystem is for storing add-on software to the system.

/usr/mail

Symbolic link to the /var/mail directory.

/usr/man

Symbolic link to the /usr/share/man directory.

/usr/net/servers

Entry points for foreign name service requests relayed using the network listener. See listen(1M).

/usr/news

Symbolic link to the /var/news directory.

/usr/oasys

Commands and files related to the Form and Menu Language Interpreter (FMLI) execution environment. See face(1).

/usr/old

Programs that are being phased out.

/usr/openwin

Installation or mount point for the OpenWindows software.

/usr/perl5

Perl 5 programs and documentation

/usr/platform

Subtree of platform-specific objects which does not need to reside on the root filesystem. It contains a series of directories, one per supported platform. The semantics of the series of directories is equivalent to /platform, except for subdirectories which do not provide utility under one or the other (for example, /platform/include is not needed).

/usr/platform/`uname-i`/include

Symbolic link to /../`uname-i`/include. Platform-specific system (sys, vm) header files with semantics equivalent to /usr/include. An approved installation location for bundled Solaris software and for add-on system software.

/usr/platform/`uname-i`/lib

Platform-specific shared objects with semantics equivalent to /usr/lib. An approved installation location for bundled Solaris software and for add-on system software.

/usr/platform/`uname-i`/lib/subsystem/amd64

x86 64–bit, platform-specific daemon and shared objects. An approved installation location for bundled Solaris software and for add-on system software.

/usr/platform/`uname-i`/sbin

Platform-specific system administration utilities with semantics equivalent to /usr/sbin. An approved installation location for bundled Solaris software and for add-on system software.

/usr/preserve

Symbolic link to the /var/preserve directory.

/usr/proc

Directory for the proc tools.

/usr/pub

Symbolic link to /share/lib/pub, which contains files for online man page and character processing.

/usr/sadm

System administration files and directories.

/usr/sadm/bin

Binaries for the Form and Menu Language Interpreter (FMLI) scripts. See fmli(1).

/usr/sadm/install

Executables and scripts for package management.

/usr/sbin

Platform-dependent executables for system administration, expected to be run only by system administrators. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/sbin.

/usr/sbin/install.d

Custom Jumpstart scripts and executables.

/usr/sbin/sparc7 and sparc9

32–bit and 64–bit versions of commands.

/usr/sbin/amd64

64–bit x86versions of commands.

/usr/sbin/subsystem

Platform-dependent executables for system administration, expected to be run only by system administrators, and associated with subsystem. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/sbin.

/usr/subsystem/sbin

Platform-dependent executables for system administration, expected to be run only by system administrators, and associated with subsystem. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/sbin.

Platform-independent sharable manual pages. An approved installation location for bundled Solaris software. The analogous location for add-on system software or for applications is /opt/packagename/man.