Website:
Reference Project:
C/Linux Projects and Kernel Hacking Projects (xv6)
-
The Abstraction: The Process
-
Interlude: Process API
-
Mechanism: Limited Direct Execution
-
Scheduling: Introduction
-
Scheduling: The Multi-Level Feedback Queue
-
Scheduling: Proportional Share
-
Multiprocessor Scheduling (Advanced)
-
Summary Dialogue on CPU Virtualization
-
A Dialogue on Memory Virtualization
-
The Abstraction: Address Spaces
-
Interlude: Memory API
-
Mechanism: Address Translation
-
Segmentation
-
Free-Space Management
-
Paging: Introduction
-
Paging: Faster Translations (TLBs)
-
Paging: Smaller Tables
-
Beyond Physical Memory: Mechanisms
-
Beyond Physical Memory: Policies
-
Concurrency: An Introduction
-
Interlude: Thread API
-
Locks
-
Lock-based Concurrent Data Structures
-
Condition Variables
-
Semaphores
-
Common Concurrency Problems
-
Event-based Concurrency (Advanced)
-
Hard Disk Drives
-
Redundant Arrays of Inexpensive Disks (RAIDs)
-
Interlude: Files and Directories
-
File System Implementation
-
Locality and The Fast File System
-
Crash Consistency: FSCK and Journaling
-
Log-structured File Systems
-
Flash-based SSDs
-
Data Integrity and Protection
-
Summary Dialogue on Persistence
-
A Dialogue on Distribution
-
Distributed Systems
-
Sun’s Network File System (NFS)
-
The Andrew File System (AFS)