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

发表于:2011-10-11 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:hellochina15    来源:51Testing软件测试网采编

分享:

  怎样的操作系统才能算是独立开发的操作系统

  这个问题可能比较敏感,而且见仁见智,这里只是说一下我个人的理解。我认为,一个独立开发的操作系统,下列各模块中,至少要有一个是完全独立开发的(即不重用任何现有模块,完全是重新独立编码):

  操作系统内核,这里的内核,包括基本的操作系统服务,比如进程/线程模型、内存管理机制、设备管理机制、核心设备驱动程序等;

  图形用户接口(GUI),可以直接借用现有的图形库,但是GUI不仅仅是一个图形库,还包含了用户交互机制、图形资源管理等相对比较复杂的内容。这些内容需要自行编写;

  全新的应用编程接口和开发工具。比如,在原有操作系统核心基础上,增加的API调用数量,要超过原有内核体统的API数量,这些API组合起来,提供一种全新的应用解决方案或应用场景。同时要开发一个全新的应用程序开发环境,并能与操作系统和最新的API有机集成,提供面向某个应用场景的整体解决方案。

  比如Android,虽然其操作系统核心是借用的Linux内核,但是其GUI却是完全重新编写,且提供了一个基于Java语言的全新开发环境,上述列举的模块中,有至少两个是全新编写的,因此Android属于一个独立开发的操作系统。当前市面上有很多号称是自主开发的操作系统,实际上只是把Android的GUI模块进行了部分修改,添加了一些个性化的东西。同时有针对性的增加了一些应用。我认为,这不应该算是自主开发的操作系统,可以算作是自主定制的操作系统。

  这里并不是否定自主定制操作系统的行为,而是从技术上,试图把自主开发和自主定制进行澄清。实际上,自主定制是一种非常明智的行为,可以使得企业能够很快推出其个性化产品,满足市场需求,是企业积极适应市场需求、积极参与竞争的表现。相反,如果企业纯粹去追求自主开发,在没有明确市场需求和市场定位的情况下,不计成本的投入开发一种全新的操作系统,反而是一种愚蠢的行为。现有的东西能够满足需求,为什么不拿来直接用呢?模块重用原则一向是软件行业推崇的基本原则。

  对x86平台在操作系统开发中的作用的考虑

  我个人认为,x86硬件平台是操作系统开发过程中无法绕过的一个平台,而且对一些相对通用(这里的“相对”通用,可以理解为至少支持两种以上硬件平台的操作系统)的操作系统来说,以x86为最开始的开发目标平台,完成x86平台的开发后,再向其它硬件平台移植,或许是最有效且最省事的策略。主要有以下几点原因:

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

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

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

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

33/3<123
2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号