Operating Systems: Four Easy Pieces (DEPRECATED)


Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau


This version of the book is now deprecated. But don't worry! THE CURRENT VERSION IS AVAILABLE HERE, WHICH YOU SHOULD USE IF AT ALL POSSIBLE. This page will remain here indefinitely, but the book chapters below will not be updated with bug fixes, new information, etc.

Welcome to this book! As you might notice, it is a work in progress - so please be patient. Any feedback is appreciated! And indeed, rewarded, with an acknowledgment on the errata page; just send email!

The book is centered around four conceptual pieces: virtualization, concurrency, persistence, and distribution. In understanding the conceptual, you will also learn the practical, including how an operating system does things like schedule the CPU, manage memory, store files persistently, and even work in a distributed environment where there are many computers and not just one. Lots of fun stuff!

This book is and will always be free in PDF form. Eventually, there will be a print copy available too (e.g., from lulu.com ).

Intro Virtualization Concurrency Persistence Distribution Appendices
Preface Dialogue Address Spaces Dialogue Dialogue Dialogue Dialogue
Contents Processes Memory API Intro Devices Intro VMM Intro
Dialogue Process API Translation Thread API Disks Sun's Network FS *VMMMem*
Intro Direct Execution Segmentation Locks RAID Andrew FS Dialogue
Scheduling Free Space *Locks: Usage* Files and Directories *Google FS* Monitors
MLFQ Paging Condition Variables FS Implementation *Security* Dialogue
Lottery Faster Semaphores Fast File System *Authentication* Lab Tutorial
*Multiple CPUs* Smaller Deadlock Journaling *Kerberos* Systems Labs
Summary Beyond Physical *Real-life Bugs* Log-structured FS *Summary* xv6 Labs
Policies Summary *Modern File Systems*
VAX/VMS *Summary*
Summary

Homeworks: Some of the chapters have homeworks at the end, which require simulators and other code. More details on that, including how to find said code, can be found here: homework

Current Status: We are working on (yet) another pass over the book, moving chapters from version 0.3 to 0.4, adding many homework sections and improving text and pictures. Our goal is currently to finish this pass by the end of Summer Fall 2011. The chapters that are linked and black have been updated to version 0.4; those that are linked and marked red are still v0.3 chapters; finally, those surrounded by asterisks are yet to be written. Track recent changes to the book here: log

Acknowledgments: These students have greatly contributed to this effort, through endless bug reports and other comments. Your name could go here! (as well as in any final, printed book): errata