30天自制操作系统
上QQ阅读APP看书,第一时间看更新

第0天 着手开发之前

1 前言

现在,挑选自己喜欢的配件来组装一台世界上独一无二的、个性化的PC(个人电脑)对我们来说已不再困难。不仅如此,只要使用合适的编译器英文为compiler,指能够将源代码编译成机器码的软件。,我们就可以自己编写游戏、制作自己的工具软件;使用网页制作工具,我们还可以轻而易举地制作主页;如果看过名著《CPU制作法》《CPU制作法》,渡波郁著,每日Communications出版公司,ISBN 4-8399-0986-5。的话,就连自制CPU也不在话下。

然而,在“自制领域”里至今还有一个无人涉足的课题——自己制作操作系统(OS)Operating System的缩写,汉语译作“操作系统”。Windows、Linux、MacOS、MS-DOS等软件的总称。,它看起来太难以至于初学者不敢轻易挑战。电脑组装也好,游戏、工具软件制作也好,主页也好,CPU也好,这些都已经成为初学者能够尝试的项目,而唯独操作系统被冷落在一边,实在有些遗憾。“既然还没有这样的书,那我就来写一本。”这就是笔者撰写本书的初衷。

也许是因为面向初学者的书太少的缘故吧,一说起操作系统,大家就会觉着那东西复杂得不得了,简直是高深莫测。特别是像Windows和Linux这些操作系统,庞大得一张光盘都快装不下了,要是一个人凭着兴趣来开发的话,不知道需要历经多么漫长的过程才能完成。笔者也认为,像这么复杂的操作系统,单凭一个人来做,一辈子都做不出来。

不过大家也不必担心太多。笔者就成功地开发过一个小型操作系统,其大小还不到80KBkilobyte,程序及数据大小的度量单位,1字节(byte)的1024倍。一张软盘的容量是1440KB。顺便提一下,1024KB等于1MB(兆字节)。1字节是8个比特,正好能记录8位0和1的信息。B到底是指字节(byte),还是指比特(bit),有时容易混淆。这里根据一般的规则,用大写B表示字节,小写b表示比特。。麻雀虽小,五脏俱全,这个操作系统的功能还是很完整的。有人也许会怀疑:“这么小的操作系统,是不是只有命令行窗口console,通过键盘输入命令的一种方式,基本上只用文字进行计算机操作,是MS-DOS等老式操作系统的主流操作方式。啊?要不就是没有多任务在操作系统的世界里,运行中的程序叫做“任务”,而同时执行多个任务的方式就被称为“多任务”(multitask)。? ”不,这些功能都有。

怎么样,只有80KB的操作系统,大家不觉得稍作努力就可以开发出来吗?即使是初学者,恐怕也会觉得这不是件难事吧?没错,我们用一个月的时间就能写出自己的操作系统!所以大家不用想得太难,我们轻轻松松地一起来写写看吧。

以本书作者为主角开发的操作系统OSASK笔者与他人一起合作开发的操作系统(趁机宣传一下)。虽然只有小小的78KB,不过为了做它也花了好几年的时间。而这次能在短时间内开发完成操作系统,是因为我们较好地总结了开发操作系统所必要的知识。也就是说,如果笔者在年轻时可以看到现在这本书的话,可能在短时间内就能开发出OSASK了,所以笔者很羡慕大家呀。

大家一听到编译后的文件大小为80KB可能会觉得它作为程序来讲已经很小了,不过曾经编过程序的人可以查一查自己编的程序(.exe文件)的大小,这样就能体会到80KB到底是难是易了。

没编过程序的人也可以下载一个看上去不是很复杂的自由软件,看看它的可执行文件有多大。Windows 2000的计算器程序大约是90KB,大家也可以根据这个想象一下。

本书对于不打算自己写操作系统,甚至连想都没想过这个问题的人来说也会大有裨益。举个例子,读本自己组装PC的书就能知道PC是由哪些组件构成的,PC的性能是由哪些部分决定的;读本如何编写游戏的书,就能明白游戏是怎样运行的;同理,读了本书,了解了操作系统的开发过程,就能掌握操作系统的原理。所以说,对操作系统有兴趣的人,哪怕并不想自己做一个出来,也可以看看这本书。

阅读本书几乎不需要相关储备知识,这一点稍后还会详述。不管是用什么编程语言,只要是曾经写过简单的程序,对编程有一些感觉,就已经足够了(即使没有任何编程经验,应该也能看懂),因为这本书主要就是面向初学者的。书中虽然有很多C语言程序,但实际上并没有用到很高深的C语言知识,所以就算是曾经因为C语言太难而中途放弃的人也不用担心看不懂。当然,如果具备相关知识的话,理解起来会相对容易一些,不过即使没有相关知识也没关系,书中的说明都很仔细,大家可以放心。

本书以IBM PC/AT兼容机(也就是所谓的Windows个人电脑)为对象进行说明。至于其他机型本书所讲的操作系统内容仅用Macintosh是开发不了的,并且开发出的操作系统也不能直接在Macintosh上运行。但是在PC上开发的操作系统,可以通过模拟器在Macintosh上运行。,比如Macintosh(苹果机)或者PC-9821等,虽然本书也参考了其中某些部分,但基本上无法开发出在这些机型上运行的操作系统,这一点还请见谅。严格地说,不是所有能称为AT兼容机的机型都可以开发我们这个操作系统,我们对机器的配置要求是CPU高于386(因为我们要开发32位操作系统)。换句话说,只要是能运行Windows 95以上操作系统的机器就没有问题,况且现在市面上(包括二手市场)恐怕都很难找到Windows 95以下的机器了,所以我们现在用的机型一般都没问题。

另外,大家也不用担心内存容量和硬盘剩余空间,我们需要使用的空间并不大。只要满足以上条件,就算机器又老又慢,也能用来开发我们的操作系统。