\section{FHS Linux Standard Directory Tree}

\begin{frame}
   {The Filesystem Hierarchy Standard}

   \begin{itemize}
      \item
      Standard layout of types and locations of files.
      \begin{itemize}
         \item
         Makes prediction of file locations possible
      \end{itemize}
      \item
      Grown out of the historical standards from BSD and
      others.
      \item
      Administered under the \textbf{Linux Foundation}:
      \url{https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf}.
   \end{itemize}


\end{frame}

\cprotect\note{

   The \textbf{Filesystem Hierarchy Standard} (\textbf{FHS}),
   administered originally by the \textbf{Free Standards
      Group}, and now by the \textbf{Linux Foundation}, specifies
   the main directories that need to be present and describes
   their purposes. It can be downloaded from
   \url{https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf}.

   By specifying a standard layout the \textbf{FSH}
   simplifies predictions of file locations.  While most
   \textbf{Linux} distributions respect the \textbf{FHS},
   probably none of them follow it exactly, and the last
   official version is old enough that it does not take into
   account some new developments.

   Distributions like to experiment and eventually some of
   the experiments become generally accepted.

}


\begin{frame}
   {FHS Linux Standard Directory Tree}

   \begin{table}[H]
      \caption{Main Directories Part I}
      \vspace{-15pt}
   \end{table}

   \normalsize{\begin{tcolorbox}[unbreakable,tabularx={X|p{0.875\textwidth}}]

         \textbf{Directory} &

         \textbf{Purpose}                             \\ \hline\hline

         \filelink{/}       &

         Primary directory of the entire file system hierarchy.
         \\ \hline

         \filelink{/bin}    &

         Essential executable programs that must be available in
         \textbf{single user mode}.                   \\ \hline

         \filelink{/boot}   &

         Files needed to boot the system, such as the kernel,
         \textbf{initrd} or \textbf{initramfs} images, and boot
         configuration files and bootloader programs. \\ \hline

         \filelink{/dev}    &

         \textbf{Device Nodes}, used to interact with hardware
         and software devices.                        \\ \hline

         \filelink{/etc}    &

         System wide configuration files.             \\ \hline

         \filelink{/home}   &

         User \textbf{home directories} including personal
         settings, files, etc.                        \\ \hline

         \filelink{/lib}    &

         Libraries required by executable binaries in \filelink{/bin}
         and \filelink{/sbin}.                        \\ \hline

         \filelink{/lib64}  &


         64-bit Libraries required by executable binaries in
         \filelink{/bin} and \filelink{/sbin}, for systems which can run
         both 32-bit and 64-bit programs.             \\ \hline

         \filelink{/media}  &

         Mount points for removable media such as \textbf{CD}s, \textbf{DVD}s,
         \textbf{USB} sticks etc.                     \\ \hline

         \filelink{/mnt}    &

         Temporarily mounted filesystems.             \\ \hline
      \end{tcolorbox}}

\end{frame}

\cprotect\note{

   There may be additional distribution-specific directories
   found under the root directory. These might include
   \filelink{/misc} which can be used for miscellaneous data,
   and \filelink{/tftpboot}, which is used for booting using
   \textbf{tftp}.  If there are files in the directory, they
   are related to diskless workstation booting.  Note it does
   not violate the \textbf{FHS} to have other directories;
   however, it does violate it to have components in
   directories other than those dictated by the standard.


}


\begin{frame}
   {FHS Linux Standard Directory Tree, Continued}

   \begin{table}[H]
      \caption{Main Directories Part II}
      \vspace{-15pt}
   \end{table}

   \normalsize{\begin{tcolorbox}[unbreakable,tabularx={X|p{0.875\textwidth}}]

         \textbf{Directory} &

         \textbf{Purpose}                              \\ \hline\hline

         \filelink{/opt}    &

         Optional application software packages.       \\ \hline

         \filelink{/proc}   &

         Virtual pseudo-filesystem giving information about the
         system and processes running on it. Can be used to alter
         system parameters.                            \\ \hline

         \filelink{/run}    &

         Run-time variable data, containing information describing
         the system since it was booted.  Replaces the older
         \filelink{/var/run} \\ \hline

         \filelink{/sys}    &

         Virtual pseudo-filesystem giving information about the
         system and processes running on it. Can be used to alter
         system parameters. Similar to a \textbf{device tree} and
         is part of the \textbf{Unified Device Model}. \\ \hline

         \filelink{/root}   &

         Home directory for the \textbf{root} user.    \\ \hline

         \filelink{/sbin}   &

         Essential system binaries.                    \\ \hline

         \filelink{/srv}    &

         Site-specific data served up by the system. Seldom used.
         \\ \hline

         \filelink{/tmp}    &

         Temporary files; on many distributions lost across a
         reboot and may be a ramdisk in memory.        \\ \hline

         \filelink{/usr}    &

         Multi-user applications, utilities and data;
         theoretically read-only.                      \\ \hline

         \filelink{/var}    &

         Variable data that changes during system operation.
      \end{tcolorbox}}

\end{frame}

\cprotect\note{

   These are additional directories off the main
   \textbf{root} (/) directory.



}

