# ostep-code

Code from various chapters in OSTEP ([http://www.ostep.org](http://www.ostep.org))

- [Introduction](https://github.com/remzi-arpacidusseau/ostep-code/blob/master/intro)

## Virtualization

CPU Virtualization Chapters:

- Processes
- [Process API](https://github.com/remzi-arpacidusseau/ostep-code/blob/master/cpu-api)
- Direct Execution
- CPU Scheduling
- Multi-level Feedback
- [Lottery Scheduling](https://github.com/remzi-arpacidusseau/ostep-code/blob/master/cpu-sched-lottery)
- Multi-CPU Scheduling

Memory Virtualization Chapters:

- [Address Spaces](https://github.com/remzi-arpacidusseau/ostep-code/blob/master/vm-intro)
- Memory API
- Address Translation
- Segmentation
- Free Space Management
- Introduction to Paging
- Translation Lookaside Buffers
- Advanced Page Tables
- Swapping: Mechanisms
- Swapping: Policies
- Complete VM Systems

## Concurrency

Concurrency Chapters:

- [Concurrency and Threads](https://github.com/remzi-arpacidusseau/ostep-code/blob/master/threads-intro)
- [Threads API](https://github.com/remzi-arpacidusseau/ostep-code/blob/master/threads-api)
- [Locks](https://github.com/remzi-arpacidusseau/ostep-code/blob/master/threads-locks)
- Locked Data Structures
- [Condition Variables](https://github.com/remzi-arpacidusseau/ostep-code/blob/master/threads-cv)
- [Semaphores](https://github.com/remzi-arpacidusseau/ostep-code/blob/master/threads-sema)
- [Concurrency Bugs](https://github.com/remzi-arpacidusseau/ostep-code/blob/master/threads-bugs)
- Event-based Concurrency

## Persistence

Persistence Chapters:

- I/O Devices
- Hard Disk Drives
- Redundant Disk Arrays (RAID)
- Files and Directories
- File System Implementation
- Fast File System (FFS)
- FSCK and Journaling
- Log-structured File System (LFS)
- Flash-based SSDs
- Data Integrity and Protection
- [Distributed Systems](https://github.com/remzi-arpacidusseau/ostep-code/blob/master/dist-intro)
- Network File System (NFS)
- Andrew File System (AFS)
