出版时间:2010-6 出版社:清华大学出版社 作者:斯图尔特 页数:457
Tag标签:无
前言
在20年前,当我在研究生院时,就已萌生了写这本书的想法。1986年夏天,在David Cohen博士的指导下,一群学生在一起进行高级操作系统的学习讨论。开始时,我们想要编写操作系统,但很快我们的重点发生了转移,最后决定编写操作系统的教科书。正如事情经常发生的情况一样,我们几乎没有实现我们的初衷。然而,通过这种方式,我们对关于如何组织操作系统的教材进行了许多富有成果的讨论,通过扩展,也找到了如何进行操作系统教学的方法。这些想法与多年讲授操作系统课程的实践相结合,使我看到,讲授操作系统有几种不同的做法。同时也使我认识到现有的课本都没有真正提供这种灵活性,使教师可以根据自己的需求来讲授操作系统这门课程。编写本书的动机就是为每位教师提供这种灵活性。组织本书主要包括七个主题,首先介绍操作系统的重要历史、结构和组织、系统调用和引导。在此之后,较深入地分析了操作系统的主要功能:进程、存储、I/O设备和文件系统。最后两个主题是安全性和分布式系统。首先介绍的五个主题依次在前四章中进行介绍,每一章都从多个视角分析相关的主题。第l章依次介绍了与资源管理相关的基本原理。在这些章中,我介绍了相关的问题以及为了解决这些问题所使用的一些标准技术。在某些情况下,着重基本原理的章节也包括相关问题的讨论。例如,在第5章中的互斥和死锁主题是与进程管理一起进行讨论的,因为这两个主题都与进程问通信相关。第2章依次概括性地介绍了操作系统的历史和目前的操作系统。9个操作系统的示例集合主要包括:CISS、Multics、RT-11、第6版LINIX、4.3BSD、VMS、WindowsNT、FinyOS和Xen。之所以重点研究这些操作系统,主要着眼点在于要以高层次的方式来研究这些操作系统的开发者如何将提供的标准技术转化为实践。在第3章和第4章的每个小节中,更深层次地研究实现的细节。在第3章中选取了Inferno中的部分代码进行讨论,在第4章中选取了Linux中的部分代码进行讨论。但是,在第21章和第22章中,并没有采用前面的这种模式。这两章分别讨论了安全性和分布式系统。因为这两个主题的每一个主题都可以写成一本书,所以必须选择性地讨论这两个主题。这两章只介绍了一些有代表性的技术。在第2l章中,也讨论了更受限的示例集来说明如何应用安全技术。在附录A中介绍了如何创建宿主Infer-110的内核镜像。为了完成修改Inferno内核这样的任务,创建镜像就是解决方案的一部分。以这种方式创建的内核镜像可以像应用程序一样运行在现有的主机操作系统之上。附录B教给用户如何创建本地的Inferno内核。特别是提供了用于x86PC上创建启动盘镜像的必要步骤。这个镜像可以写入到软盘或者用于创建启动CD-ROM。
内容概要
本书的内容主要包括7个主题:操作系统简介、进程、存储器、I/O设备、文件系统、操作系统安全和分布式操作系统。每一部分都从多个视角分析了主题的基本原理、应用分析、详细设计,以及Inferno和Linux的实现。在详细讨论Inferno和Linux的这些章节中,主要侧重与内核中相对较小的一部分,这些部分用于说明在原理章节中涉及的技术与原理。书中介绍的每个函数都分成了小段,然后以更详细的方式描述这些小段。这样就能详细地学习独特内核的一些关键内容。本书除了基本的原理之外,还重点介绍了9个操作系统CTSS、Multics、RT-11、第6版UNIX、4.3BSD、VMS、Windows NT、TinyOS和Xen。这些示例操作系统,作为主线贯穿整本书。通过重点研究这些操作系统示例,从高层次的方式来研究操作系统的开发者如何将标准技术转化为实践。从而在实践的基础上再次提升理论。使理论和实践再次相互印证。 另外值得强调的是这本书的适用性,它为需要深入研究Linux或者Inferno内部结构的专业人员提供了大量的、翔实的、来自真实世界的代码,也为初学者提供了从浅入深、循序渐进学习操作系统原理的丰富实例。本书既可以用于普通操作系统的学习,也可以作为高级操作系统的教材。同时这本书每章之后都有印证所学内容的大量、有趣的练习。要求学生自己动手来建立自己的Inferno和Linux。
作者简介
作者:(美国)斯图尔特(Brian L.Stuart) 译者:葛秀慧 田浩 刘展威 等
书籍目录
第1章 操作系统简介 第2章 操作系统示例 第3章 Inferno的结构与初始化 第4章 Linux的结构与初始化 第5章 进程管理原理 第6章 进程管理示例 第7章 Inferno中的进程管理 第8章 Linux中的进程管理 第9章 存储管理原理 第10章 存储管理示例 第11章 Inferno中的存储管理第12章 Linux中的存储管理 第13章 I/O设备管理原理 第14章 I/O设备管理示例 第15章 Inferno中的I/O设备 第16章 Linux中的I/O设备 第17章 文件系统原理 第18章 文件系统示例 第19章 Inferno中的文件系统 第20章 Linux中的文件系统 第21章 操作系统安全原理 第22章 分布式系统原理 附录A 编译宿主Inferno 附录B 编译本地Inferno
章节摘录
插图:在很多情况下,我们会发现自己正在复制大量的内存。UNIX的f-0rk(1系统调用就是这种复制的一个很好的例子,当它创建子进程时,子进程就是父进程的副本。最新的系统实现这种复制都使用一种称为写时复制(copyonwrite)技术。它不是制作父进程内存空间的第二个副本,而是成立内存管理单元来将子进程的虚拟存储空间映射到与父进程相同的物理内存。但是,对于父进程和子进程,我们都将所有内存标记为只读。因此,任何来自父进程或子进程的写都会引发来自MMD的写保护错误。对于页或段,当我们得到读/写这样的中断时,我们会制作新副本并将新副本映射到子进程的内存空间。两个副本都被标记为读/写,并且指令使用中断继续。净效应是,我们只复制了那些最终被写入的页。9.6.7 性能问题内存空间大于物理内存的错觉并不是免费的。如果我们选择分配和替换策略不当,系统的性能会受到很大影响。此外,许多过渡分配技术都有潜在的陷阱,这些陷阱也可以影响性能。本节介绍在实现这些技术时,我们面临的一些更基本的问题。
编辑推荐
《操作系统原理、设计与应用》是世界著名计算机教材精选。
图书封面
图书标签Tags
无
评论、评分、阅读与下载