Preface
[Home]
从计算机领域出现第一个OS开始,OS就成为众多计算机专家,以及各种计算机爱好者关注,研究,实践的宠儿。经过几十年的迅速发展,当今世界已经存在多种面向不同领域,不同平台,不同用途的OS,比如完全面向IBM PC的已经过时的单任务OS MS-DOS,以及当今的主流PC操作系统MS-Windows系列,面向从大型机到桌面电脑,甚至掌上电脑的Unix以及其多种变种,还有分布式OS,实时OS,嵌入式OS,还有形形色色的面向研究的各种OS,以及个人OS爱好者所开发的数量庞大的OS。
很多OS爱好者都想亲自去开发一个OS或者参与到某个OS的过程中去,这促成了很多OS的诞生,最著名也最成功的例子就是Linux,事实上,反过来Linux的成功也吸引和鼓励了更多的人加入到OS的研究和开发中去。大家愿意去亲自开发一个OS的目的或许不尽相同——为了一个伟大或不伟大的理想,为了工作需要,为了更加彻底的研究OS,或许仅仅是觉得好玩——但这一切并不重要,重要的是,一旦我们决定去做,就必然面临着各种各样的硬件软件问题等待我们去解决。而解决的过程往往并不象我们最初预想的那么简单和好玩。这是一个非常漫长和复杂的过程。
我曾经在大学时代就梦想着能够在PC机上实现一个OS,事实上,从那时起,我一直在学习OS的各种资料,以及IBM PC机的各种硬件资料。但不幸的是,国内比较全面的书凤毛麟角,而互联网上尽管信息相对丰富很多,但分布和组织的非常凌乱。所以,事实上我四五年来一直在利用业余时间在通过各种渠道在了解和搜集这些资料,直到今天,仍然有一些问题对我来讲非常困惑,而无法找到相应的资料来解决它。
我相信,很多初学者或过来人都有和我相同的经历——最初面临着大量的疑问,比如选取何种开发平台,使用那些开发工具以及如何使用这些开发工具,OS的Boot过程的原理是怎么样的?如何制作启动盘等等——很多现在看起来非常简单的问题,当时却百思不得其解。这些问题的答案很简单,但寻找这些答案的过程却漫长而复杂——除非你足够走运。很多OS爱好者就是由于受不了这个寻找过程的折磨而或早或晚的放弃了——我身边就有很多这样的例子。
我也几乎放弃了,但对于OS的狂热爱好成为我接着望前走的精神支柱和动力,尽管我之前压力巨大的繁忙工作与OS没有什么直接的联系,但我一直试图努力的抽出时间来坚持我的爱好。
事实上,今天OS的追随者们已经面临着比前几年好得多的局面——有更多的有价值的相关书籍的出现,互联网上相关的资料也比以前丰富的多,最重要的是,更多的OS方面的高手已经在这些年里成长起来,从而能够给后来者以更多的帮助。
我不是OS方面的专家,OS领域的许多东西至今我仍然非常陌生。但我觉得,如果把我这些年来已经搜集到和掌握的OS知识总结一下,或许会让新的OS爱好者们少经历那些漫长的资料查找和整理过程,而能够将更多的时间和精力用在OS关键部分的创新上。这正是这本书出现的原因。
这本书致力于解答我在OS的学习过程中所遇到的问题——这些问题我想你也会遇到——并尽力提供足够详尽的资料。我尽力的以系统的方式来组织本书,并试图说明每一点关键问题——或许这只是一种理想状态,事实上无法达到,但我会尽力达到它。
这本书的内容,会来自各种各样的资料,绝大部分内容,我会靠自己来写,但对于来自于别的资料的精彩描述,一些示例代码,或者一些图片资料,如果不存在版权问题,我会原封不动的照搬过来,如果大家发现照搬的情况存在版权问题,请通知我,我会将其拿掉或改写。
我本人没有打算通过这本书赚钱,也禁止任何人在没有征得本人同意的前提下以赢利为目的对本书进行复制,印刷,传播,销售以及所有其它行为。非赢利目的的一切行为都是允许的。
由于本人能力有限,所以在这本书的过程中,期望得到大家的帮助,我会将所有为本书提供有价值资料,或参与本书编写的朋友的名字列在本篇的后面。另外,本书中错误的存在也在所难免,如果任何朋友发现任何错误,欢迎和本人联系,我的Email: [email protected]。
袁英杰
2002.9