操作系统开发过程应遵循的一些原则

发表于:2011-11-01 09:50

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

 作者:辛庆祥    来源:51Testing软件测试网采编

  如何衡量一个操作系统是否成功

  在讨论如何衡量一个操作系统是否成功之前,首先必须明确,怎样的系统软件才算作是一个操作系统?并不是所有的系统软件都是操作系统,我认为,一个完整的操作系统,必须具备下列功能(或特征):

  1、基于一种或多种硬件平台(或硬件体系架构),能够成功的启动这个硬件计算机平台,并能够对硬件平台的基本资源进行管理。这里的基本资源,至少包括CPU、内存,以及键盘和显示器等输入输出设备;

  2、提供一个人机接口,比如一个字符界面的shell或一个图形交互界面,用户能够通过这个人机接口直接操作硬件设备;

  3、提供一个应用编程接口(API),程序员能够采用一种或多种计算机语言设计出针对该操作系统的软件程序,能够完成某些特定的功能。当然,软件开发所需的开发环境和开发语言,可以是基于其它操作系统的,不一定非得是本操作系统提供的环境。

  通俗地讲,能够启动计算机,并能够对硬件资源进行管理和应用的系统软件,才能称为操作系统。按照这个定义,一些只能构启动计算机、显示一些特定内容的程序片断,不能算作操作系统,因为它无法提供人机交互接口,也无法提供一个应用程序运行平台。比如第一个版本的Linux(似乎是Linux 0.0),其全部功能就是把CPU切换到保护模式,在屏幕上输出一连串的A和B,然后进入死循环。按照上面的定义,这不算是操作系统。再进一步,一些软件片断除具备启动计算机的功能外,还提供了基本的键盘/显示器驱动代码,用户可以通过键盘输入一些字符,然后显示在屏幕上。这也不能算是一个操作系统,因为它没有提供一个应用编程接口,无法开发出满足特定需要的应用程序。

  需要强调的是,这里的应用编程接口,不一定非得以中断或陷阱调用的方式提供。比如,操作系统以头文件的方式提供一些功能函数调用,应用程序部分直接与操作系统核心代码进行编译连接,组成一个整体的模块,这种实现机制也可认为是满足上述第三条的。而且在实际开发中,很多嵌入式操作系统就是采取这种方式实现系统调用的。这样的好处是,应用程序代码直接调用操作系统功能代码,无需经过描述符切换、上下文切换等额外工作,效率非常高。但缺点也很明显,就是应用程序部分代码与操作系统核心代码无法有机分离,必须统一编译连接。诚然,以中断或陷阱方式提供的API接口,可以使得应用程序与操作系统完全独立,充分实现模块化设计思想,是一种更好的方式。

  然后,我们再讨论什么样的操作系统算是一个成功的操作系统。满足上述条件的操作系统很多很多,一个计算机专业的学生,在半年的时间内就可写出一个操作系统。但是大多数操作系统并不是成功的操作系统,这些不算成功的操作系统,其最主要意义,可能就是锻炼了操作系统开发者的编程能力,满足了操作系统开发者完成一个操作系统内核的心愿。但一个成功的操作系统的意义就远不止于此了,成功的操作系统会被广泛使用,产生巨大的经济效益。比如Windows操作系统,不论你喜欢还是不喜欢,它都大大的拉近了人与计算机的距离,使得计算机成为一种最重要的生产工具,产生的经济效益是难以估量的。并不是每个成功的操作系统,都必须象windows那样有影响力,我认为,一个操作系统能够满足下列几条要求,就可称为一个成功的操作系统:

  1、提供一组清晰且功能完备的应用程序编程接口(API),并有一个与之配套的应用开发环境,可以完成设备驱动程序、应用程序的开发。开发难度维持在平均软件开发难度以下,比如,一个普通技能水平的程序员,就可以在这个开发环境下,开发出针对这个操作系统的设备驱动程序或应用程序;

  2、有一组与之配套的常规硬件驱动程序,能够完成大多数日常功能。比如具备常见的网卡驱动程序、音频/视频驱动程序、USB总线驱动和USB存储设备驱动程序等。有了这些常规硬件驱动的支撑,该操作系统就可完成大多数的常用功能,比如上网、音频/视频播放等;

  3、有一些与之配套的常用应用程序,形成一个封闭的应用生态环境。比如浏览器、邮件客户端、通信录、即时消息客户端、文字处理软件等,用户可通过这些软件完成常规的任务。

  上述可归纳为一个操作系统生态链,这个生态链包含硬件支持、应用程序支持、开发环境支持等。只有具备了一个相对完整的生态链的操作系统,才算作一个成功的操作系统。因为它已经具备了能够产生经济效益的基础条件。

  再强调一点,这里讲的“成功的操作系统”,不一定是一个商业上成功的操作系统。很多满足上述条件的操作系统,根据这里的限定,算作是一个成功的操作系统,但是在商业上却不一定成功。但是反过来,一个商业上成功的操作系统,必然是一个满足上述限定条件的“成功操作系统”。本文中的成功,着重强调操作系统的生态环境成功。只要具备了一个完善的生态环境,在商业上成功的可能性就大大增加了。

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号