10. Introduction#

The power of Unix comes from the fundamental idea that everything is a file or really more accurately a stream. However, in many cases we want to store data persistently on disks and in that case file systems provide that abstraction, and, as we will see, a richer set of abstractions.

We first describe this rich interface Unix (and many similar systems) require of file systems. We then discuss the ugly hardware abstractions that needs to be transformed by file systems into this interface.

After describing how you get to the file system on disk, the next four chapters describe key file system design issues, namely how to: 1)keep track of the blocks used in a file, 2)keep track of the free blocks, 3) maintain the name space, and 4) deal with failures.

The final two chapters provide examples of real file systems and discuss what runs in the kernel, and the VFS layer unix file systems have.