Thus far we have traversed across the elemental resources of the kernel, such as address spaces, processor time, and physical memory. We have built an empirical understanding of process management, CPU scheduling, and memory management and the crucial abstractions they provide. We shall continue to build our understanding in this chapter by looking at another key abstraction provided by the kernel, the file I/O architecture. We will look in detail at aspects such as:
- Filesystem implementation
- File I/O
- VFS
- VFS data structures
- Special filesystems
Computing systems exist for the sole purpose of processing data. Most algorithms are designed and programmed to extract desired information from acquired data. Data which fuels this process must be stored persistently for continuous access, mandating storage systems to be engineered to contain information safely...