Directory Structure
- dev/
- System devices, namely the devfs.
- /home/
- User home directories only. No applications will have any directories here
as ftp and http have in the past.
- /mnt/
- Mount points for floppy, zip disks, nfs shares, etc.
- /sys/
-
- apps/
- One directory per application.
- <appname>/bin
<appname>/conf
<appname>/lib
<appname>/log
<appname>/man
<appname>/whatever else the app wants
- bin/
- Symlinks to binaries found in /sys/apps/<appname>/bin/*.
- conf/
- System configuration files.
- network/eth0.conf
network/eth1.conf
printer/lp0.conf
printer/lp1.conf
sound/mixer.conf
sound/midi.conf
sound/dsp.conf
etc.
-
- kern/
- System kernels.
- modules/
- Kernel modules.
- lib/
- Symlinks to libraries found in /sys/apps/<appname>/lib/*. Also, system libraries that don't pertain to any particular application.
- log/
- System logs. Not logs pertaining to individual apps (they go in /sys/apps/<appname>/log/).
- man/
- Symlinks to man pages found in /sys/apps/<appname>/man/*. Also, system man pages that don't pertain to any particular application, such as those for the system libraries.
- proc/
- The proc filesystem.
- shm/
- Mount point for shm filesystem.
- root/
- Here is root's home dir. Placed here since it must exist even if /home isn't mounted.
- /tmp/
- Temporary files.
- /usr/
-
- apps/
- One directory per application--same format as for /sys/apps/.
- bin/
- Symlinks to binaries found in /usr/apps/<appname>/bin/*.
- lib/
- Symlinks to libraries found in /usr/apps/<appname>/lib/*.
- man/
- Symlinks to man pages found in /usr/apps/<appname>/man/*.
Rationale
Stricter 'domains' of control
This layout allows a more natural mapping to control domains:
- /home/
- The only place where an end user actually modifies files (except tmp and mnt).
- /mnt/
- Controlled by the system (well, system apps, but user initiated or automounted).
(ie, no user will ever have to know what it means to 'mount' something)
- /sys/
- Files here are owned and controlled by the distribution itself--not applications.
- /tmp/
- Files here are pretty much domain-less since this is scratch space.
- /usr/
- Controlled by applications. This is their only system-wide playground. Apps
of course can have user-specific data stored in the user's home dirs.
Simpler Resultant Environment
This directory layout results in a much simpler environment:
PATH=/sys/bin:/usr/bin
MANPATH=/sys/man:/usr/man