Join Chaim Krause for an in-depth discussion in this video Filesystem hierarchy standard, part of SUSE Linux Enterprise Server Essential Training.
- One of the things that's very important to know as a system administrator for the Linux operating system is the Filesystem Hierarchy Standard. It is a standard that's part of the Linux Standard Base which is a bunch of standards put forth by the Linux Foundation. The Linux Foundation is an organization of Linux operating system vendors who have gotten together and decided to create some standards so that applications that run on top of the Linux operating system don't have to have different versions for every Linux distribution.
It's similar to what you see with the POSIX standards created by the IEEE Computer Society, the IEEE being the Institute of Elelectrical and Electronics Engineers. So what we have here is a standard similar to other standards, and as things progress, different organizations are created to be more specific to the topic at hand. Let's take a look at what this hierarchy standard looks like. You can find the standard on the Wiki for the Linux Foundation.
From there, you can reference to their reference specification site, and then drill down into the file standard itself. So let's take a look at the actual Filesystem Hierarchy Standard. Currently, it's at version three and its purpose can be seen here. Basically, what they're trying to do is make things similar so that applications can run on top of the File Hierarchy Standard, and there doesn't have to be a different version of each program for each distribution of Linux.
The Linux vendors want to differentiate themselves by the products that they offer, yet still keep the core of the Linux operating system standardized. This document is something you're going to need to read several times, and I'm not talking back-to-back, I'm talking over a period of time as you progress in your path of learning more and more about the Linux operating system. This applies to any flavor of Linux that you choose to work with so it will be helpful no matter where you go work or with what operating system you work with.
The basic concepts are the same. I'm obviously not going to go through this in great detail, but I'm going to point out a couple of things to show you examples. For example, let's take a look at the outline of what is involved here. We started off with the root file system. The root file system is where you're going to have the things that are specific to that distribution of Linux. Your device files are going to be in Dev, you're going to have your boot loader, you're going to have your configuration files, that's one portion of the standard.
Another part of the standard is the user hiearchy. This is where you keep things specific to the users of that system. So you're going to have binaries that are run by other programs, you're going to have essential standard binaries, you're going to have a directory for standard include files, things that are going to be used when a particular user is operating upon the system. Next is the Var Hierarchy. "Var" is short for variable.
So these are the things that vary over the course of using the system; so logs, caches, lock files, things of that nature are going to be stored in the Var Hierarchy. Let's briefly look further detail at the Root Filesystem. You can see that there are things like the Bin directory, and for each directory, you'll have a purpose. You're going to have requirements and short descriptions.
While they might not be readily apparent by looking at the textual description of the standard, it becomes easier to grasp when it is viewed in graphic. By viewing the graphic, it becomes clearer that the file system is being divided into modules with each module containing the files necessary for a specific type of operation. Soon you'll come to recognize the Home directory, the Var directory, and good old Etc as you would an old friend.
- What is SUSE Linux Enterprise?
- Installing SLES
- Linux file types
- Working at the command line
- Managing processes
- Working with background processes
- Managing users and groups
- Changing file permissions
- Configuring network interfaces
- Displaying hardware information
- Managing drivers