File System is a mechanism used in the O/S environment for storing the data in a systamatical order into a storage device.      

UNIX/LINUX follows hierarchy file system standard (HFS) . In this file system all other directories mounted under the directory called root ( / ) .

                 /       -->  Root (Top of the directory)

                /root  -->  Super User (or) Administrator home directory, it represented by " ~ "(tilde) symbol .                                           

Structure Of  Linux


                    "/"  this directory is called as root directory
                      It is the top of filesystem structure

File System Hierarchy

In Linux, everything is a file or a directory


It is a top level directory and it is a parent directory for  all other directories. It is called a ROOT directory and it is denoted by forward slash " / "

It is the home directory for root user .It provides working environment for root user
All users(except root) ome directories will be here by default

/sbin - root user commands
/bin  - normal user commands
The /boot/ Directory contains static files required to boot the system, for example, the Linux kernel. These files are essential for the system to boot properly.
Eg: vmlinuz - the Linux kernel.
    initrd.img – a temporary file system, used prior to loading the kernel.

/etc/ Directory
The /etc/ directory is reserved for configuration files that are local to the machine. It should contain no binaries; any binaries should be moved to /bin/ or /sbin/.

The /srv/ directory contains site-specific data served by a Red Hat Enterprise Linux system. This directory gives users the location of data files for a particular service, such as FTP, WWW, or CVS. Data that only pertains to a specific user should go in the /home/ directory.

The /sys/ Directory
The /sys/ directory utilizes the new sysfs virtual file system specific to the 2.6 kernel. With the increased support for hot plug hardware devices in the 2.6 kernel, the /sys/ directory contains information similar to that held by /proc/, but displays a hierarchical view of device information specific to hot plug devices.

The /mnt/ Directory
The /mnt/ directory is reserved for temporarily mounted file systems, such as NFS file system mounts. For all removable storage media, use the /media/ directory. Automatically detected removable media will be mounted in the /media directory.

It is the default mount directory for any partition , It is empty by default.

The /opt/ Directory
The /opt/ directory is normally reserved for software and add-on packages that are not part of the default installation. A package that installs to /opt/ creates a directory bearing its name, for example /opt/packagename/. In most cases, such packages follow a predictable subdirectory structure; most store their binaries in /opt/packagename/bin/ and their man pages in /opt/packagename/man/.

It is optional directory for /usr , it contains all third party softwares.
/dev/ Directory
The /dev/ directory contains device nodes that represent the following device types:

   devices attached to the system;
   virtual devices provided by the kernel.

It contains device files// HDD,CDROM,USB Media,
/lib/ Directory
The /lib/ directory should only contain libraries needed to execute the binaries in /bin/ and /sbin/. These shared library images are used to boot the system or execute commands within the root file system. It is similar to dll files in windows.
/media/ Directory
The /media/ directory contains subdirectories used as mount points for all removable media such as USB storage media, DVDs, CD-ROMs, and Zip disks.
/proc/ Directory
The /proc/ directory contains special files that either extract information from the kernel or send information to it. Examples of such information include system memory, CPU information, and hardware configuration.
The /usr/ Directory
The /usr/ directory is for files that can be shared across multiple machines. The /usr/ directory is often on its own partition and is mounted read-only. At a minimum, /usr/ should contain the following subdirectories:

   This directory is used for binaries.
   This directory is used for system-wide configuration files.
   This directory stores games.
   This directory is used for C header files.
   This directory is used for Kerberos-related binaries and files.
   This directory is used for object files and libraries that are not designed to be directly utilized by shell scripts or users.
   This directory contains small helper programs called by other programs.
   This directory stores system administration binaries that do not belong to /sbin/.
   This directory stores files that are not architecture-specific.
   This directory stores source code.
/usr/tmp linked to /var/tmp
   This directory stores temporary files.

The /usr/ directory should also contain a /local/ subdirectory. As per the FHS, this subdirectory is used by the system administrator when installing software locally, and should be safe from being overwritten during system updates. The /usr/local directory has a structure similar to /usr/, and contains the following subdirectories:


Red Hat Enterprise Linux's usage of /usr/local/ differs slightly from the FHS. The FHS states that /usr/local/ should be used to store software that should remain safe from system software upgrades. Since the RPM Package Manager can perform software upgrades safely, it is not necessary to protect files by storing them in /usr/local/.
Instead, Red Hat Enterprise Linux uses /usr/local/ for software local to the machine. For instance, if the /usr/ directory is mounted as a read-only NFS share from a remote host, it is still possible to install a package or program under the /usr/local/ directory.

   Contains binaries, libraries, documentation, and source-code for second level programs.
   /usr/bin contains binary files for user programs. If you can’t find a user binary under /bin, look under /usr/bin. For example: at, awk, cc, less, scp
   /usr/sbin contains binary files for system administrators. If you can’t find a system binary under /sbin, look under /usr/sbin. For example: atd, cron, sshd, useradd, userdel
   /usr/lib contains libraries for /usr/bin and /usr/sbin
   /usr/local contains users programs that you install from source. For example, when you install apache from source, it goes under /usr/local/apache2

The /var/ Directory
Since the FHS requires Linux to mount /usr/ as read-only, any programs that write log files or need spool/ or lock/ directories should write them to the /var/ directory. The FHS states /var/ is for variable data, which includes spool directories and files, logging data, transient and temporary files.
Below are some of the directories found within the /var/ directory:

   /var/mail linked to /var/spool/mail/

System log files, such as messages and lastlog, go in the /var/log/ directory. The /var/lib/rpm/ directory contains RPM system databases. Lock files go in the /var/lock/ directory, usually in directories for the program using the file. The /var/spool/ directory has subdirectories that store data files for some programs. These subdirectories may include:



No comments:

Post a Comment