Operating Systems: Three Easy Pieces

4.75/5 · 700+ ratings

A book about modern operating systems. Topics are broken down into three major conceptual pieces: Virtualization, Concurrency, and Persistence. Includes all major components of modern systems including scheduling, virtual memory management, disk subsystems and I/O, file systems, and even a short introduction to distributed systems.

Reviews

Priya

★ 5/5
This textbook is fantastic! The chapter structure is incredibly well-organized, allowing for easy navigation through bite-sized reading sessions despite the comprehensive coverage of topics. It's written in very accessible language, requiring only a basic familiarity with computers and C programming. The fact that it's free is absolutely amazing; you could practically get a full undergraduate course on Operating Systems just by working through this book and its exercises. While the humor wasn't always a hit for me, it certainly didn't detract from the overall excellent quality of the material.

Anya

★ 4/5
Revisiting this classic after many years, I found it to be a solid, albeit broad, textbook. While the distributed systems and file persistence sections are undeniably dated, they offer valuable historical perspective. The virtualization chapter is particularly insightful and probably the most relevant part for modern readers. I'm a bit on the fence about the concurrency discussions; they feel a little disconnected from how programmers typically approach concurrency today with async or CSP models.

Priya

★ 4/5
This book is a decent, free introduction to operating systems, covering fundamental concepts like virtual memory and process management in an accessible way for newcomers. However, it's definitely not for anyone with prior OS knowledge, as the depth is quite lacking and doesn't really help you master anything. The content often feels unstructured, making it hard to follow the narrative, and it spends too much time on outdated mechanisms without providing a clear picture of modern systems. While the recommended papers at the end of each chapter are a great bonus for further study, the constant, unfunny jokes are a real distraction and detract from the material.

Anya

★ 5/5
This book is fantastic for anyone looking to solidify their understanding of operating systems, whether you're a student or an instructor. It dives deep into the core concepts of virtualization, concurrency, and persistence, offering practical insights into Linux implementations and system calls. While the sheer volume of new terms might be a bit much for absolute beginners, it's an incredibly valuable resource for gaining deeper knowledge.

Anya

★ 3/5
This book offers a solid introduction to core OS concepts, making even complex topics accessible and engaging. I appreciated the lively writing style and the excellent structure, with short chapters that are easy to digest. The way the bibliography is presented, with commentary at the end of each chapter, is particularly useful. While I found the selection of topics a bit questionable, with some feeling out of place for an OS introduction, the overall experience was positive, though I admit my expertise in this area is limited.

Anya

★ 5/5
This book offers a solid exploration of core operating system concepts, moving from virtualization and concurrency to persistence and even touching on distributed systems. The author's clear distinction between mechanisms and policies was particularly insightful. It's a surprisingly deep dive that provides valuable background knowledge for any programmer, not just those building operating systems.

Priya

★ 5/5
This book is a fantastic resource, especially for undergraduates diving into operating systems. The author masterfully breaks down complex topics like virtualization, concurrency, and persistence, with a solid introduction to distributed systems. Beyond just the theory, I found myself picking up genuinely useful software development insights. It's a shame I didn't tackle all the homework, but that's on me – the material itself is top-notch!

Anya

★ 4/5
This book was a fantastic resource for someone like me, coming from a non-computer science background. While the initial sections on processes, threads, and address spaces were quite accessible and even enjoyable with the included exercises, the later parts delving into distributed systems and event-based concurrency proved to be a bit more challenging. Despite a few stumbles, I've definitely gained a solid foundation for tackling more advanced topics, which was exactly what I was hoping for.

Anya

★ 5/5
This book was an excellent resource for my graduate OS course, providing a comprehensive yet accessible overview of operating systems. It masterfully covers essential concepts, making it feel more like an engaging story than a dry textbook. While it might not delve into the nitty-gritty of specific implementations, it's perfect for gaining a solid understanding of how operating systems function, and it's a much more dynamic read than older texts.

Priya

★ 4/5
This book is a fantastic resource for anyone just starting out in the subject; you won't need any prior knowledge to dive in. What's even better is that it's freely available online in a nicely formatted HTML version. I particularly appreciated being able to revisit specific topics whenever I encountered unfamiliar concepts, and the section on CPU memory was incredibly insightful, providing a solid foundation for understanding operating systems.

Anya

★ 4/5
This book offered a fantastic entry point into the OS world, though the experience was a rollercoaster of both joy and frustration. The initial sections were particularly engaging, sparking a strong desire to see them through to completion. However, the latter part felt a bit disjointed and unfocused for my taste, but then again, what do I know? I'm just a casual reader.

Olga

★ 5/5
This operating systems textbook is surprisingly engaging, managing to cover the material without making me grind my teeth. While it doesn't sacrifice depth, it skips over the nitty-gritty of development like architecture and kernel types, and I still don't quite grasp 'protection rings.' The examples are heavily Linux-focused, which is a minor drawback. However, the curated lists of sources at the end of each chapter, complete with explanations, are fantastic – a real treasure trove for further study, though perhaps best suited for dedicated graduate students. It's a solid introduction that definitely sets you up to dive into more comprehensive resources.

Eleanor

★ 5/5
This book really breaks down the fundamental concepts of operating systems in a way that's surprisingly accessible. The author uses analogies, like the Venom symbiote and the peach examples, to explain complex ideas like virtualization and concurrency, which I found incredibly helpful. It covers the core functions of an OS, from managing hardware access to ensuring data persistence, and even touches on the historical challenges faced in its development. It's a solid read for anyone wanting to understand what makes their computer tick.

Anya

★ 5/5
This book would have been incredibly useful during my university days! It finally gave me a clear understanding of what's happening at the system level.

Priya

★ 5/5
This book is exceptionally good, really nailing the fundamentals without getting bogged down in academic jargon. It masterfully conveys the core of the problems and their solutions, and the abundance of references makes it a fantastic starting point for deeper exploration. It's an absolute must-read for anyone interested in the topic!

Javier

★ 5/5
This is fantastic! It's readily accessible online and the physical copy is quite affordable, which is crucial. The significance of this work can't be overstated; textbooks absolutely shouldn't be priced out of reach for students.

Anya

★ 5/5
This book is fantastic for diving into operating systems, offering a great blend of high-level concepts and practical, low-level details. It's anything but dry; the material is presented in a playful and engaging way, yet it covers the subject matter comprehensively and thoroughly. It truly sets a high standard for undergraduate engineering texts.

Anya

This book is undoubtedly the benchmark for its genre. It sets a new standard and is a must-read for anyone interested in this type of literature.

Anya

★ 5/5
This book was a solid read. I'd recommend it to anyone looking for a straightforward story.

Anya

★ 5/5
This book excels at explaining operating system concepts by building a solid foundation with abundant examples. The authors masterfully guide readers through a trial-and-error approach, demonstrating why certain designs fail before iteratively arriving at effective solutions, which I found incredibly beneficial. My only suggestion would be to incorporate more content on distributed systems.

Anya

★ 5/5
This nonfiction book is an absolute gem, easily the best I've encountered. It genuinely enhances your skills as a programmer, offering invaluable insights even if you're not directly working with operating systems. You'll gain a fantastic understanding of your computer's inner workings, making it an essential read for anyone in IT.

Anya

★ 5/5
This operating systems textbook is truly one of the best technical books I've encountered, largely due to the author's engaging style. The way information is presented is incredibly well-paced, and each chapter effectively sets up the problem it aims to solve, sparking curiosity in the reader. It's concise, focusing only on essential aspects, making it perfect for self-study. I'm genuinely looking forward to finishing the second half, which we'll be covering in Operating Systems 2.

Priya

★ 4/5
This book is an excellent entry point into the world of low-level, performant design, even if operating systems aren't your primary focus. You'll learn a ton about designing software for efficiency, which is surprisingly relevant even with the shift to cloud computing. The authors do a fantastic job of introducing concepts like threading in a way that's engaging and easy to grasp, making it a valuable read for anyone looking to write better-performing code in any environment.

Priya

★ 5/5
While those familiar with Tanenbaum or the challenges of parallel programming might not find groundbreaking revelations, this book is an absolute delight. It masterfully avoids feeling like a dry textbook, instead offering a lively, witty, and incredibly clear writing style. The author brilliantly builds concepts from simple beginnings, gradually introducing complexity to tackle common hurdles. Unlike other texts that can feel unnecessarily convoluted, this one consistently explains things in a way that just makes sense, making it a truly superior learning experience.

Anya

★ 3/5
While the initial sections on CPU and Memory virtualization offered a dense and detailed look, the book's quality unfortunately declined significantly as I progressed. The concurrency chapter was passable but uneven, and the author's persistent puns quickly turned reading into a chore. The persistence section was particularly disappointing, feeling unfocused and superficial, like a magazine article rather than a comprehensive textbook. Given the poor physical quality of the hardcover edition and the uneven content, I can't recommend this book, especially when superior alternatives like Hennesy & Patterson or Tanennbaum exist.

Priya

★ 5/5
This is hands down the best operating systems book out there. It manages to strike a perfect balance, offering a solid overview while diving deep into the nitty-gritty when it counts. The humor sprinkled throughout makes it an absolute joy to read, almost like watching an engaging YouTube video. I'm confident I'll be revisiting this gem for years to come without ever getting tired of it.

Liam

★ 5/5
While textbooks are meant to be dense, this one manages to be both informative and surprisingly approachable. The authors use a casual, dialogue-style introduction to each chapter that really helps to ease you into the material without sacrificing depth. It's a fantastic balance, making complex information feel accessible and human.

Anya

★ 5/5
This is hands down the best introductory text on operating systems I've encountered. The inclusion of a curated list of papers at the end of each chapter was a particularly insightful feature that greatly enhanced my understanding.

Chloe

This book was perfect for a lazy afternoon by the water. It's a breezy, enjoyable story that doesn't demand too much of your attention, making it ideal for unwinding.

Astrid

I bombed my exam, and I'm not sure if the baking really helped much with that outcome.
Shelves
Computers Software Programming Nonfiction book Textbooks Remzi H. Arpaci-Dusseau Computer Science Technology Andrea C. Arpaci-Dusseau Engineering Technical Reference

More like this


The C++ Programming Language

More than three-quarters of a million programmers have benefited from this book in all of its editions Written by Bjarne Stroustrup, the creator o…

4.75/5 · 700+ ratings

Effective Java

Since this Jolt-award winning classic was last updated in 2008 (shortly after Java 6 was released), Java has changed dramatically. The principal e…

4.75/5 · 700+ ratings

JavaScript: The Good Parts

Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a …

4.75/5 · 700+ ratings

Automate the Boring Stuff with Python: Practical Programming for Total Beginners

If you've ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you…

4.75/5 · 700+ ratings

Algorithms

This fourth edition of Robert Sedgewick and Kevin Wayne's Algorithms is the leading textbook on algorithms today and is widely used in colleges an…

4.75/5 · 700+ ratings

Python Cookbook, Third Edition

If you need help writing programs in Python 3, or want to update older Python 2 code, this book is just the ticket. Packed with practical recipes …

4.75/5 · 700+ ratings

Cracking the Coding Interview: 150 Programming Questions and Solutions

Now in the 5th edition, Cracking the Coding Interview gives you the interview preparation you need to get the top software developer jobs. This is…

4.75/5 · 700+ ratings

Learning Python

Portable, powerful, and a breeze to use, Python is the popular open source object-oriented programming language used for both standalone programs …

4.75/5 · 700+ ratings

Java Concurrency in Practice

"I was fortunate indeed to have worked with a fantastic team on the design and implementation of the concurrency features added to the Java platfo…

4.75/5 · 700+ ratings

Test-Driven Development: By Example

Author: Kent Beck

Quite simply, test-driven development is meant to eliminate fear in application development. While some fear is healthy (often viewed as a conscie…

4.75/5 · 700+ ratings

Eloquent JavaScript: A Modern Introduction to Programming

"A concise and balanced mix of principles and pragmatics. I loved the tutorial-style game-like program development. This book rekindled my earlies…

4.75/5 · 700+ ratings

Practical Object Oriented Design in Ruby

Author: Sandi Metz

The Complete Guide to Writing More Maintainable, Manageable, Pleasing, and Powerful Ruby Applications Ruby’s widely admired ease of use has a To…

4.75/5 · 700+ ratings