首页 > 图书中心 >图书详情
操作系统实验教程
作者:刘刚 赵鹏翀 桂浩 武伟 边根庆
定价:25元
印次:1-4
ISBN:9787302328537
出版日期:2013.09.01
印刷日期:2020.01.07
本书结合操作系统原理,分析了一个面向教学的操作系统——EOS操作系统的源代码,并从EOS操作系统中引用了丰富的代码实例,配以大量的图表,一步步地引导读者分析EOS操作系统的源代码。本书与其他操作系统理论书籍最明显的不同是,配有若干个精心设计的实验。读者可以亲自动手完成这些实验,在实践的过程中循序渐进地学习EOS操作系统,进而加深对操作系统原理的理解。 全书共20章,配有12个实验,是一本真正能够引导读者动手实践的书。适合作为高等院校操作系统课程的实践教材,也适合各类程序开发者、爱好者阅读参考。
more >纸上得来终觉浅,绝知此事要恭行。 ——陆游本书特点 众所周知,操作系统原理是计算机知识领域中最核心的组成部分,也是高校计算机科学专业学生的重要基础课。同时,操作系统原理也是一门实践性很强的课程。本书通过引导读者分析一个实际操作系统的源代码,并动手进行相应的实验,进而达到使读者深刻理解操作系统原理的目的。 本书非常适合操作系统原理的初学者使用,能够帮助初学者进行高质量的操作系统实验。本书选取了一个适合初学者学习的操作系统实例——EOS操作系统,使读者能够接触到一个实际操作系统的源代码。本书的第1部分(从第1章到第8章)的主要内容就是结合操作系统的基本原理,与读者一起分析EOS操作系统设计和实现的细节。EOS操作系统还配有一个集成度很高的实验环境——OS Lab,在这个集成实验环境中,读者可以非常轻松地编辑、编译和调试EOS的源代码,从而可以让读者将有限的精力放在学习操作系统原理上,而不是如何构建实验环境,或者使用各种工具上。本书的第2部分(从实验1到实验12)会一步一步地引导读者通过动手实践的方式来分析EOS的源代码,进而理解操作系统原理。 现代操作系统及其抽象已经变得越来越复杂,虽然EOS操作系统是专为教学而设计的,相对于一些商用操作系统(例如Windows、UNIX等)已经是非常简化,但是相信本书的很多读者都是第一次接触到像EOS这样规模的源代码。本书在编写时充分考虑到了这个问题,并做了一些有益的尝试。在本书的开始,首先结合EOS的源代码,带领读者回忆C语言和数据结构的相关知识(第2章),使读者能够顺利地理解EOS的源代码。接下来,简单介绍读者比较感兴趣的EOS操作系统的启动问题(第3章),希望能够激发读者继续学习的兴趣。第4章对EOS所使用的面向对象的管理方法进行必要的讲解。后面的4章依次对EOS中的主要模块进行讨论,与其他优秀操作系统原理教材相同,本书也是按照进程管理、存储器管理、IO管理、文件系统4个部分来进行组织的,方便读者进行对照学习。为了便于理解,EOS操作系统各个模块间的耦合性被设计得尽量小,这样读者在学习某个模块时就更容易集中精力。但是,EOS操作系统作为一个可以在计算机上运行的真实操作系统,其各个模块间的联系又是不可能被忽略的。所以,在本书的各个章节之间也会存在一些交叉的或者重复的内容,有时还会提示读者回到之前的章节学习相关内容,这种“螺旋式”的学习方法可以帮助读者从整体上来理解操作系统原理。 本书另外一个着重点就是让读者真正动手实践。正像本前言开篇处引用的陆游诗句所说,只有通过亲身实践学习到的知识才能够真正被掌握,而那些仅仅从书本上得到的知识更容易被忘记。本书为了让读者在动手实践的过程中达到“做中学”的目的,精心设计了12个配套的实验,可以覆盖操作系统原理知识领域中所有重要的模块和知识点。本书配套的实验按照“由易到难,循序渐进”的原则进行设计。前面的若干个实验以“验证型”练习为主,后面的若干个实验会添加适当的“设计型”和“综合型”练习。在单个实验内容的安排上,一般会首先带领读者阅读并调试EOS相关模块的源代码,并结合相应的操作系统原理进行分析。待读者对EOS的源代码和操作系统原理熟悉后,再安排读者对已有代码进行适当的改写,或者编写新的代码。在每个实验的最后还会提供一些“思考与练习”的题目,感兴趣的读者可以完成这些题目,从而进一步提高动手实践能力和创新能力。此外,考虑到在实际工作中,如果一位刚参加工作的程序员进入了一个项目的开发,项目负责人一定会让他首先阅读项目已有的代码,并在已有代码的基础上进行一些小的修改,待他工作一段时间后,就会对项目有较深入的理解,才能在项目中添加一些复杂的、创新的功能。读者按照本书提供的实验进行实践的过程,与上述过程是完全一致的,这也是本书实验设计的目的之一。 研究表明,图示具有直观、简洁、易于说明事物的客观现状或事件发展过程的特点。在对某一事物或事件进行描述时, 图示往往比文字更容易被读者所理解和接受。所以,笔者在本书中不遗余力地使用各种图示或者表格,力求将枯燥、复杂的操作系统原理,以更直观的方式展现在读者的面前。而且,本书在适当的地方会从EOS源代码中引用一些关键的代码片断,并结合操作系统原理对这些代码片断进行详细讲解,让读者有一种身临其境的真实感。 阅读EOS源代码的建议 相信很多读者一拿到EOS操作系统的源代码,就会怀着极大的好奇心开始如饥似渴地阅读,迫不及待地想将EOS的源代码全部掌握。但是,万事开头难,虽然EOS操作系统的规模比任何一个具有商业价值的软件至少要小上一个数量级,但要想在很短的时间内掌握EOS的所有源代码还是有一些困难。如果读者为自己设定的目标不合理,采用的方法不正确,很可能会在执行失败后产生挫败感,甚至放弃学习。接下来为读者提供一些有益的建议,希望能够帮助读者更顺利地阅读EOS的源代码。 首先,读者应该明确阅读EOS源代码的目的,或者说通过阅读EOS源代码,读者能够学到哪些有用的知识,对读者参加实际工作会有哪些帮助。最重要的目的当然是理解操作系统原理,EOS源代码能够帮助读者将书本上枯燥的理论实例化。虽然读者亲自动手开发一个商业操作系统的可能性很小,但是操作系统所使用的许多思想在计算机科学的各个领域有广泛的适用性,学习操作系统的内部设计理念对于算法设计和实现、构建虚拟环境、网络管理等其他多个领域也非常有用。而且,EOS源代码是精心编写的高质量源代码,无论是代码的组织结构还是代码的编写风格,都是按照商业级的规格来完成的,这些在读者的实际工作中都会有很大的借鉴意义。此外,本书由于篇幅的限制,不可能涉及EOS操作系统的所有内容,幸好源代码就是最完全、最准确的文档,读者通过学习EOS的源代码,能够获得数倍于本书内容的知识。 其次,读者在开始深入分析EOS的源代码之前,还应该完成一些准备工作。EOS的源代码主要使用C语言编写,定义有较多的数据结构,并尽量使用常用的、简单的算法来操作这些数据结构,所以读者需要有比较扎实的C语言程序设计、数据结构和算法的相关知识。如果读者感觉自己在这些方面还比较薄弱,也不用紧张,本书的第2章会帮助读者回忆和巩固这些知识。此外,阅读源代码也是一件相对比较枯燥的事情,读者要对可能遇到的困难有一个正确的认识,并做好心理准备,应该根据实际情况为自己设计一个合理的目标,并保证全身心的、持之以恒的投入。 建议读者将本书作为主线,在阅读每一个章节的同时,阅读相应的EOS源代码,并动手完成各章对应的实验。这样,在本书的帮助下,读者可以有重点的、分模块的详细分析EOS的源代码。在阅读源代码时应该使用一些正确的方法,从而达到事半功倍的效果。已经有专门的书籍详细介绍阅读源代码的方法,本书由于篇幅的限制,在这里只能为读者列举一些快速而有效的方法。 应该首先搞清楚EOS源代码的组织方式。例如,EOS都包含哪些源代码文件,这些源代码文件是如何组织在不同的文件夹中的。这对于读者快速把握EOS的结构有很大帮助。 重视EOS中的数据结构。要搞清楚数据结构中各个域的意义,以及EOS使用这些数据结构定义了哪些重要的变量(特别是全局变量)。EOS操作系统的大部分函数都是在操作由这些数据结构所定义的变量,要搞清楚函数对这些变量进行的操作会产生怎样的结果。 分析函数的层次和调用关系。要特别注意哪些函数是全局函数,哪些函数是模块内部使用的函数。 本书对于特别简单或者特别复杂的函数会一语带过,读者也可以在搞清楚这些函数功能的基础上暂时跳过它们,从而将有限的时间和精力用于学习本书详细介绍的重要函数。 重视阅读源代码文件中的注释,必要时可以根据自己的理解添加一些注释。 使用工具提高阅读源代码的效率(参见2.10节)。 每当阅读完一部分源代码后,应该认真思考,大胆地提出一些问题,例如“为什么要这样编写?可以不可以用别的方法来编写?”。也可以试着向别人介绍自己正在阅读的源代码,或者将自己的心得发布到互联网上。以某种方式表达自己思想的过程,其实就是重新疏理自己知识的过程,这样能够让知识更加系统化,并且有可能发现被忽略掉的细节。 由于EOS操作系统的源代码是完全开放的,所以,读者除了可以完成本书配套的实验之外,还可以自己设计一些小实验,例如对EOS进行一些修改或者添加一些功能来验证读者的想法。 配套资源 为了帮助读者更加顺利地完成操作系统实验,本书提供了OS Lab演示版安装程序以及各个实验所需源代码文件的下载地址。 由于OS Lab会不断推出新版本,所以本书只能使用某一个确定的版本。与本书配套的OS Lab的版本号为v1.0.3,其附带的EOS操作系统的版本号是v1.1。OS Lab演示版安装程序的下载地址如下: http://www.tevation.com/node/17 各个实验所需的源代码文件已经制作成一个压缩包。下载地址如下: http://www.tevation.com/node/16 参与讨论 读者可以使用下面的链接登录本书配套的论坛: http://www.tevation.com/forum 论坛中有和读者一样对操作系统感兴趣的网友,有本书的编者,还有EOS操作系统的开发者。读者在这里提出的问题可以获得及时准确的解答,提出的意见和建议也可以在本书的下一版中获得虚心的接纳。如果本书有勘误信息或者更新的内容,也会在第一时间发布到论坛上。可以说,有一个高效的团队在为本书的读者服务,读者在使用本书学习的过程中可以获得持续的支持! 本书由哈尔滨工程大学刘刚、北京海西慧学科技有限公司赵鹏翀主编,武汉大学桂浩、上海应用技术学院武伟和西安建筑科技大学边根庆任副主编,参编人员包括北京海西慧学科技有限公司刘建成等。 本书有20章,具体编写分工如下: 第1、2、5、8章及实验1、2、3、5、7、10由刘刚编写,第7章及实验4、6、8由赵鹏翀编写,第6章及实验12由桂浩编写,第4章及实验9由武伟编写,第3章及实验11由边根庆编写。全书由刘刚进行统稿。 本书在撰写过程中参阅了大量的文献及资料,特此对这些作者表示诚挚的敬意。 操作系统技术的发展日新月异,新的技术也不断出现。由于时间仓促及作者视野的限制,书中难免出现疏漏不当之处,敬请广大读者批评指正。 刘刚哈尔滨工程大学[]赵鹏翀北京海西慧学科技有限公司
more >