The File System in Linux

What is a file system?

A file system defines the data stored in a computer system. It is used to control the way the data is stored and retrieved. Without the file system, the data cannot be stored effectively and in an arranged manner. The file system is responsible to distinguish various files in the whole data stored on a computer. The starting and ending of different files are recognized with the help of file systems. This is achieved by isolating the information into different parts and identifying these parts by giving them different names. This group of information is called the file. In short, we can define the file system as the structure and logic rules that the groups of information and their names is called.

There are many kinds of file systems. Each file system has its own specifics. They can vary in structure, logic, speed,  and performance. There are file systems that are designed for some specific applications. For example, the file system, ISO 9660 is designed only for optical discs. There are many types of storage media using present hard disk drive, flash memory, magnetic tapes and optical tapes. These devices are different in nature and they have specific features. These devices utilize the various file systems available. In some specific conditions, such as in the case of tmpfs (Temporary File Storage), the computer creates a temporary file system for short term usage.

Another difference is the network. Some file systems are used on local devices and some provide file access via the network. NFS, SMB, or 9P clients are an example of this type of file systems. They provide file access over a network.


Virtual File System (VFS)

Some file systems are called Virtual File System (VFS). The VFS is an abstraction layer over a more concrete file system. It means the supplied files are computed on request or they will be the mapping into a different file systems. These files are called, Virtual Files. The ‘procfs’ is an example of VFS. As we have seen that the VFS is abstraction, it allows the client applications to access different types of concrete file systems in a uniform way. This is the purpose of the Virtual File System.

The various operating systems that exist utilize different file systems. In this article, we are going to discuss the file system in Linux.


File System in Linux

In Linux, there are files and processes. If something is not a file, it will be a process. Being aware of the Linux file system is critical. Here, a directory is also a file which contains the names of it’s contents. In addition, there are special files. The types of files that exist in Linux are listed below.

1) Regular files

2) Directories

3) Special files

4) Links

5) (Domain) Sockets

6) Named pipes


Regular files

The regular files are normal files. They can be text files or executable files or programs. These are under the regular file category.


The directory is also a file type. This is known as ‘folder’ in Windows. Directories is a file type which contains the list of other files inside it.

Special files

These files are used for the input and the output operations. Most of the special files come under the ‘/dev’ directory.


The link also is a file type. This is a system to make a file or directory visible in other parts of the file tree, despite where it is at the present. There are two types of links that exist which are known as Hard Links and Soft Links.

(Domain) Sockets

The sockets are a special file type. These are similar to the TCP/IP sockets. They provide inter-process networking and it is protected by the file system’s access control.

Named pipes

The Named pipes act like sockets and form a way for processes to communicate with each other without using the network semantics.

These are the various types of Linux based systems. Now let’s see file types in a long list. When we long list a file, the first field indicates the file type. Let us see the indications and the file types below:

Command to long list: ls -l

Symbol                    Meaning

–                                   Regular File

d                                  Directory

l                                   Link

c                                  Special File

s                                   Socket

p                                  Named Pipe

b                                  Block device


The Linux file system layout

Commonly used File systems in Linux


The ‘Fat16’ is a file system that is supported in the Linux. Its features are follows.



Maximum File Size: 2 GiB

Maximum Partition Size: 2 GiB

Journaling: No


Fat32 Features

Maximum File Size: 4 GiB

Maximum Partition Size: 8 TiB

Journaling: No


NTFS Features

Maximum File Size: 2 TiB

Maximum Partition Size: 256 TiB

Journaling: Yes


ext2 Features

Maximum File Size: 2 TiB

Maximum Partition Size: 32 TiB

Journaling: No


ext3 Features

Maximum File Size: 2 TiB

Maximum Partition Size: 32 TiB

Journaling: Yes


ext4 Features

Maximum File Size: 16 TiB

Maximum Partition Size: 1 EiB

Journaling: Yes


reiserFS Features

Maximum File Size: 8 TiB

Maximum Partition Size: 16 TiB

Journaling: Yes


JFS Features

Maximum File Size: 4 PiB

Maximum Partition Size: 32 PiB

Journaling: Yes (metadata)


XFS Features

Maximum File Size: 8 EiB

Maximum Partition Size: 8 EiB

Journaling: Yes (metadata)


For reference:

GiB = Gibibyte (1024 MiB)

TiB = Tebibyte (1024 GiB)

PiB = Pebibyte (1024 TiB)

EiB = Exbibyte (1024 PiB)


These are the commonly using File Systems in the Linux systems.


If you need any further assistance please reach our support department.

  • 0

Install Wine on Linux Distribution

Install Wine on Linux Distribution In this tutorial, we can check how to Install Wine on Linux...

Install Apache Tomcat on Ubuntu 18.04

Install Apache Tomcat on Ubuntu 18.04 The Apache Tomcat is a free, open-source Java-based web...

How to Install and Setup Angular CLI

How to Install and Setup Angular CLIAngular is an open-source framework for your web...

How to Install Jenkins on CentOS and Ubuntu Server?

How to Install Jenkins on CentOS and Ubuntu Server? Jenkins is a free and open-source automation...

Setup ILIAS LMS on Ubuntu 18.04/16.04 with Nginx

ILIAS is an Open-Source Learning Management System. ILIAS LMS offers to develop and realizing...