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
/dev/cua
Device files for uucp.
/dev/dsk
Block disk devices.
/dev/dtrace
Pseudo-devices used by the DTrace framework.
/dev/dtrace/provider
Pseudo-device drivers representing instrumentation providers for the DTrace framework.
/dev/fbs
Frame buffer device files.
/dev/fd
File descriptors.
/dev/md
Logical volume management meta-disk devices.
/dev/net
Network data-link interface devices.
/dev/printers
USB printer device files.
/dev/pts
Pseudo-terminal devices.
/dev/rdsk
Raw disk devices.
/dev/rmt
Raw tape devices.
/dev/sad
Entry points for the STREAMS Administrative driver.
/dev/sound
Audio device and audio device control files.
/dev/swap
Default swap device.
/dev/term
Terminal devices.
/devices
Physical device files.
/etc
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.
/etc/X11
Xorg Xserver (X11) configuration files.
/etc/acct
Accounting system configuration information.
/etc/apache
Apache configuration files.
/etc/apoc
Files for configuring Sun Java Desktop System Configuration Manager remote access.
/etc/bonobo-activation
GNOME XML configuration file for identifying CORBA servers.
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.
/platform/`uname-i`/kernel/subsystem/amd64
x86 64-bit, platform-dependent modules required for boot. This is an approved installation location for bundled Solaris software.
/platform/`uname-i`/kernel/subsystem/sparcv9
SPARC 64-bit platform-specific modules required for boot. An approved installation location for bundled Solaris software.
/platform/`uname-i`/kernel/sparcv9/unix
64-bit platform-dependent kernel.
/platform/`uname-i`/kernel/unix
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.
/var/adm
System logging and accounting files.
/var/apache
Scripts, icons, logs, and cache pages for Apache web server.
/var/appserver
Sun Java System Application Server administrative domain files.
Fault manager state files. For more information, see fmd(1M).
/var/imq
Message queue broker instance configuration file.
/var/ftp
FTP server directory.
/var/inet
IPv6 router state files.
/var/krb5
Database and log files for Kerberos.
/var/ld
Configuration files for runtime linker.
/var/ldap
LDAP client configuration files.
/var/lib
Login configuration files for GNOME Desktop Manager.
/var/log
System log files.
/var/lp
Line printer subsystem logging information.
/var/mail
Directory where users' mail is kept.
/var/mysql
Dynamic database directory for MySQL Database Management System.
/var/news
Community service messages. This is not the same as USENET-style news.
/var/nfs
NFS server log files.
/var/nis
NIS+ databases.
/var/ntp
Network Time Protocol (NTP) server state directory.
/var/opt
Root of a subtree for varying files associated with optional software packages. An approved installation location for add-on system software and applications.
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.
/var/saf
Service access facility logging and accounting files.
/var/samba
Log and lock files for Samba.
/var/sma_snmp
Systems Management Agent (SMA) security and MIB component information.
/var/snmp
SNMP status and configuration information.
/var/spool
Contains directories for files used in printer spooling, mail delivery, cron(1M), at(1), and so forth.
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.
The /usr file system contains the following subdirectories:
/usr/4lib
a.out libraries for the Binary Compatibility Package.
/usr/5bin
Symbolic link to the /usr/bin directory.
/usr/SUNWale
Configuration files for Asian Lanuguage Environment (ALE).
/usr/X
Symbolic link to the /usr/openwin directory.
/usr/X11
Xorg Xserver (X11) executables and documentation.
/usr/adm
Symbolic link to the /var/adm directory.
/usr/apache
Apache executables, loadable modules, and documentation.
/usr/appserver
Sun Java System Application Server software.
/usr/benchmarks
Directory for benchmarks.
/usr/bin
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
GNOME Desktop applications.
/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.
/usr/kvm
A mount point, retained for backward compatibility, that formerly contained platform-specific binaries and libraries.
/usr/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/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.
/usr/lib/autofs
Contains the automountd executable.
/usr/lib/cfgadm
Contains cfgadm hardware-specific driver plugins.
/usr/lib/class
Scheduling-class-specific directories containing executables for priocntl(1) and dispadmin(1M).
/usr/lib/crypto
Contains the kernel-level cryptographic framework daemon (kcfd).
/usr/lib/devfsadm
Contains devfsadm, the daemon version of devfsadm.
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.
/usr/lib/sysevent
Contains the system event notification daemon (syseventd) and the syseventd loadable module (SLM) repository.
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/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.
/usr/sfw
GNU and open source executables, libraries, and documentation.
/usr/share
Platform-independent sharable files. An approved installation location for bundled Solaris software.
/usr/share/aclocal
Open source m4 files.
/usr/share/applications
Open source desktop applications files.
/usr/share/audio
Sample audio files.
/usr/share/glib-2.0
Makefile for glib.
/usr/share/gnome
GNOME Desktop application registry files.
/usr/share/gtk-2.0
GNOME 2.0 Desktop demo files.
/usr/share/gtk-doc
GNOME 2.0 Desktop help files.
/usr/share/icons
Sun Java Desktop icons.
/usr/share/idl
Open source Interface Definition Language (IDL) files.
/usr/share/intltool
XML translation tools.
/usr/share/ipfilter
Open source IP Filter sample files.
/usr/share/javadoc
Help files for Message Queue broker and Smart Card applications.
/usr/share/lib
Platform-independent sharable databases. An approved installation location for bundled Solaris software.
Macro packages and related files for text processing tools, for example, nroff(1) and troff(1).
/usr/share/lib/zoneinfo
Time zone information.
/usr/share/man
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.
/usr/share/omf
GNOME Scrollkeeper database files.
/usr/share/pixmaps
Sun Java graphics.
/usr/share/scrollkeeper
GNOME Scrollkeeper templates and xslt files.
/usr/share/sgml
Open source SGML files.
/usr/share/sounds
Sound files.
/usr/share/src
Source code for kernel, utilities, and libraries.
/usr/share/themes
GNOME 2.0 Desktop themes.
/usr/share/webconsole
Sun Web Console status files.
/usr/share/xml
GNOME Scrollkeeper DTD files.
/usr/snadm
Files related to system and network administration.
/usr/spool
Symbolic link to the /var/spool directory.
/usr/src
Symbolic link to the /usr/share/src directory.
/usr/tmp
Symbolic link to the /var/tmp directory.
/usr/ucb
Berkeley compatibility package binaries.
/usr/ucbinclude
Berkeley compatibility package headers.
/usr/ucblib
Berkeley compatibility package libraries.
/usr/xpg4
Directory for POSIX-compliant utilities.
/usr/xpg6
Directory for newer versions of POSIX-compliant utilities.