home *** CD-ROM | disk | FTP | other *** search
/ ftp.muug.mb.ca / 2014.06.ftp.muug.mb.ca.tar / ftp.muug.mb.ca / pub / src / old-linux / info / linux-fs-standard < prev    next >
Internet Message Format  |  1993-03-12  |  8KB

  1. From: abc@banjo.concert.net (Alan B Clegg)
  2. Subject: Linux File System Document Revision 1.0
  3. Date: 9 Mar 92 14:33:45 GMT
  4.  
  5. Before I get a flamefull response, let me tell everyone that this document has
  6. been through several revisions, and is currently at a point that has pleased
  7. most people.  Please note that it is a *GUIDELINE* and is not *REQUIRED*, but
  8. if most people follow the guidelines, we all get along a lot better.
  9.  
  10. If you have comments/questions about this document, and you are not on the
  11. linux-standards mailing list, I would ask that you join the list.  The request
  12. address is:  linux-standards-request@banjo.concert.net.  Please try to keep
  13. debate off the news group, and on the mailing list.
  14.  
  15. For those of you on the linux-standards list, the verticle bars in column one
  16. represent the only changes from draft 2.
  17.  
  18. ==== SNIP HERE ====
  19.  
  20. The following is being submitted by Alan Clegg [abc@concert.net] on behalf
  21. of the Linux-Standards list as the standard for directory file structure
  22. under Linux.
  23.  
  24. Revision 1.0
  25.  
  26. Complete implementation of this file structure is completely voluntary,
  27. and will not be enforced, but will be recommended.  This specification
  28. is released as guidelines for people porting and writing software for
  29. the Linux Operating System to allow easy software installation, upgrade, and
  30. tailoring on already installed systems.
  31.  
  32. Root Directory:
  33.  
  34.         Files:
  35.                 {none defined by spec}
  36.  
  37.         Directories:
  38.                 bin dev etc home lib mnt usr
  39.         
  40.         Rationale:
  41.                 The root directory should not be cluttered with files or
  42.                 directories, and should contain no user programs.
  43.  
  44. /bin Directory:
  45.  
  46.         Files:
  47.                 sh init mount umount dd cat ls fsck {and as needed}
  48.  
  49.         Directories:
  50.                 {none defined by spec}
  51.  
  52.         Rationale:
  53.                 The /bin directory should contain programs that are vital
  54.                 to the restoration of other file systems in the case of 
  55.                 a corrupting crash.  No executable in /bin should require
  56.                 any other file system to be mounted to execute correctly.
  57.  
  58. /dev Directory:
  59.  
  60.         Files:
  61.                 {device files}
  62.  
  63.         Directories:
  64.                 {none define by spec}
  65.  
  66.         Rationale:
  67.                 Standard UNIX device files.  This directory should contain
  68.                 device entries for all devices that are supported in the
  69.                 standard kernel, even if the hardware device does not exist
  70.                 on the system.
  71.  
  72. /etc Directory:
  73.  
  74.         Files:
  75.                 mtab passwd rc ttytab {and as needed}
  76.  
  77.         Directories:
  78.                 {none defined by spec}
  79.  
  80.         Rationale:
  81.                 Standard location of files required during system boot.  Files
  82.                 in this directory are usually system specific.  Most will
  83. |               require human intervention during system upgrade.  /etc will
  84. |               also contain administrative binaries that should not be in
  85. |               the normal users PATH.
  86.  
  87. /home Directory:
  88.         
  89.         Files:
  90.                 NONE
  91.  
  92.         Directories:
  93.                 {one per user excepting root}
  94.  
  95.         Rationale:
  96.                 Standard location of users home directories.  Will most likely
  97.                 be a mounted file system once the system is up.  root's home
  98.                 directory should be /.
  99.  
  100. /lib Directory:
  101.  
  102.         Files:
  103.                 {libraries required for system initialization}
  104.  
  105.         Directories:
  106.                 {none defined by spec}
  107.  
  108.         Rationale:
  109.                 To keep the size of the root partition small (if separate from
  110.                 /usr), the files in this directory should only be ones required
  111.                 by files in the root partition.
  112.  
  113. /mnt Directory:
  114.         
  115.         Files:
  116.                 NONE
  117.  
  118.         Directories:
  119.                 NONE
  120.  
  121.         Rationale:
  122.                 Standard mount point for external (transient) file systems.
  123.                 Must be available for sub-system installation.  Should remain
  124.                 as an empty directory.
  125.  
  126. /tmp Directory:
  127.         
  128.         Files:
  129.                 NONE
  130.         
  131.         Directories:
  132.                 NONE
  133.  
  134.         Rationale:
  135.                 Temporary file space available for general program use.  May
  136.                 become a mounted partition upon system boot.
  137.  
  138. /usr Directory:
  139.  
  140.         Files:
  141.                 {none defined by spec}
  142.  
  143.         Directories:
  144.                 adm bin spool local lib etc man include src tmp
  145.  
  146.         Rationale:
  147.                 /usr is the mount point for the second major (after root)
  148.                 hierarchy of file structure and is discussed in the next
  149.                 section.
  150.  
  151. /usr/adm Directory:
  152.  
  153.         Files:
  154.                 {none defined in spec}
  155.  
  156.         Directories:
  157.                 {none defined in spec}
  158.  
  159.         Rationale:
  160.                 Location of log files and accounting information.
  161.  
  162. /usr/bin Directory:
  163.  
  164.         Files:
  165.                 {all executable files from standard distribution not contined
  166.                  in /bin}
  167.  
  168.         Directories:
  169.                 {none defined in spec}
  170.  
  171.         Rationale:
  172.                 contains 'drop-in' executables that are considered to be
  173.                 standard to the UNIX system.  These files should NOT be
  174.                 Linux specific, but should have the same function as their
  175.                 UNIX equivalents.
  176.  
  177. /usr/etc Directory:
  178.         
  179.         Files:
  180.                 {none defined in spec}
  181.  
  182.         Directories:
  183.                 {none defined in spec}
  184.  
  185.         Rationale:
  186.                 contains configuration files for any files in /usr/bin. helps
  187.                 to keep /etc clean and small.
  188.  
  189. /usr/spool Directory:
  190.  
  191.         Files:
  192.                 {none defined in spec}
  193.  
  194.         Directories:
  195.                 uucp mail
  196.  
  197.         Rationale:
  198.                 containes spool files for mail, printing, uucp transfer, etc.
  199.                 May be a mount point for another volume.
  200.  
  201. /usr/local Directory:
  202.  
  203.         Files:
  204.                 NONE
  205.         
  206.         Directories:
  207.                 bin lib etc man src
  208.  
  209.         Rationale:
  210.                 contains files local to the specific system.  will not be
  211.                 modified by upgrade process. 
  212.  
  213. /usr/lib Directory:
  214.  
  215.         Files:
  216.                 libc.a crt0.s {and as needed}
  217.  
  218.         Directories:
  219.                 {none defined in spec}
  220.  
  221.         Rationale:
  222.                 location for library files required for multi-user system
  223.                 operation.  This is the directory where program libraries
  224. |               should reside.  /usr/lib will also contain binaries required
  225. |               to support programs residing in /usr/bin.
  226.  
  227. /usr/man Directory:
  228.  
  229.         Files:
  230.                 NONE
  231.         
  232.         Directories:
  233.                 man1 man2 man3 man4 man5 man6 man7 man8
  234.  
  235.         Rationale:
  236.                 Contains manual pages for programs that are standard with
  237.                 Linux.
  238.  
  239. /usr/include Directory:
  240.  
  241.         Files:
  242.                 {programmers include files}
  243.  
  244.         Directories:
  245.                 {as needed}
  246.  
  247.         Rationale:
  248.                 Standard place for system include files.
  249.  
  250. /usr/src Directory:
  251.         
  252.         Files:
  253.                 NONE
  254.         
  255.         Directories:
  256.                 bin lib linux usr.bin usr.lib
  257.  
  258.         Rationale:
  259.                 Contains source code for all applications in the release.
  260.                 /usr/src/linux contains directories required for kernel builds.
  261.  
  262. /usr/tmp Directory:
  263.  
  264.         Files:
  265.                 NONE
  266.  
  267.  
  268.         Directories:
  269.                 NONE
  270.  
  271.         Rationale:
  272.                 Used as additional scratch space for programs.  If /tmp is
  273.                 a mounted file system, /usr/tmp may be a symbolic link to
  274.                 /tmp.
  275.  
  276. -- 
  277. abc@concert.net                         Alan Clegg - Network Programmer
  278. KD4JML (just my luck!)                  MCNC -- Center for Communications
  279.  
  280.