Jump to ratings and reviews
Rate this book

Modern Operating Systems

Rate this book
For software development professionals and computer science students, Modern Operating Systems gives a solid conceptual overview of operating system design, including detailed case studies of Unix/Linux and Windows 2000.

What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD.

Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls).

The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets."

It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms.

Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals.

Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson

960 pages, Hardcover

First published January 1, 1992

288 people are currently reading
4538 people want to read

About the author

Andrew S. Tanenbaum

51 books319 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
936 (42%)
4 stars
763 (35%)
3 stars
380 (17%)
2 stars
68 (3%)
1 star
33 (1%)
Displaying 1 - 30 of 72 reviews
Profile Image for Rasmus.
6 reviews3 followers
November 28, 2016
Very strict and stale structures in the language and disposition. Read Three Easy Pieces instead, much easier to read and more pedagogical while delivering the same content (:
Profile Image for Steve.
635 reviews5 followers
January 4, 2013
I really sunk my teeth into this book in an attempt to understand the years of computing that had come and gone before I began my entry into Computer Sciences. When it comes to understanding the core components of a computer system, there's no better place to begin learning. The illustrations used in the book are a bit dated and unnecessary, but this book should remain useful for some time to come.
Profile Image for Hawk.
24 reviews37 followers
May 7, 2014
Despite the massively dorky cover, this is an incredible book. I was assigned this book as textbook used in Computer Science 440 at Allegheny College, and while we did not read the entire book during that class, I intend to read it cover-to-cover this summer. Tanenbaum's clever, slightly witty writing style makes "Modern Operating Systems" a surprisingly engaging read for a textbook, and he's really adept at explaining concepts in OS theory and design in a very simple way that makes them quite easy to pick up. The figures, while simple, are clear, easy to understand, and very frequent. Code snippets, written in C, are also frequent, well-commented, and easy to understand. These factors all make this book a much better operating systems text than some others I could mention.

Furthermore, although some references are a bit dated*, this book covers or at least summarizes a lot of concepts which have become big recently, such as distributed systems and cloud computing, multiprocessing and concurrency, virtualization, security and data assurance, and issues related to mobile devices -- it's not just a tour of POSIX, unlike some other texts.

Tanenbaum explains not only how modern operating systems work, but why -- the history of the machines, people, and ideas that created the OS ecosystem we see today. He's obviously an expert in his field, as evidenced by his work on Minix, and the book conveys a lot of his theories and ideas, many of which are arguably light-years ahead of those used in the operating systems we tend to actually use on a day-to-day basis. After reading his book, one tends to see a lot of room for improvement in the OSes they use.

It's really important, I think, for all programmers, not just systems programmers, to have a clear understanding of how operating systems work and how their code interacts with the OS. Even if you're a web developer, web servers and browsers have to interact with an OS at some point**. Understanding how operating systems work and how they are designed is vital to writing good, efficient, and elegant software. While I'd definitely recommend this book to computer science professors over other similar textbooks, I'd also plug it to any pretty much any developer, programmer, or computer scientist who wants to improve their understanding of operating systems.




* Which is to be expected for pretty much any computer science text...
** More frequently than you'd imagine, in fact!
Profile Image for Alexander Yakushev.
49 reviews37 followers
July 10, 2016
The greatest book on operating systems by far. It combines plenty of information, flawless concise delivery, and useful exercises. This is one of the books that packs loads of technical details but reads as fiction. The content is structured very well, whatever questions arise during reading are usually answered on the following few pages. Questions that have no answers yet are also given, thus engaging the reader and once again ensuring that the reader follows the book closely. All in all, this is pure classics and recommended to everyone in the software industry.
Profile Image for Swavy.
2 reviews
Currently reading
February 23, 2012
Fu*k this book, who would read this if he didn't have to?
Profile Image for Vikas Yadav.
1 review
November 18, 2023
This is the only book I recommend if you want to learn operating systems in general.
Consider it like a bible. One of the most amazing books I have read in my life.
Profile Image for Pablo.
Author 1 book43 followers
October 16, 2020
I'm so glad highly detailed books such as this are still being written. Thank you Tanenbaum and Bos. This book is good and it would be hard to learn everything it teaches in such a concise form (except maybe from Operating Systems Design and Implementation, also written by Andrew S. Tanenbaum).

Unlike Operating Systems Design and Implementation, this book is much more theoretical, more prose, less code. This is neither good or bad, it depends on what you want.

The examples of real world usage in the book feel odd. For example in scheduling it says that on desktop computers it doesn't matter too much because people do one thing at a time whereas in reality I have tens of windows showing me stuff and my computer has hundreds of processes just to be in an idle no-activity state. As far as I know, the scheduling algorithms then are correct, it's just the real world application that feel at best stuck in 90s, at worst designed for people that have never touched a computer.

The other thing that I found surprising this book would _get wrong_ is the line between Linux and the rest of a Linux distribution. Linux is just the kernel, the rest is other projects, with their own names, a lot of it coming from GNU which is why some people advocate for the GNU/Linux name.
Profile Image for Jon Swanson.
80 reviews5 followers
April 4, 2012
A good solid explanation of operating systems, but a little disjointed.

I read this book not long after finishing TCP/IP illustrated by Stevens, so my memories are probably a little harsher than they would be otherwise. The book does a good job of outlining the basic components of an operating system, and how it works.

With excellent tech books, I feel like i have not only been taught the facts of a technology, but why the technology was built the way it was. That I remember many of the nitty gritty details because I know what the implementers were thinking at design time, and why they made the choices that they did.

It's much harder to do this in a book on a subject as wide as 'Operating Systems' than on the TCP/IP stack, but I felt like 'Modern Operating Systems' missed this part of tech writing entirely.

It's a competent book, and the facts are clearly stated. Just not in an overly interesting, or enlightening, way.
Profile Image for Saman Nourkhalaj.
28 reviews18 followers
February 5, 2018
به جرات می‌تونم بگم یکی از حیاتی‌ترین کتاب‌های موجوده برای هرکسی که به هرنحوی توی حوزه‌ی کامپیوتر درگیره. درک و دیدگاهی که این کتاب از سیستم‌عامل میده فوق‌العاده‌س. مفاهیم رو برای شروع به اندازه گفته، نه بیش از اندازه سطحی و حوصله‌سربر نه اونقدر پیچیده که غیرقابل فهم و گیج‌کننده باشه.
یکی دو مورد اشتباه توی الگوریتم‌هاش وجود داره که به نظرم قابل اغماضه.
نثر کتاب روانه و تنن‌بام طنز ظریفش رو هرازگاهی لا به لای مفاهیم جا داده.
یکی از اتفاقاتی که این کتاب رو برام ارزشمند‌تر کرد پاورقی یکی از صفحات بود که نوشته بود : در این کتاب هر جا از he استفاده شده منظور هم he است هم she.
Profile Image for Andor Polgár.
9 reviews1 follower
March 15, 2023
When I was a kid, I was really into computers. Like, really into them. After I published my first website in 2002, my next big goal was to create my own operating system. That's when I found this book that totally changed my life. The book was incredibly inspiring and motivated me to pursue a career in this field. I credit this book with setting me on the path to where I am today.
16 reviews
April 4, 2017
A very good OS introduction, the first 500 pages are must-read for everyone. Later in the book it gets a bit boring, and the information is not that valuable. Also it is talked too much about the history, and that is getting annoying, so that's why I can't give it 5 stars.
4 reviews1 follower
January 18, 2019
This is one of the most important fundamental books that explains operating systems basics and that should be read by every engineer in their career. Stunning author's style mixed with great professional humor won't leave you indifferent!
Profile Image for Ebrahim.
13 reviews7 followers
Read
June 28, 2010
this is really a good book about operating system technology, it make depth view to Minix, and good description about IPC.
Profile Image for Leo.
5 reviews1 follower
June 24, 2021
informative to the history of computers today. has a lot of ways to secure using RAID system and is overall a very informative book
Profile Image for Didier "Dirac Ghost" Gaulin.
102 reviews25 followers
October 20, 2022
I oscillate between 3 and 4 stars over this one; Between a fun read but a rather disjointed one. Many books on operating system starts with the file system to allow one to play with the operating system in question and gain an intuition for the system at work. Since this book is very general, it starts with processes and goes from fundamental concept to other fundamental concept, but certain topics requires others to be understood at least in concept and parts prior to going in to details. None of the algorithms are explained in a formal way which is pleasant for the reader, but not necessarily for technical comprehension. Some rather important piece of information are not highlighted, for example, the interrupt handler software set of processes, which in my opinion should have been incased so that the reader has an hint of its technical importance. Overall, I would recommend this book as a great starter and I found the chapters on processes, memory management and file systems and I/O to be particularly good as introductions to the topics.
Profile Image for Pierfrancesco Aiello.
65 reviews9 followers
August 7, 2020
It was (read years ago, just identified on the site) a not too deep overview on all the major components and problems that an operative system had to solve. Particularly interesting was the secuding of processes or also the management of memory to avoid trashing.

As a "more than an overview" start, I found it pretty well done. Sometimes there were parts that were hard to read because not so appealing, but still well done.
Profile Image for Nemantro.
43 reviews1 follower
December 20, 2017
The bible of Operating Systems. One of the most comprehensive books about computer science fundamentals.
Profile Image for Gloria Marcano Cerisano.
74 reviews12 followers
April 18, 2018
This is my IT-600 book, it was good read but it was too long. But had to read in order for me to get my MBS.
Profile Image for Rod.
5 reviews5 followers
November 23, 2018
I needed to read only half of it. It's an easy read for a myriad of complex subjects. Recommended for a broad introduction to operating systems.
Profile Image for Jahongir Rahmonov.
50 reviews16 followers
July 9, 2019
Good and interesting book. At the same time, a hard book. Thus, I decided that I would take a course on operating systems rather than reading all of it.
Profile Image for Nathan Brodsky.
15 reviews13 followers
September 12, 2019
For a software engineer of any level, this book has a lot of great ideas to make your code more readable and maintainable. I wish I had discovered it earlier.
96 reviews3 followers
August 4, 2022
At this point MOS is pretty basic but still covers essential material++ in Tanenbaum's clear and pleasant way. I still pull this off the shelf regularly.
1 review
August 11, 2022
It is a nice book to learn and search more things about Operating Systems.
Displaying 1 - 30 of 72 reviews

Can't find what you're looking for?

Get help and learn more about the design.