2 minutes
Linux File Systems
A deep dive into Linux file system internals - from VFS abstractions and the I/O stack to crash consistency mechanisms and emerging storage technologies.
This talk provided a comprehensive introduction to Linux file systems, covering both the conceptual foundations and practical internals. Starting from the basic definition of what a file system is - a method of organizing data on storage media into files and directories - the presentation walked students through the key VFS (Virtual File System) abstractions used in the Linux kernel, including inodes, dentries, file objects, and superblocks. It then explored how the Linux I/O stack fits together, from system calls through the page cache and block layer down to physical devices. The talk also covered internal structures such as free space management, block allocators, and block addressing schemes (direct/indirect vs. extent trees), followed by crash consistency mechanisms including journaling and copy-on-write (as used in btrfs). Advanced features like delayed allocation and checksumming were discussed, and the presentation concluded with emerging storage technologies - Shingled Magnetic Recording (SMR) drives and Persistent Memory - and their implications for file system design.
Key takeaways:
- The VFS layer is what allows Linux to support dozens of different file systems behind a single unified interface, using an object-oriented approach with operation tables for files, inodes, dentries, and superblocks.
- Journaling and copy-on-write are two fundamentally different strategies for maintaining metadata consistency across crashes, each with distinct performance and complexity trade-offs.
- Persistent Memory represents a qualitative leap in storage performance (potentially tens of millions of IOPS), requiring new approaches - such as bypassing the page cache and block layer entirely via mmap/XIP - rather than incremental optimization of existing file system code.