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.
Remzi Arpaci-Dusseau is the Grace Wahba professor and Associate Chair of Computer Sciences at UW-Madison. He co-leads a research group with Professor Andrea Arpaci-Dusseau. Together, they have graduated 24 Ph.D. students and won numerous best-paper awards; many of their innovations are used by commercial systems. For their work, Andrea and Remzi received the 2018 ACM-SIGOPS Weiser award for "outstanding leadership, innovation, and impact in storage and computer systems research."
Remzi has won the SACM Professor-of-the Year award six times, the Rosner "Excellent Educator" award, and the Chancellor's Distinguished Teaching Award. Andrea and Remzi's operating systems book (www.ostep.org) is downloaded millions of times yearly and used at numerous institutions worldwide.
Textbooks should be hard to read, that's what makes them useful. But making them as sterile as possible isn't helping anyone.
Arpaci-Dusseau start each chapter with a high level and lighthearted "dialogue". The casual voice works well, warming me up to the author and easing me into the topic. Digging in, the content is still rich/dense while still maintaining a hint of a human voice.
This is exactly what a textbook should be: Dense in information and approachable in voice.
The best book you can ever find on operating systems.It provides great overview while digging into details where ever necessary. Stuffed with humour, reading this book is like watching a YouTube video. I'll probably never get bored of this book no matter how many times I read it.
This book is a great position for introducing a reader into world of low-level, performant design. Yes, it's about operating systems, even if you aren't writing one, you will gain a lot. Especially, if you want to know how to design software to operate efficiently. When reading it, despite knowing a large part of the content, I was pleased with the narrative and the way authors introduced new concepts, like threading (mentioned around 100 page).
Nowadays, with the computation moving to the commodity area (public cloud, PaaS, FaaS) one could think that books like this are no longer needed. After spending sometime in the cloud area, I can tell that it's totally opposite. There's so much to gain from a general knowledge about designing and writing well performing code, and to apply it to the new cloudy era.
Considering all the praise about this book, I expected highly informative content in this textbook. I cannot say that this book is bad, the first parts about CPU and Memory virtualization are quite dense and contain detailed description.
But further I read the worse it was. Concurrency part is somewhat acceptable, but it is very uneven in delivering explanation. It is acceptable, but very boring in the way it reveals information. I got tired of author's puns already and it became a chore to read.
The worst is part about persistence. It tries to be everywhere and arrives nowhere. Skimming over details here and there I felt like reading some magazine and not the book. I am sorry, but this part does not look focused and finished at all, even though I have purchased the 1.00 version.
Don't get attracted by the high rating, I am not sure why it is so high. If you are looking into detailed description of hardware/software interface - look somewhere else. Maybe Hennesy & Patterson or Tanennbaum.
Beware, the hardcover edition might not satisfy your eyes. I have ordered the 1.00 version from LuLu, hardcover edition, and was immensely saddened by the quality. Text is too gray and too small. Font for the source code is too thin and unbearable to look at. Linespacing is very small. Margins on the top and bottom waste so much space.
Сложно поверить, что можно читать учебник по операционными системам и не скрипеть зубами от тяжести изложения. Не сильно теряет в глубине материала, но оставляет за скобками процесс разработки: архитектура, монолитные/микро ядра, модульность, вот это вот всё. Да кто такие эти ваши "кольца защиты" про которые я постоянно слышу, выяснить так и не удалось. Примеры практически полностью разбираются в контексте Linux, ставлю звёздочку в дневник.
Очень вкусно собраны после каждой главы ссылки на источники с пояснениями. Хочется из них собрать отдельный список на "летнее чтение" (осилит его только какой-нибудь graduate student с фуллтайм работой посвященной чтению пейперов).
Неплохой старт, после которого можно прочитать что-нибудь более подробное.
قرأنا نصف الكتاب ضمن مقرر نظم التشغيل 1 ومن المتوقع إكمال نصفه الثاني في نظم 2 من أفضل الكتب التقنية التي قرأتها نظرًا لأسلوب الكاتب. السمات التي أعجبتني: - تدرج رهيب في شرح المعلومة - إيضاح المشكلة التي يحاول الكتاب حلها في بداية كل فصل - الاعتماد على إثارة التساؤل لدى القارئ - مختصر يعرض الجوانب الضرورية فقط
أتطلع حقًا لمتابعة قراءة الكتاب
تحديث يناير 2023 أجل، أنهينا النصف الثاني من الكتاب، تقريبًا ضمن مقرر نظم الحاسوب 2 تحت كود 3306 أعتقد أن الكتاب يصلح لمن يرغب بالقراءة والدراسة بشكل ذاتي عن نظم التشغيل لذات السمات التي ذكرتها أعلاه من المواد الممتعة التي تركز على الناحية النظرية في فهم جميع التفاصيل المتعلقة ببناء وتشغيل نظام حاسوب
Extremely clear. Authors build up to explaining key OS concepts by establishing a strong foundation and providing lots of examples. The chapters go through a trial-and-error process of explanation that I found very helpful. For example, the text will walk through faulty designs of process schedulers and then explain why they wouldn't work. It iteratively improves on it until we reach a good design. Only gripe is that they should include more material on distributed systems.
Best nonfiction book I have ever read. Adds so much value to you as a programmer. Suitable even for those who don't plan to work with os since you gain great insight into what your computer does behind the scenes. It is a must for every IT folk out there.
I picked up a paper copy of this as a review for a graduate-level OS course. While I had taken an undergrad course and have also studied operating systems in my free time, I wanted something to refresh my memory on all of the concepts I might need to know for the course, as well as to fill in any gaps I might have missed. I can say that this is the best text for a high-level comprehensive look at operating systems I've found. While there might be better books for specific operating systems, or ones that go deeper into the implementation details, Operating Systems: Three Easy Pieces is a very easy read that covers all the material one would need to a get a feel for how operating systems work. Compared to the dinosaur book, OSTEP doesn't waste any time getting the reader up to speed, and the text is organized in a thematic way that feels more like a narrative than simply a reference book.
I had no basis in computer science and got huge frustration when I debug some applications. I read this book to understand how applications interact under the hood. The book has 3 parts, each part provides details about 1 pillar of the operating system. Some concepts are easy to absorb and solve exercises such as process, thread, and address spaces in part I. Part II and II are a bit harder to absorb. I got stuck in the concepts of distributed systems and event-based concurrency. I think this book gives me a good base to learn higher concepts.
Great book for new to the subject matter. requires no pre-knowledge. And most importantly, It's free online put as nicely html. Best of it is you can go back any time to check each subject whenever you find unfamiliar concepts. I never really finished the whole book line by line, but did read through the major cpu memory part which personally I think is the key to have a basic understanding for any operating systems.
Absolutely a great book. I highly recommend this book for any undergraduate students. The author covered 4 essential parts of operating systems: Vitualization, Concurrency, Persistence in great detail and a little bit of Distributed systems. After reading this book, I've not only gathered knowledge of operating systems, but also taken a lot of useful tips about software development. I think it would have been even better if I had finished every homework listed after each lesson.
Очень неплохое введение в основные концепции, связанные с ОС. Все темы были для меня боле�� или менее новыми, но проблем с пониманием излагаемого материала не возникало. Книга написана живым и увлекательным языком, скучно не становится даже при обсуждении технически довольно сложных тем. Кроме того, книга отлично структурирована: она разделена на несколько десятков коротких глав, которые хорошо читаются как подряд, так и вразнобой. Отдельно хочется отметить подход к списку литературы. Он приводится по частям, в конце каждой главы. Каждый источник сопровождается комментариями авторов, благодаря которым список ценен и в отрыве от самой книги. Выбор тем для обсуждения, на мой взгляд, несколько... спорный. Книге не удалось убедить меня, что примитивы синхронизации и особенности хранения данных в энергонезависимой памяти являются неотъемлимыми частями ОС. Из-за этого ближе к середине у меня начало возникать ощущение, что повествование несколько теряет фокус. Впрочем, я асболютно точно не эксперт в этой предметной области, могу серьезно ошибаться.
It's a really good overview of the most fundamental parts of an operating system. Starting with virtualization, which isn't about virtual machines, but about running multiple processes preemptively on one computer and emulating an exclusive access to memory for every process, the story goes to concurrency, a sufficiently complicated topic on its own, and persistence, which is "just" about hard disks, file systems, SSDs, RAID; there is even a small part about distributed systems. I really liked the distinction of mechanisms and policies. There is even event-based programming (and STM, although unnamed) with continuations in here; not FRP though, I guess that high-level stuff isn't in an OS. Overall, this is an interesting and deep enough book even if you're not building an OS; lots of useful "background" information for almost any programmer.
Extremely clear presentation of OS material. I was largely using the book as quick primer on OS rather than as a launching pad for in-depth work in systems programming, so I didn't work through most of the exercises. That being said, there was an abundance of them as well as plenty of references to further material for interested people, so there's likely as much depth in this book as you hope to take away from it. Overall, really well put-together book, with great explanations, graphics, and motivations provided throughout.
A great introduction to the daunting topic of operating systems. This book -- freely available from ostep.org -- makes the hairy topics of scheduling, virtual memory, file systems, and so on about as approachable as possible.
I like the overall conversational style, the student-teacher dialogues, and so on. They lighten the load, as it were, and reduce the feeling that one is drinking from a firehose of technical details.
-Simple language to explain complex concepts; read Silberschatz alongside it (tough!) -Concise and succinct, a strength of this book -Humourous and relatable -Free for everyone! -Donated to support the author's work
-I did not find it as comprehensive as Silberschatz, but that could be a good thing
I got a 95% in my OS course (the design/school was easy, I'm not particularly intelligent)
This book is really great if you're coming back to operating systems after quite a while. Easy to follow and the main ideas are broken down to their simplest forms. This book will remove any fear you have of diving deep into the internals of the kernel of a computer system, heck after reading this book you won't be able to look at a computer the same way again.
Ojalá hubiera dispuesto de un libro así cuando me tuve que tragar la asignatura. El enfoque pedagógica y la claridad de la exposición están en otro nivel. Por supuesto tampoco ayudó que mis profesores en su día fueran bastante mediocres.
A very great book on OS with an extremely clear explanation of different pieces of operating system such as Virtualization, Concurrency, and Persistence.
One of the best book for self study , easy read yet helpfull and deliver information , not too much verboosity , I feel really comfort reading it as self study. Also the exercices have hands on tools.
I’m still in the first part of the book and most of my questions on the so called cloud computation are being answered. The book touches the core foundation of how computation system works and coordinates. It’s truly a masterpiece.
Amazing book that offers an insights into how OS works in aspects of durability, concurrency and virtualization. Definitely worth the read even if you are not going to write an OS, you can apply a lot of concepts from book in other areas as well.
Let's be real I'm not actually reading this entire thing. It's actually good though. Books about the intricacies of Operating Systems are kind of like skateboarding in that it attracts cool guys who dress well (me)
This is something that you can read cover-to-cover, enjoy it, and come out with a pretty good understanding of how Operating Systems work from inside. Helped me a lot in all my "lucky" low-level systems interviews.