Home > Articles

  • Print
  • + Share This

Filesystem Organization

Linux is organized in an hierarchical manner. It considers every file, directory, device, and link as a file that is placed on this structure. The most common organization for the directory structure is shown in Figure 3.2.

Figure 3.2 This figure shows a graphical representation of the organization of the Linux filesystem. This is independent of the actual partitions.

Each of the directories on the Linux filesystem conventionally contains certain types of files. Table 3.5 shows some of the more common directories and their contents.

Table 3.5  Linux Directories and Their Contents

Directory

Contents

/

The beginning or root of the directory tree

/bin

Command binaries

/dev

Peripheral device files

/etc

Configuration files for the system

/home

Users' home directories

/lib

Shared libraries

/mnt

Temporary partitions used for mounting

/proc

Virtual filesystem containing information about kernels and processes

/tmp

Application temporary files

/usr

Several subdirectories containing user commands, documentation, and other system information that does not change

/var

Log files and other files that change while the system is running


Inodes

The Linux operating system stores a lot of information about each file, including the following:

  • Pointers to the file's physical location on the disk

  • The file's name

  • The file's owner and group IDs

  • Rules governing access to the file

  • The file's size

  • The date and time the file was last accessed

  • The date and time the file was last modified

  • The date and time the inode was last modified

  • The number of links to the file

A data structure called an inode is used to store the above information pertaining to each file with the exception of the file's name. The file's name is stored in its directory with an associated inode.

Each and every file has an inode associated with it. Even though every file can have more than one name through the use of links, each file has only one inode. (See Chapter 6, "Maintaining the Filesystem," for information on links.) Use ls -l to determine the number of the inode for any file. For example, issuing the command ls -l MyFile returns the following:

4144 MyFile

This means that the information about the file MyFile has an inode number of 4144. If an inode becomes corrupted, the file will no longer be accessible. Another way to see the inode number for a file is to use the stat command. Its syntax is

stat filename

Its output should look similar to the following:

  File: "mywhich" 
  Size: 101          Filetype: Regular File 
  Mode: (0775/-rwxrwxr-x)         Uid: (  503/  hadden)  Gid: (  500/  hadden) 
Device:  3,0   Inode: 147474    Links: 1 
Access: Tue Oct 19 16:16:58 1999(00019.19:52:38) 
Modify: Fri May 28 09:02:41 1999(00164.03:06:55) 
Change: Fri Sep  3 17:20:37 1999(00065.18:48:59) 

The stat command reads the inode structure associated with the specified filename.

Key Concept

Each file has an associated inode that contains the file's physical location and all its attributes except for its filename. Use either the ls -l or stat command to determine a file's inode.

File Types

Linux supports several file types and uses the first character in the permission block to name the file type. Linux does not differentiate between files and directories in the inode table. The operating system knows whether the file is a regular file or a directory by the file type character. The most common file type characters used by Linux are listed in Table 3.6.

Table 3.6  The First Character of the Permission Block Identifies the File Type

Character

Type of File

-

Ordinary file

b

Block device

c

Character device

d

Directory

l

Link


Most files on the Linux system are ordinary files, including text files and applications. Any file a user creates is an ordinary file.

To Linux, directories are just empty files. They are organized in an hierarchical manner to provide holding places for other file types.

Block and character mode devices are composed of the instructions necessary for Linux to communicate with peripherals. These files are usually located in /dev.

Links are identified in the file type character as an l. See Chapter 6 for more information on links.

  • + Share This
  • 🔖 Save To Your Account

Related Resources

There are currently no related titles. Please check back later.