Operating Systems: Three Easy Pieces

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

New: A blog entry on why textbooks should be free.

Welcome to Operating Systems: Three Easy Pieces (now version 0.8 -- see book news for details), a free online operating systems book! The book is centered around three conceptual pieces that are fundamental to operating systems: virtualization, concurrency, and persistence. In understanding the conceptual, you will also learn the practical, including how an operating system does things like schedule the CPU, manage memory, and store files persistently. Lots of fun stuff!

This book is and will always be free in PDF form, as seen below. For those of you wishing to BUY a copy, please consider the following:

  • A wonderful hardcover edition (v0.8) - this may be the best printed form of the book (it really looks pretty good), but it is also the most expensive way to obtain the black book of operating systems (a.k.a. the comet book or the asteroid book according to students). Currently: $37.00
  • An almost-as-wonderful (and somewhat cheaper) softcover edition (v0.8) - this way is pretty great too, if you like to read printed material but want to save a few bucks. Currently: $25.00
  • A pretty awesome electronic edition (v0.8) - this is a nice convenience and adds things like a hyperlinked table of contents, glossary of terms, lists of hints, tips, systems advice, and a few other things not seen in the free version, all in one massive DRM-free PDF. Currently: $10.00
  • An alpha version for Kindle. Really, this is just the PDF and does not (yet) include all the bells and whistles common in e-pub books.

Sale: Free mail shipping or 50% off ground shipping on your lulu.com order through February 25. Use code DBS15.

These paid methods are both brought to you by the demand of various students and professors, and are a nice way to show your appreciation.

Another way to help the book out: cite it! Here is the BiBTeX entry (seen below); you can also link to the site of the best free operating systems book on the market.

Operating Systems: Three Easy Pieces
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
Arpaci-Dusseau Books
May, 2014 (Version 0.80)

And now, the free online form of the book, in chapter-by-chapter form:

Intro Virtualization Concurrency Persistence Appendices
Preface Dialogue Dialogue Dialogue Dialogue Dialogue
TOC Processes Address Spaces Concurrency and Threads code I/O Devices Virtual Machines
Dialogue Process API code Memory API Thread API Hard Disk Drives Dialogue
Introduction code Direct Execution Address Translation Locks Redundant Disk Arrays (RAID) Monitors
CPU Scheduling Segmentation Locked Data Structures Files and Directories Dialogue
Multi-level Feedback Free Space Management Condition Variables File System Implementation Lab Tutorial
Lottery Scheduling code Introduction to Paging Semaphores Fast File System (FFS) Systems Labs
Multi-CPU Scheduling Translation Lookaside Buffers Concurrency Bugs FSCK and Journaling xv6 Labs
Summary Advanced Page Tables Event-based Concurrency Log-structured File System (LFS)
Swapping: Mechanisms Summary Data Integrity and Protection
Swapping: Policies Summary
Case Study: VAX/VMS Dialogue
Summary Distributed Systems
Network File System (NFS)
Andrew File System (AFS)

INSTRUCTORS: If you are using these free chapters, please just link to them directly (instead of making a copy locally); we make little improvements frequently and thus would like to provide the latest to whomever is using it. Also: we have made our own class-preparation notes available to those of you teaching from this book; please drop us a line at remzi@cs.wisc.edu if you are interested.

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

BOOKS NEWS: A huge number of pictures added, chapters completed, and other fun details in the latest stable version, 0.8. Track changes: NEWS

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

OTHER OPERATING SYSTEMS BOOKS: Interested in other operating systems books? Good! Here are some that could be worth your time: Operating Systems: Principles and Practice - Operating System Concepts - Operating Systems: Internals and Design Principles (8th Edition) - Modern Operating Systems (4th Edition) - Linux Kernel Development (3rd Edition) - Understanding the Linux Kernel, Third Edition - The Design and Implementation of the FreeBSD Operating System (2nd Edition) - Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture (2nd Edition) - Mac OS X Internals: A Systems Approach - The Design of the UNIX Operating System