Skip to main content

Reference and Selective Reading

You do not need to read the source books front-to-back for this module. Use the concept pages and practice pages first. Open these local chunks only when you need alternate exposition, more worked examples, or a deeper exercise lane.

Source Roles

SourceRoleWhy it is here
Operating Systems: Three Easy Pieces (OSTEP), persistence chaptersPrimary teaching sourceClearest operational presentation of inodes, layout, journaling, LFS, ZFS, and disks
Operating System Concepts (Silberschatz)Formal supportStronger coverage of the I/O subsystem (drivers, DMA, scheduling) and VFS framing
Unix Network Programming (Stevens)I/O models supportCanonical treatment of blocking/non-blocking/select/poll and their worked examples
kernel.org documentationCurrent Linux truthext4 and block layer specifics, io_uring behavior
LWN.netEvolution and nuancefsync corner cases, COW-vs-fsync tension, io_uring history

Read Only If Stuck

Cluster 1: The File Abstraction

Cluster 2: On-Disk Layout and Structure

Cluster 3: Crash Consistency

Cluster 4: Caching and Performance

Cluster 5: I/O Models and the Syscall Path

Optional Deep Dive

Concept-to-Source Map

Primary conceptBest source if stuckWhy this source
What a file is (inode, name, data)OSTEP: Files and directoriesOperational framing with all three parts
Directories as filesOSTEP: Directory organizationDirectory-as-data view
File descriptors and open-file tablesOSTEP: Access pathsEnd-to-end through the three tables
Disk block interfaceOSTEP: The interfaceClean block-device contract
FS layoutOSTEP: Overall organizationCanonical ext-style layout
FAT vs ext vs LFSOSTEP: LFS - writing sequentiallyClearest contrast with in-place FS
Crash consistency problemOSTEP: A detailed exampleThe canonical enumeration
JournalingOSTEP: Data journalingWAL and commit-block discipline
Copy-on-writeOSTEP: ZFS appendixCOW FS in production
Page cacheOSTEP: Caching and bufferingThe cache-above-the-FS model
fsync and barriersOSTEP: Forcing writes to diskBarriers and FLUSH ordering
Sequential vs random I/OOSTEP: I/O time mathQuantitative model
select / poll / epollUNP: I/O modelsBest taxonomy
aio / io_uringLord of the io_uring (unixism.net)Best hands-on intro
Device I/O and DMAOSTEP: DMAWhy CPU is not the bottleneck