Chapter 5. Filesystems
In this chapter, we focus on files and filesystems. The UNIX concept of “everything is a file” lives on in Linux, and while that’s not true 100% of the time, most resources in Linux are indeed files. Files can be everything from the content of the letter you write to your school to the funny GIF you download (from an obviously safe and trusted site).
There are other things that are also exposed as files in Linux—for example,
devices and pseudo-devices such as in
echo "Hello modern Linux users" > /dev/pts/0,
which prints “Hello modern Linux users” to the screen.
While you may not associate these resources with files, you can access them with the same
methods and tools you know from regular files. For example, the kernel exposes
certain runtime information (as discussed in “Process Management”)
about a process, such as its PID or the binary used to run the process.
What all these things have in common is a standardized, uniform interface: opening a file, gathering information about a file, writing to a file, and so forth. In Linux, filesystems provide this uniform interface. This interface, together with the fact that Linux treats files as a stream of bytes, without any expectations about the structure, enables us to build tools that work with a range of different file types.
In addition, the uniform interface that filesystems provide reduces your cognitive load, making it faster for you to learn how to use Linux.
In this chapter, we first define some relevant ...