Operating Systems: Three Easy Pieces

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

Blog: Why Textbooks Should Be Free

Quick: Free Book Chapters - Buy Hardcover - Buy Softcover - Buy PDF - Buy T-shirt - For Teachers - Homework - News - Acknowledgements - Other Books

Welcome to Operating Systems: Three Easy Pieces (now version 0.90 -- 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.90) - 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). Now just: $36.00
  • An almost-as-wonderful (and somewhat cheaper) softcover edition (v0.90) - this way is pretty great too, if you like to read printed material but want to save a few bucks. Now just: $24.00
  • A pretty awesome electronic edition (v0.90) - 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. Just: $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.

New: Can't bear to go out in public without an operating system? How about an Operating Systems: Three Easy Pieces T-shirt ? The t-shirt and printed/electronic books 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
March, 2015 (Version 0.90)

And now, the free online form of the book, in chapter-by-chapter form (now with chapter numbers!):

Intro Virtualization Concurrency Persistence Appendices
Preface 3 Dialogue 12 Dialogue 25 Dialogue 35 Dialogue Dialogue
TOC 4 Processes 13 Address Spaces 26 Concurrency and Threads code 36 I/O Devices Virtual Machines
1 Dialogue 5 Process API code 14 Memory API 27 Thread API 37 Hard Disk Drives Dialogue
2 Introduction code 6 Direct Execution 15 Address Translation 28 Locks 38 Redundant Disk Arrays (RAID) Monitors
7 CPU Scheduling 16 Segmentation 29 Locked Data Structures 39 Files and Directories Dialogue
8 Multi-level Feedback 17 Free Space Management 30 Condition Variables 40 File System Implementation Lab Tutorial
9 Lottery Scheduling code 18 Introduction to Paging 31 Semaphores 41 Fast File System (FFS) Systems Labs
10 Multi-CPU Scheduling 19 Translation Lookaside Buffers 32 Concurrency Bugs 42 FSCK and Journaling xv6 Labs
11 Summary 20 Advanced Page Tables 33 Event-based Concurrency 43 Log-structured File System (LFS) Flash-based SSDs
21 Swapping: Mechanisms 34 Summary 44 Data Integrity and Protection
22 Swapping: Policies 45 Summary
23 Case Study: VAX/VMS 46 Dialogue
24 Summary 47 Distributed Systems
48 Network File System (NFS)
49 Andrew File System (AFS)
50 Summary

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.90. 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 SYSTEMS BOOKS: Interested in other systems books? Good! Of course, we assume some background in The C Programming Language, so that's a good investment. And Advanced Programming in the UNIX Environment is a must for any shelf. On top of that, here are some OS books 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 - The Design and Implementation of the FreeBSD Operating System - Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture - Mac OS X Internals: A Systems Approach - The Design of the UNIX Operating System - Unix: The Textbook (2nd Edition) - The Linux Programming Interface: A Linux and UNIX System Programming Handbook.

OTHER BOOKS: So you're looking down here? Well, how about reading something other than tech books all day long? Honestly, you need to be more balanced. Here are some awesome books you should most definitely read. Fiction: Cloud Atlas: A Novel - Life of Pi - A Prayer for Owen Meany: A Novel - All the Light We Cannot See - The Book Thief - The Fault in Our Stars - Tenth of December: Stories - If I Don't Six - A Game of Thrones - To Kill a Mockingbird - The Kite Runner - Ender's Game - Foundation - Slaughterhouse-Five - The Shadow of the Wind - Flowers for Algernon - Holes - Atonement - The Name of the Wind - Beloved - For Whom the Bell Tolls - Different Seasons - Neuromancer - Snow Crash - Cryptonomicon - Shantaram - A Room with a View - Jude the Obscure - Illusions: The Adventures of a Reluctant Messiah - A Canticle for Leibowitz - A Wizard of Earthsea - Black Swan Green - The Stars My Destination - Ancillary Justice - My Brilliant Friend - Crossing to Safety - Possession - The Selected Works of T.S. Spivet - Essential Ellison - The Demolished Man Non-fiction: Seabiscuit: An American Legend - Unbroken - Surely You're Joking, Mr. Feynman! - On Intelligence - The Language Instinct - Flow - Guns, Germs, and Steel - The Selfish Gene - A Heartbreaking Work of Staggering Genius - Lies My Teacher Told Me - Freakonomics - How the Irish Saved Civilization - Cod - The Devil in the White City - The Swerve: How the World Became Modern - The Drunkard's Walk - The Visual Display of Quantitative Information - Eats, Shoots & Leaves - The Elements of Style - The Design of Everyday Things - Mountains Beyond Mountains - The Soul of A New Machine - Alan Turing: The Enigma - Consider the Lobster - The Vintage Guide to Classical Music