Operating Systems: Three Easy Pieces

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

Blog: Why Textbooks Should Be Free

Quick: Free Book Chapters - Hardcover - Softcover (Lulu) - Softcover (Amazon) - Buy PDF - EU (Lulu) - Buy in India - Buy T-shirt - Donate - For Teachers - Homework - Projects - News - Acknowledgements - Other Books

COMING SOON: Computer Systems: Three Easy Steps --- ALSO COMING SOON: Distributed Systems: Three Easy Steps

Welcome to Operating Systems: Three Easy Pieces (now version 1.00 -- 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:

  • Lulu Hardcover (v1.00): 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: $38.00
  • Lulu Softcover (v1.00): this way is pretty great too, if you like to read printed material but want to save a few bucks. Now just: $22.00
  • Amazon Softcover (v1.00): Same book as softcover above, but printed through Amazon CreateSpace. Now just: $25.90 (but works with Prime shipping)
  • Downloadable PDF (v1.00): this is a nice convenience and adds things like a hyperlinked table of contents, index 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. Once purchased, you will always be able to get the latest version. Just: $10.00
  • Kindle: Really, just the PDF and does not include all the bells and whistles common in e-pub books.

Lulu Discount Codes: ONEFIVE until May 2

Warning: Some resellers on Amazon buy old versions of the books and claim to sell them as “new” on Amazon (click here for an example); buy from them at your own risk. In general, buy either directly from Lulu.com or Amazon.com (not a reseller). For Amazon, go to this page and look for Seller Information to be Amazon.com.

Can't bear to go out in public without an operating system? How about an Operating Systems: Three Easy Pieces T-shirt ?

Donate: By popular demand, another way to support this site and its contents: donate! Click to donate $1 - $10 - $20 - $50 - or click here to donate any amount you want! Your donation helps keep this book going. Think about it: if everyone who came to this website donated just one dollar, we'd have at least three dollars. Thanks!

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
August, 2018 (Version 1.00)

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 code 26 Concurrency and Threads code 36 I/O Devices Virtual Machines
1 Dialogue 5 Process API code 14 Memory API 27 Thread API code 37 Hard Disk Drives Dialogue
2 Introduction code 6 Direct Execution 15 Address Translation 28 Locks code 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 code 40 File System Implementation Lab Tutorial
9 Lottery Scheduling code 18 Introduction to Paging 31 Semaphores code 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)
21 Swapping: Mechanisms 34 Summary 44 Flash-based SSDs
22 Swapping: Policies 45 Data Integrity and Protection
23 Complete VM Systems 46 Summary
24 Summary 47 Dialogue
48 Distributed Systems
49 Network File System (NFS)
50 Andrew File System (AFS)
51 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

PROJECTS: While the book should provide a good conceptual guide to key aspects of modern operating systems, no education is complete without projects. We are in the process of making the projects we use at the University of Wisconsin-Madison widely available; an initial link to project descriptions is available here: PROJECTS. Coming soon: the automated testing framework that we use to grade projects.

BOOKS NEWS: Lots of new stuff to finally get to version 1.0. 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 - 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 - The Nightingale - The Overstory - The Windup Girl - The Water Knife 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

ACKS: The authors wish to acknowledge all the sources of funding for their research over the years. In particular, the authors appreciate the strong support from the National Science Foundation (NSF), which is an essential part of the modern research and educational infrastructure of the USA.