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.
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 ground-breaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. 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 a simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Towards 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
From the Back Cover
The widely anticipated revision of this worldwide best seller incorporates the latest developments in operating systems technologies. Hundreds of pages of new material on a wealth of subjects have been added. This authoritative, example-based reference offers practical, hands-on information in constructing and understanding modern operating systems. Continued in this second edition are the "big picture" concepts, presented in the clear and entertaining style that only Andrew S. Tanenbaum can provide. Tanenbaum's long experience as the designer or co-designer of three operating systems brings a knowledge of the subject and wealth of practical detail that few other books can match.
- NEW―New chapters on computer security, multimedia operating systems, and multiple processor systems.
- NEW―Extensive coverage of Linux, UNIX®, and Windows 2000™ as examples.
- NEW―Now includes coverage of graphical user interfaces, multiprocessor operating systems, trusted systems, viruses, network terminals, CD-ROM file systems, power management on laptops, RAID, soft timers, stable storage, fair-share scheduling, three-level scheduling, and new paging algorithms.
- NEW―Most chapters have a new section on current research on the chapter's topic.
- NEW―Focus on single-processor computer systems; a new book for a follow-up course on distributed systems is also available from Prentice Hall.
- NEW―Over 200 references to books and papers published since the first edition.
- NEW―The Web site for this book contains PowerPoint slides, simulators, figures in various formats, and other teaching aids.