对操作系统开发相关的一些问题的思考

  首先,可充分利用已有的大量的操作系统相关代码和文档。x86硬件平台是一个高度标准化的计算机平台,不论是其初始化和加载过程,还是常用硬件的资源配置(端口号、内存映射等),都有明确定义。没有任何其它的计算机硬件平台能够象x86这样完善,虽然从纯技术角度上说,x86 CPU本身的体系架构不一定是最优的。真是因为这样的特点,很多系统软件爱好者开发了大量的面向x86平台的操作系统代码片断,放到互联网上共享。这些代码片断包含了操作系统开发过程中的方方面面,是操作系统开发过程中最宝贵的资源。借鉴这些资源和文档,可大大加速操作系统开发过程,尤其是初期的开发过程。

  其次,由于x86硬件平台的广泛应用,可大大加快新操作系统的推广和使用速度。一旦有一个操作系统雏形,能够成功引导计算机,并能够做一些基本的操作,只要你放到网上,肯定会有很多的操作系统爱好者下载使用。这无疑会大大提升新开发操作系统的推广范围和推广速度。同时可能会收到大量的对新系统的改进建议和bug报告,有助于操作系统软件质量的提升。

  最后,对操作系统的进一步扩展开发有重大意义。比如,你完成了操作系统核心部分的开发,然后公布API接口,设备驱动程序开发接口,甚至源代码,会吸引很多系统软件爱好者继续开发驱动程序和应用程序。这对整个操作系统生态链的构建是非常重要的。如果操作系统是直接面向x86硬件平台的,这个驱动程序和应用程序进一步开发的过程,就无需模拟器的支持,得到的相应必然会更多。

  总而言之,如果不是针对一个固定硬件平台做的功能有限的操作系统开发,建议以x86为首要开发平台,以充分发挥已有优势。如果你开发的操作系统非常封闭,只适应于固定的一种硬件平台,则无需开发x86平台版本。但只要是一个功能相对丰富的操作系统,适应多种硬件平台是必然的,这时候,x86就是绕不过的门槛了。

 

  作者:辛庆祥,操作系统开发爱好者,目前正从事开源操作系统Hello China的开发,曾以蓝枫叶为笔名,出版《嵌入式操作系统:设计与实现》一书。QQ:89007638