5 如何开发操作系统

操作系统(OS)一般打开电源开关就会自动执行。这是怎么实现的呢?一般在Windows上开发的可执行文件(~.exe),都要在操作系统启动以后,双击一下才能运行。我们这次想要做的可不是这种可执行程序,而是希望能够做到把含有操作系统的CD-ROM或软盘插入电脑,或者将操作系统装入硬盘后,只要打开电源开关就能自动运行。

为了开发这样的操作系统,我们准备按照如下的步骤来进行。source program,为了生成机器码所写的程序代码。可通过编译器编译成机器语言。  CPU能够直接理解的语言,由二进制的0和1构成。其实源代码也是由 0和1构成的(后述)。

也就是说,所谓开发操作系统,就是想办法制作一张“含有操作系统的,能够自动启动的磁盘”。

这里出现的“映像文件”一词,简单地说就是软盘的备份数据。我们想要把特定的内容写入磁盘可不是拿块磁铁来在磁盘上晃晃就可以的。所以我们要先做出备份数据,然后将这些备份数据写入磁盘,这样才能做出符合我们要求的磁盘。

软盘的总容量是1440KB,所以作为备份数据的映像文件也恰好是1440KB。一旦我们掌握了制作磁盘映像的方法,就可以按自己的想法制作任意内容的磁盘了。

这里希望大家注意的是,开发操作系统时需要利用Windows等其他的操作系统。这是因为我们要使用文本编辑器或者C编译器,就必须使用操作系统。既然是这样,那么世界上第一个操作系统又是怎么做出来的呢?在开发世界上第一个操作系统时,当然还没有任何现成的操作系统可供利用,因此那时候人们不得不对照着CPU的命令代码表,自己将0和1排列起来,然后再把这些数据写入磁盘(估计那个时候还没有磁盘,用的是其他存储设备)。这是一项非常艰巨的工作。所以恐怕最初的操作系统功能非常有限,做好之后人们再利用它来开发一个稍微像点样的操作系统,然后再用这个来开发更实用的操作系统……操作系统应该就是这样一步一步发展过来的。

由于这次大部分初学者都是Windows用户,所以决定使用Windows这个现成的操作系统,Windows95/98/Me/2000/XP中任意一个版本都可以。肯定也有人会说还是Linux好用,所以笔者也总结了一下Linux上的做法,具体内容写在了帮助与支持http://hrb.osask.jp。里,有需要的人请一定看一看。

另外,如果C编译器和映像文件制作工具等不一样的话,开发过程中就会产生一些细微的差别,这很难一一解释,所以笔者就直接把所有的工具都放到附带光盘里了。这些几乎都是笔者所发布的免费软件,它们大都是笔者为了开发后面的OSASK操作系统而根据需要自己编写的。这些工具的源代码也是公开的。除此之外,我们还会用到其他一些免费软件,所有这些软件的功能我们会在使用的时候详细介绍。