自己动手写操作系统[按需印刷]
基本信息
编辑推荐
优秀国内原创图书!本书用丰富的实例代码,一步一步地指导读者用C语言和汇编语言编写出一个具备操作系统基本功能的操作系统框架,不同于其他的理论型书籍,本书提供给读者一个动手实践的路线图。用理论指导动手实践,用实践深化理解理论!
内容简介回到顶部↑
目录回到顶部↑
第1章 马上动手写一个最小的“操作系统” 1
1.1 准备工作 1
1.2 10分钟完成的操作系统 1
1.3 boot sector 3
1.4 代码解释 3
1.5 水面下的冰山 5
1.6 回顾 6
第2章 搭建你的工作环境 7
2.1 虚拟计算机(virtual pc) 7
2.1.1 virtual pc初体验 8
2.1.2 创建你的第一个virtual pc 9
2.1.3 虚拟软盘研究 12
2.1.4 虚拟软盘实战 14
2.2 编译器(nasm & gcc) 18
2.3 安装虚拟linux 19
2.4 在虚拟linux上访问windows文件夹 26
2.5 安装虚拟pcdos 26
2.6 其他要素 29
2.7 bochs 29
2.7.1 bochs vs. virtual pc vs. vmware 30
1.1 准备工作 1
1.2 10分钟完成的操作系统 1
1.3 boot sector 3
1.4 代码解释 3
1.5 水面下的冰山 5
1.6 回顾 6
第2章 搭建你的工作环境 7
2.1 虚拟计算机(virtual pc) 7
2.1.1 virtual pc初体验 8
2.1.2 创建你的第一个virtual pc 9
2.1.3 虚拟软盘研究 12
2.1.4 虚拟软盘实战 14
2.2 编译器(nasm & gcc) 18
2.3 安装虚拟linux 19
2.4 在虚拟linux上访问windows文件夹 26
2.5 安装虚拟pcdos 26
2.6 其他要素 29
2.7 bochs 29
2.7.1 bochs vs. virtual pc vs. vmware 30
译者序回到顶部↑
你是否有过这样的经历,有一天你兴致勃勃买来一堆菜谱想学厨艺,翻开之后却发现自己根本没见过那些材料的名字,也不知道什么叫文火什么叫武火,什么叫上浆什么叫勾芡。而菜谱里根本没告诉你!你扔掉菜谱,垂头丧气,从此对厨艺失去兴趣。
你也可能会有这样的经历,当你在计算机课上学完了一堆C语言语法,想要大展身手实践一番的时候,突然发现你居然不知道源代码应该敲到哪里,是Word还是NotePad?
很多计算机自学者可能有过这样的经历,由于不知道如何跟踪调试,在辛辛苦苦编写的程序得不出正确的结果时,要么束手无策,要么用打印语句输出很多东西,费时费力,而教科书根本没教你这些操作的细节。
有可能在这些教科书作者的眼里,操作的细节不属于课程的一部分,或者这些细节看上去太容易,根本不值一提,甚至作者认为这些属于所谓“经验”的一部分,约定俗成是由学习者本人去摸索出来的。但是实际情况恰恰是,这些书中忽略掉的内容可能占去了一个初学者大部分的时间,甚至因此影响了学习的热情。
学C语言是很容易找到老师的,你会被详细地告知IDE是什么,以及如何使用。但是学习操作系统呢?你会发现绝大多数操作系统书籍都只讲原理,讲各种各样的算法和策略。如果是为了考试,你将内容背下来,最后可能得一个高分;如果是出于兴趣,怕是读了没几页就感到索然无味了。你或许的确能找到极少数的书籍告诉你怎样去写,比如Andrew S. Tanenbaum和Albert S. Woodhull的《操作系统:设计与实现》,但是两位先生还是没能告诉你从哪里开始。你还是不得不在一开始的时候在浩瀚的因特网上搜索一个BootSector的写法。
你或许听说过张五常,他为了研究经济学问题亲自跑到大街上去卖橘子,后来写成了著名的《卖橘者言》,成为了实证经济学的典范。他没有仅仅躲在房子里研究,因为他相信通过实践得来的经验才最可靠、最深刻的。我想他真的是一个喜欢追根究底的人。
你可能也喜欢探求问题的本质,想了解事情的各个细节。面对神奇的计算机世界,很想知道为什么打开电源,电脑屏幕上就能出现这样色彩斑斓的图像,很想知道操作系统理论书籍中讲到的进程管理到底怎样实现,很想知道DOS和Windows到底有什么本质上的区别,想知道怎样才能像那些伟大的黑客一样参与修改Linux的源代码。是的,我就是这样一个喜欢探求本质的人,对这一切怀有极大的兴趣,于是我想写一个自己的操作系统,因为我知道只有通过自己动手,才能对它有真正深刻的了解。经过一段时间的努力,我终于完成了一个雏形。回头想想,很庆幸自己能克服困难走了过来。同时,我在网上了解到还有很多朋友也在写自己的操作系统,也遇到了许多困难。为了跟大家分享其中的经验,让后来者不至于走同样的弯路,我把自己的开发过程记录下来,希望能为初学者们做参考。
本书有幸得到国内操作系统方面的研究权威、上海交通大学尤晋元教授的审校和指点,在此我要表示最真心的敬意和最诚挚的感谢!
在本书的写作过程中,我也有幸得到了许多人的帮助。在我遇到一些未曾预料的困难和变故时,得到了电子工业出版社的张毅编辑以及《程序员》杂志社的孟岩先生的理解、宽容和支持,在这里,我要对你们表示衷心的感谢!
我同样想把感谢献给朱风明、郝慎水、包立光、李雷、郭洪桥和张璐。在整个过程中,你们都在方法上、精神上和物质上给予我巨大而无私的帮助。没有你们的付出,我不可能完成这项工作。
我还要感谢我的家人,爷爷、爸爸和妈妈,你们的爱和关怀是本书得以完成的保障。
要列出所有帮助过我的人的名字是不可能的,因为有些困难是通过因特网解决的,我甚至不知道他们的名字。在此,谨向他们一并表示感谢!
最后,以下面四句诗与读者共勉:
在你立足处深挖下去,
就会有泉水涌出!
别管蒙昧者们叫嚷:
“下面永远是地狱!”
——尼采
于渊
审校者的话
你也可能会有这样的经历,当你在计算机课上学完了一堆C语言语法,想要大展身手实践一番的时候,突然发现你居然不知道源代码应该敲到哪里,是Word还是NotePad?
很多计算机自学者可能有过这样的经历,由于不知道如何跟踪调试,在辛辛苦苦编写的程序得不出正确的结果时,要么束手无策,要么用打印语句输出很多东西,费时费力,而教科书根本没教你这些操作的细节。
有可能在这些教科书作者的眼里,操作的细节不属于课程的一部分,或者这些细节看上去太容易,根本不值一提,甚至作者认为这些属于所谓“经验”的一部分,约定俗成是由学习者本人去摸索出来的。但是实际情况恰恰是,这些书中忽略掉的内容可能占去了一个初学者大部分的时间,甚至因此影响了学习的热情。
学C语言是很容易找到老师的,你会被详细地告知IDE是什么,以及如何使用。但是学习操作系统呢?你会发现绝大多数操作系统书籍都只讲原理,讲各种各样的算法和策略。如果是为了考试,你将内容背下来,最后可能得一个高分;如果是出于兴趣,怕是读了没几页就感到索然无味了。你或许的确能找到极少数的书籍告诉你怎样去写,比如Andrew S. Tanenbaum和Albert S. Woodhull的《操作系统:设计与实现》,但是两位先生还是没能告诉你从哪里开始。你还是不得不在一开始的时候在浩瀚的因特网上搜索一个BootSector的写法。
你或许听说过张五常,他为了研究经济学问题亲自跑到大街上去卖橘子,后来写成了著名的《卖橘者言》,成为了实证经济学的典范。他没有仅仅躲在房子里研究,因为他相信通过实践得来的经验才最可靠、最深刻的。我想他真的是一个喜欢追根究底的人。
你可能也喜欢探求问题的本质,想了解事情的各个细节。面对神奇的计算机世界,很想知道为什么打开电源,电脑屏幕上就能出现这样色彩斑斓的图像,很想知道操作系统理论书籍中讲到的进程管理到底怎样实现,很想知道DOS和Windows到底有什么本质上的区别,想知道怎样才能像那些伟大的黑客一样参与修改Linux的源代码。是的,我就是这样一个喜欢探求本质的人,对这一切怀有极大的兴趣,于是我想写一个自己的操作系统,因为我知道只有通过自己动手,才能对它有真正深刻的了解。经过一段时间的努力,我终于完成了一个雏形。回头想想,很庆幸自己能克服困难走了过来。同时,我在网上了解到还有很多朋友也在写自己的操作系统,也遇到了许多困难。为了跟大家分享其中的经验,让后来者不至于走同样的弯路,我把自己的开发过程记录下来,希望能为初学者们做参考。
本书有幸得到国内操作系统方面的研究权威、上海交通大学尤晋元教授的审校和指点,在此我要表示最真心的敬意和最诚挚的感谢!
在本书的写作过程中,我也有幸得到了许多人的帮助。在我遇到一些未曾预料的困难和变故时,得到了电子工业出版社的张毅编辑以及《程序员》杂志社的孟岩先生的理解、宽容和支持,在这里,我要对你们表示衷心的感谢!
我同样想把感谢献给朱风明、郝慎水、包立光、李雷、郭洪桥和张璐。在整个过程中,你们都在方法上、精神上和物质上给予我巨大而无私的帮助。没有你们的付出,我不可能完成这项工作。
我还要感谢我的家人,爷爷、爸爸和妈妈,你们的爱和关怀是本书得以完成的保障。
要列出所有帮助过我的人的名字是不可能的,因为有些困难是通过因特网解决的,我甚至不知道他们的名字。在此,谨向他们一并表示感谢!
最后,以下面四句诗与读者共勉:
在你立足处深挖下去,
就会有泉水涌出!
别管蒙昧者们叫嚷:
“下面永远是地狱!”
——尼采
于渊
审校者的话
序言回到顶部↑
一年多以前,电子工业出版社的张毅编辑告诉我说,有一位年轻的程序员,正在写一本《自己动手写操作系统》的书。知道这个消息,我既有点好奇,又有些担忧。如果是在十年前,这样题材的书将会是读者争相传阅的对象,毕竟20世纪90年代是软件的理想主义年代。但是在理想褪尽、实务未兴的尴尬的这两年,这样一本书在市场上究竟会遇到怎样的待遇,确实让人不敢乐观。不过,在阅读了样章之后,我深为作者清新的文笔、流畅的思路和扎实的技术功底所折服,于是请张毅为我引见了这位作者,即本书的作者于渊。
于渊非常年轻,却有着高人一筹的表达能力和技术视野,我觉得他是难得的技术写作人才,就鼓励他在《程序员》杂志开辟了一个技术专栏,专门剖析操作系统相关的技术。一年来这个专栏陆续发表了一系列文章,获得了不少读者的正面反馈。
然而,事实证明,我最初的担忧并不是没有道理的。一年多来,不断有人表达过他们对这样一个题材的不同看法。他们认为,相对于90年代中后期,现在的软件产业已经务实了很多,今天的程序员更关心的是如何尽可能快、尽可能简单地用软件解决实际问题,创造实际价值,在一个既定的秩序中寻找自己的生存空间,而不是异想天开地憧憬能成为Linus Torvalds式的旧秩序的“破坏者”。因此诸如软件过程、开发方法、系统集成、应用架构等“高级”的话题受到关注和欢迎,而诸如操作系统、编译原理之类的基础技术,已经是关心者寥寥了。他们非常怀疑,这样的一本书,对于一线的开发者是否有实际的意义?对于尚在寻找自己职业发展方向的初学者是否构成一种误导?这个问题相当尖锐,必须面对。我想这样一本书,至少在以下几个方面是具有重要的正面意义的。
首先,对于正在大学里学习计算机科学的学生来说,“操作系统原理”是重要的专业基础课。为了达到大学阶段教育的标准,这方面的知识应当认真学习。一些比较严肃的学校鼓励学生在学习这门课程的同时自己动手开发一个具体而微的操作系统。这种实习对于学生充分掌握书本知识、打下扎实的基本功有非常大的好处。在我认识的比较有成就的开发者中,有不少人自己动手写过小的操作系统,他们认为编写操作系统的实践使他们最终消除了对编写软件系统的心理障碍,实在地消化和理解了书本上的知识,学会了解决问题的思路,收获非常巨大。可惜的是,大部分的学生都没有进行过这样的实践,这主要是因为目前的课本偏重操作系统理论,把大量的笔墨放在对操作系统运行机制的剖析或者现成源代码的分析上,对于那些想自己动手写一个操作系统的同学来说,从课本上反而得不到实际的指导。即使是一些世界级的名著,在“How”上也是语焉不详。在这方面,我相信于渊的这本书在国内算是填补了一个空白。这本书最大的特点是明白、实在,将学习编写操作系统的每一个步骤都清清楚楚地交代出来,丝毫没有含糊其辞之处。可以说,只要读者能够耐心阅读学习,按照书上交代的步骤一步步来,就肯定能够进入操作系统的大门,把书本上的知识与实践紧密联系起来。毕竟写自己的操作系统是一个让所有程序员心动的事情。如果当年我学习操作系统知识的时候能够有这样一本书,那该有多好!
其次,对于那些希望通过分析Linux源代码学习与研究操作系统,进而在开源软件天地里有所作为的研究者和开发者来说,这本书是非常好的入门阶梯。目前研究Linux内核的图书,一般局限在对现有内核源代码的分析上,不但理解起来很困难,而且没有给读者以自己实践的机会。有人想到去分析Linux早期的版本,降低了读者理解的难度,但是总的来说还是纸上谈兵。本书的风格截然不同,不但行文活泼清新,叙理简明清晰,而且完全着眼于动手,以一种夹叙夹议的方式,对于编写操作系统过程中可能遇到的各种问题“逢山开路,遇水架桥”,读者可以在实际的语境中理解问题,解决问题。通过这种方式学习操作系统的实现技术,无疑要比其他方式更为有效。而且,于渊在这本书中构造的这个微型的操作系统,跟Linux有微妙的相关,读者细心品味便知。
另外,虽然目前国内软件产业的主流是做下游的生产性集成,但是对于程序员个体来说,也有不少从事系统级软件开发的机会。有幸从事系统级软件开发的朋友,更是可以直接地从本书中学到不少实用的知识和技能。特别是作者在解决一个又一个问题的过程中所体现出来的思路和方法,可能是更值得大家学习的东西。
众所周知,操作系统是计算机软件领域中核心的工程性技术,尽管它的理论相对成熟,但是在工程实施和维护上,仍然是体现一个国家软件技术水平的“两弹、一星、大飞机”级的标志性核心技术。世界上凡是在软件产业方面存有雄心壮志的国家,无不非常重视操作系统技术的研究和积累。比如法国在他们的一个国家级实验室中,自己研发了包括操作系统和编译器在内的全套基础软件,并由国家投入资金不断维护和发展。德国拥有大批Linux黑客,其政府因势利导,通过一系列的大型工程将自己的Linux软件人才组织起来,希望依托Linux重建自己的软件核心技术力量。20世纪80年代中期,日本在美国的压力下而放弃了自己的“BTRON”操作系统,此后软件产业的发展让日本追悔莫及。痛定思痛之后,日本希望牢牢地把握自己在消费电子产品上的优势,一方面继续发展国产的ITRON OS,另一方面把握住Linux的机会,希望在未来占据消费类嵌入式操作系统的制高点。我国在这个方面走过一些弯路,但是现在已经认识到了掌握核心软件技术的重要性,并且有了一定的投入,相信今后国家在这方面的支持力度会越来越强。我本人见过国内的一些操作系统方面的专家,切实地感到,就个体而言,国内的技术专家在理论和实践上都达到了很高的水平,但是由于缺乏一个质量高、并且有一定规模的团队和社群,他们基本处于单打独斗或者小组作战的状态,不仅个人的技术不能够得到充分地发挥,而且也不能形成有规模的成果,无法从根本上扭转我国在软件核心技术领域上的劣势。
我认为,只有在中国出现一大批关心操作系统、熟悉操作系统的程序员,才有可能逐渐缩小我们与世界先进水平的差异。
作为中国软件产业中的普通一员,我非常希望看到这本书能够在这个过程中发挥一点作用。
孟岩
《程序员》杂志技术主编
2005年7月
于渊非常年轻,却有着高人一筹的表达能力和技术视野,我觉得他是难得的技术写作人才,就鼓励他在《程序员》杂志开辟了一个技术专栏,专门剖析操作系统相关的技术。一年来这个专栏陆续发表了一系列文章,获得了不少读者的正面反馈。
然而,事实证明,我最初的担忧并不是没有道理的。一年多来,不断有人表达过他们对这样一个题材的不同看法。他们认为,相对于90年代中后期,现在的软件产业已经务实了很多,今天的程序员更关心的是如何尽可能快、尽可能简单地用软件解决实际问题,创造实际价值,在一个既定的秩序中寻找自己的生存空间,而不是异想天开地憧憬能成为Linus Torvalds式的旧秩序的“破坏者”。因此诸如软件过程、开发方法、系统集成、应用架构等“高级”的话题受到关注和欢迎,而诸如操作系统、编译原理之类的基础技术,已经是关心者寥寥了。他们非常怀疑,这样的一本书,对于一线的开发者是否有实际的意义?对于尚在寻找自己职业发展方向的初学者是否构成一种误导?这个问题相当尖锐,必须面对。我想这样一本书,至少在以下几个方面是具有重要的正面意义的。
首先,对于正在大学里学习计算机科学的学生来说,“操作系统原理”是重要的专业基础课。为了达到大学阶段教育的标准,这方面的知识应当认真学习。一些比较严肃的学校鼓励学生在学习这门课程的同时自己动手开发一个具体而微的操作系统。这种实习对于学生充分掌握书本知识、打下扎实的基本功有非常大的好处。在我认识的比较有成就的开发者中,有不少人自己动手写过小的操作系统,他们认为编写操作系统的实践使他们最终消除了对编写软件系统的心理障碍,实在地消化和理解了书本上的知识,学会了解决问题的思路,收获非常巨大。可惜的是,大部分的学生都没有进行过这样的实践,这主要是因为目前的课本偏重操作系统理论,把大量的笔墨放在对操作系统运行机制的剖析或者现成源代码的分析上,对于那些想自己动手写一个操作系统的同学来说,从课本上反而得不到实际的指导。即使是一些世界级的名著,在“How”上也是语焉不详。在这方面,我相信于渊的这本书在国内算是填补了一个空白。这本书最大的特点是明白、实在,将学习编写操作系统的每一个步骤都清清楚楚地交代出来,丝毫没有含糊其辞之处。可以说,只要读者能够耐心阅读学习,按照书上交代的步骤一步步来,就肯定能够进入操作系统的大门,把书本上的知识与实践紧密联系起来。毕竟写自己的操作系统是一个让所有程序员心动的事情。如果当年我学习操作系统知识的时候能够有这样一本书,那该有多好!
其次,对于那些希望通过分析Linux源代码学习与研究操作系统,进而在开源软件天地里有所作为的研究者和开发者来说,这本书是非常好的入门阶梯。目前研究Linux内核的图书,一般局限在对现有内核源代码的分析上,不但理解起来很困难,而且没有给读者以自己实践的机会。有人想到去分析Linux早期的版本,降低了读者理解的难度,但是总的来说还是纸上谈兵。本书的风格截然不同,不但行文活泼清新,叙理简明清晰,而且完全着眼于动手,以一种夹叙夹议的方式,对于编写操作系统过程中可能遇到的各种问题“逢山开路,遇水架桥”,读者可以在实际的语境中理解问题,解决问题。通过这种方式学习操作系统的实现技术,无疑要比其他方式更为有效。而且,于渊在这本书中构造的这个微型的操作系统,跟Linux有微妙的相关,读者细心品味便知。
另外,虽然目前国内软件产业的主流是做下游的生产性集成,但是对于程序员个体来说,也有不少从事系统级软件开发的机会。有幸从事系统级软件开发的朋友,更是可以直接地从本书中学到不少实用的知识和技能。特别是作者在解决一个又一个问题的过程中所体现出来的思路和方法,可能是更值得大家学习的东西。
众所周知,操作系统是计算机软件领域中核心的工程性技术,尽管它的理论相对成熟,但是在工程实施和维护上,仍然是体现一个国家软件技术水平的“两弹、一星、大飞机”级的标志性核心技术。世界上凡是在软件产业方面存有雄心壮志的国家,无不非常重视操作系统技术的研究和积累。比如法国在他们的一个国家级实验室中,自己研发了包括操作系统和编译器在内的全套基础软件,并由国家投入资金不断维护和发展。德国拥有大批Linux黑客,其政府因势利导,通过一系列的大型工程将自己的Linux软件人才组织起来,希望依托Linux重建自己的软件核心技术力量。20世纪80年代中期,日本在美国的压力下而放弃了自己的“BTRON”操作系统,此后软件产业的发展让日本追悔莫及。痛定思痛之后,日本希望牢牢地把握自己在消费电子产品上的优势,一方面继续发展国产的ITRON OS,另一方面把握住Linux的机会,希望在未来占据消费类嵌入式操作系统的制高点。我国在这个方面走过一些弯路,但是现在已经认识到了掌握核心软件技术的重要性,并且有了一定的投入,相信今后国家在这方面的支持力度会越来越强。我本人见过国内的一些操作系统方面的专家,切实地感到,就个体而言,国内的技术专家在理论和实践上都达到了很高的水平,但是由于缺乏一个质量高、并且有一定规模的团队和社群,他们基本处于单打独斗或者小组作战的状态,不仅个人的技术不能够得到充分地发挥,而且也不能形成有规模的成果,无法从根本上扭转我国在软件核心技术领域上的劣势。
我认为,只有在中国出现一大批关心操作系统、熟悉操作系统的程序员,才有可能逐渐缩小我们与世界先进水平的差异。
作为中国软件产业中的普通一员,我非常希望看到这本书能够在这个过程中发挥一点作用。
孟岩
《程序员》杂志技术主编
2005年7月
评论交流
共有164人开贴评论 305人参与评论 154人参与打分 查看
评价等级:







发表于:2007-2-1 10:53:00
看到很多关于这本书和赵博士的内核注释进行比较的评论。我也谈一下我的看法。
首先,应该肯定赵博士的功劳,毕竟维护那么大一个网站,而且是实践性研究内核的先驱。更难能可贵的是,这本书是免费下载的。而且这本书内容确实不错。但是也有缺点,作者在讲述的时候太拖泥带水,对同一个知识点反复论述,但是每次却又有出入,关键是又没有哪一处能够把它说的特别清楚明白。正如《Linux内核情景分析》的作者对这本书的评论那样:论述问题的方式不够专业。另外,难度跳跃太大,不能够循序渐进。所以这本书我啃完了几章后,看到LDT,系统堆栈空间和用户堆栈空间,就开始迷糊了,终于决定不看这章开始跳下去,最终终于都不看了。
但是这本书却确实是对一个完整的操作系统的描述。
而赵博士的缺点却正好是这本书的优点。个人感觉,这两本书正好互补。我相信我看完这本书后就可以把赵博士的书看完了。
呵呵,可能别的发表书评的同学水平挺高,对于我而言,这本书难度正好。
于渊同学和赵博士共勉之,为中国自己的OS再多贡献一份力量!
另外,好象那个forum.broadview.com.cn书评网站很烂啊,总是注册不成功,注册失败一次后又是更换用户名,又是换邮箱地址,还是没有注册成功.
首先,应该肯定赵博士的功劳,毕竟维护那么大一个网站,而且是实践性研究内核的先驱。更难能可贵的是,这本书是免费下载的。而且这本书内容确实不错。但是也有缺点,作者在讲述的时候太拖泥带水,对同一个知识点反复论述,但是每次却又有出入,关键是又没有哪一处能够把它说的特别清楚明白。正如《Linux内核情景分析》的作者对这本书的评论那样:论述问题的方式不够专业。另外,难度跳跃太大,不能够循序渐进。所以这本书我啃完了几章后,看到LDT,系统堆栈空间和用户堆栈空间,就开始迷糊了,终于决定不看这章开始跳下去,最终终于都不看了。
但是这本书却确实是对一个完整的操作系统的描述。
而赵博士的缺点却正好是这本书的优点。个人感觉,这两本书正好互补。我相信我看完这本书后就可以把赵博士的书看完了。
呵呵,可能别的发表书评的同学水平挺高,对于我而言,这本书难度正好。
于渊同学和赵博士共勉之,为中国自己的OS再多贡献一份力量!
另外,好象那个forum.broadview.com.cn书评网站很烂啊,总是注册不成功,注册失败一次后又是更换用户名,又是换邮箱地址,还是没有注册成功.
评价等级:





发表于:2009-2-7 17:38:00
不错的书,详细记录了作者在80X86上写程序的经验所得。非常具体可操作。最重要的是有宝贵的搭建环境和调试经验。
正如尤晋元老师所说“本书在系统初起,保护模式,控制权如何转入OS Kernal写的具体详细。”这些东西其实就是这本书的全部内容。
所以本书主要是介绍操作系统如何在80X86构架上启动的,很好,有了这本书,就不用直接去读INTEL的说明书了。
所以给要买的人一个参考:本书只是详细介绍PC启动,然后把OS载入的那一段。其中介绍了很多对INTEL芯片直接编程的知识(比如启动时BIOS会直接运行什么地址的代码,一些中断,保护模式......)
正如尤晋元老师所说“本书在系统初起,保护模式,控制权如何转入OS Kernal写的具体详细。”这些东西其实就是这本书的全部内容。
所以本书主要是介绍操作系统如何在80X86构架上启动的,很好,有了这本书,就不用直接去读INTEL的说明书了。
所以给要买的人一个参考:本书只是详细介绍PC启动,然后把OS载入的那一段。其中介绍了很多对INTEL芯片直接编程的知识(比如启动时BIOS会直接运行什么地址的代码,一些中断,保护模式......)
| 我要写评论 |
| 查看所有评论交流(共164条) |








点击看大图





加载中...
