File System

In module 3, we studied the file system primarily as a means of data storage and retrieval in a single-program context. We learned about various fundamental file system concepts such as the basic file types; the file system’s hierarchical structure; the abstract physical file system interface consisting of inodes, direntries, superblocks, and files; and the virtual and symbolic file system layers. Additionally, we learned about file system metadata such as access control and file status information like creation, modification, and access times.

In this section, we will study more advanced file system concepts–we will look at other types of files used for inter-process communication such as: Special block and character files; FIFOs, also called Named Pipes; and Unix Sockets.

The file system is frequently used by processes running unrelated programs to communicate with each other. For example, system services often provide a file-based interface for managing those services, which are otherwise running in self-imposed isolation from the rest of the system. The file system also supports persistent data storage, allowing processes with disjoint lifetimes to communicate with each other.