Modern Operating Systems

Modern Operating Systems
复制标题

DOI:
--
复制
发表时间:
1992
期刊:
--
影响因子:
--
通讯作者:
A. Tanenbaum
A. Tanenbaum
中科院分区:
其他
文献类型:
--
作者:
A. Tanenbaum

文献摘要

被引文献

相似文献

对于软件开发专业人员和计算机科学专业的学生,现代操作系统提供了操作系统设计的坚实的概念性概述,包括Unix/Linux和Windows 2000的详细案例研究。是什么让操作系统变得现代?根据作者Andrew Tanenbaum的说法,这是对高需求计算机应用程序的认识--主要是在多媒体、并行和分布式计算以及安全领域。更快、更先进的硬件的发展推动了软件的进步,包括对操作系统的改进。在现有硬件上运行旧操作系统是一回事,有效利用现有硬件最好地服务于现代软件应用程序是另一回事。如果你不相信,可以在一台现代的个人电脑上安装Windows 3.0,然后尝试上网或刻录CD。熟悉Tanenbaum以前的文章《操作系统》的读者都知道,作者是简单设计和动手实验的伟大支持者。他之前的书捆绑了一个名为Minux的操作系统的源代码,Minux是Unix的一个简单变体,Linus Torvalds使用这个平台来开发Linux。虽然这本书没有附带任何源代码,但他用代码片段(C,通常是Unix系统调用)说明了他的许多观点。《现代操作系统》的前半部分关注传统的操作系统概念:进程、死锁、内存管理、I/O和文件系统。这些早期的章节没有什么突破性的东西,但所有的主题都被很好地涵盖了,每个主题都包括关于当前研究的部分和一组学生问题。阅读Tanenbaum对过去操作系统专家所做的设计决策的解释是有启发性的,包括他的观点,即对死锁问题进行额外的研究是不切实际的,除非“让原本失业的图论专家远离街道”。这本书的后半部分将自己与较旧的操作系统文本区分开来。在这里,每一章都描述了构成现代操作系统的一个要素--对多媒体应用程序、多处理器、计算机网络和高安全级别的认识。有关多媒体功能的章节重点介绍了处理海量文件和提供视频点播等功能。在多处理器平台的讨论中包括集群计算机和分布式计算。最后,讨论了安全的重要性--生动地列举了操作系统容易受到攻击的数十种方式,从密码安全到计算机病毒和互联网蠕虫。本书最后包括两个流行操作系统的案例研究:Unix/Linux和Windows2000。人们倾向于Unix/Linux方法,考虑到作者的经验和学术倾向,这并不令人惊讶,但这种偏见并不影响Tanenbaum的分析。对这两种操作系统进行了剖析,描述了每种操作系统如何实现进程、文件系统、内存管理和其他操作系统基础。Tanenbaum的口头禅是简单易用的操作系统设计。鉴于现代操作系统具有广泛的功能,他被迫在物理大小和简洁性之间进行协调。为此,他经常参考Frederick Brooks的经典著作《神话中的人月》,以获取管理大型、复杂的软件开发项目的智慧。他发现Windows 2000和Unix/Linux都因为过于复杂而感到内疚--特别是对Windows 2000及其“庞大的Win32 API”的歪曲。一个主要的罪魁祸首是试图让操作系统变得更“用户友好”,Tanenbaum认为这是代码臃肿的借口。解决方案是拥有聪明的人员,尽可能小的团队,以及各种操作系统组件之间定义良好的交互。如果将本书中的建议牢记于心,未来的操作系统设计将会受益。--皮特·奥斯滕森
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