Operating Systems: Three Easy Pieces
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (University of Wisconsin-Madison)
NEW: Security Chapters by Peter Reiher (UCLA)
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! Or maybe not so fun?
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:
Can't bear to go out in public without OSTEP? How about an Operating Systems: Three Easy Pieces T-shirt or laptop sticker or bathmat or blanket or mug or check out the whole store?
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
And now, the free online form of the book, in chapter-by-chapter form (now with chapter numbers!):
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 firstname.lastname@example.org 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.