
The widely anticipated revision of this worldwide best-seller incorporates the latest developments in operating systems technologies. The Third Edition includes up-to-date materials on relevant operating systems such as Linux, Windows, and embedded real-time and multimedia systems. Includes new and updated coverage of multimedia operating systems, multiprocessors, virtual machines, and antivirus software. Covers internal workings of Windows Vista (Ch. 11); unique even for current publications. Provides information on current research based Tanenbaum’s experiences as an operating systems researcher. A useful reference for programmers.
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
List Price: $ 160.00
Price: $ 118.84
OS concepts, vocabulary, and details for professionals,
Tanenbaum’s book is a thorough yet accessible introduction to the design and implementation of modern operating systems. This second edition explains the trade-offs developers must make and shows readers how OS’ have matured since the 1960s. Knowledge of programming in C is helpful, especially if the reader wishes to complete the exercises following each chapter. I gave the book five stars for its content, delivery, and humor, all of which helped me learn a difficult subject in an enjoyable manner.
“Modern Operating Systems, 2nd Ed” (MOS:2E) is very well-written, which may surprise those who suffer while reading other hardcover college texts. The book introduces problems facing developers, then helps the reader understand both simple and complex ways to address these issues. Tanenbaum’s style is lively and informative, like the cover of his books. He appears knowledgeable and opinionated — especially concerning problems with the Windows OS — but he can back up his assertions.
The best features of MOS:2E are found in chapters ten and eleven. Here Tanenbaum illuminates UNIX and Microsoft Windows 2000, respectively, building upon the material found in the previous nine chapters. He gives real reasons why Windows suffers security problems, such as internal complexity, code bloat, and design choices. UNIX is also critically evaluated, but stands up better to Tanenbaum’s scrutiny.
I don’t recommend computer novices read MOS:2E. One needs a certain amount of interest and motivation to digest this material, and Tanenbaum’s explanations of some concepts did not seem sufficient. However, after having finished this 900 page tome, I feel more comfortable reading about design issues for the Linux kernel or the FreeBSD scheduler. If you’re looking to learn the how and why of operating system design and implementation, I strongly recommend MOS:2E.
Was this review helpful to you?
|my favorite Computer Science book,
Just finished my bachelor’s degree in Computer Science and looking back this is hands down the best, most readable textbook I had in college. It has a proud place on my book shelf. I can’t claim to have read the *entire* book (though I was supposed to), but I read quite a lot of it and it was fascinating.
Tanenbaum covers the material in depth, but he has a relaxed, entertaining writing style that is engaging and amazingly easy to follow considering the weighty material. There are undoubtedly occasional mistakes, but unlike other books with more obtuse, “I am smarter than you” writing styles, you’re actually awake enough to spot the mistakes when they show up. I don’t ever remember being baffled by any mistakes. After reading the reviews by this book’s few detractors, all I can do is shrug my shoulders and say that I loved it and that every classmate I talked to (including two roommates) wholeheartedly agreed.
By the way, I concur with an earlier reviewer in highly encouraging readers to read the case studies of Unix/Linux and Windows 2000 in chapters 10 & 11… fascinating stuff.
Was this review helpful to you?
|Superb book on Operating Systems,
I think this book is a great book on OS. It’s easy to read (don’t forget Tanenbaum humor
), it explains difficult issues using simple analogies and is certainly an up-to-date book on the field.
It has one chapter covering Unix (and Linux) and another one for Windows 2000, two of the more important Operating Systems well explained here.
The Chapter on processes and threads is great. It really clarifies the difference between processes and threads.
Although I found the book as easy to read as it can get, I must admit that I had litle bit of a hard time reading that Memory Chapter. I’d prefer it didn’t had so many algoritms. I shorter chapter would probably be better, at least for me
.
It also has a chapter on security, a must have nowdays. If you are a first-time learner on Operating Systems I think this is the one.
Was this review helpful to you?
|