`
universsky
  • 浏览: 99482 次
文章分类
社区版块
存档分类
最新评论

不识庐山真面目——操作系统

 
阅读更多

操作系统功能变得愈来愈强大,但结构也越来越复杂。在以方便用户(包括开发人员和终端用户)为宗旨的思想下,操作系统不断加入新功能,新服务。回忆从前大家使用的DOS系统仅仅只需要一张软盘(拿DOS举例是因为比较切合国内用户的实际情况,其实Unix是比DOS年代久远的,但大家以前很少使用,大部分人都是从DOS开始计算机之旅的。当然Unix的最初版本也用不了几张软盘),而如今的windows系统或Linux系统动辄就需要数张光盘,麻雀已经变成了恐龙——虽然它们都有五脏六腑。

增繁就简——操作系统组成

形形色色的操作系统组成结构都不尽相同。虽然大多是为同样的目的,但由于实现方法可以自由选择,所以各个操作系统理所当然的存在差异,有些系统之间差异还相当大。

我们选取最常见的操作系统(UNIX)组成结构,向大家展示操作系统的体系结构的大致框架。对于各种操作系统之间的具体差异,大家可以跟下面讲述的结构进行对比认识。

在这里,我们自己用一组简单的公式来描述操作系统的组成要素:

操作系统 = 内核 + 系统程序

系统程序 = 编译环境 + API

编译环境 = 编译程序 + 连接程序 + 装载程序

API = 系统调用 + 语言库函数(C、C++、Java等等)

AUI = shell + 系统服务例程(如x服务器等)+ 应用程序(浏览器,字处理,编辑器等)

而整个软件系统是:

软件系统 = 操作系统 + AUI

操作系统最底层的组件是内核,其上层搭建了许多系统软件。

系统程序包括三个部分,分别是:编译环境、应用程序接口和用户接口。

编译环境包含汇编、C 等低高级语言编译程序,连接程序和装载程序,这些程序负责将文本格式的程序语言转变为机器能识别和装载的机器代码。

应用程序接口(API)包含内核提供的系统调用接口和语言库,系统调用是为了能让应用程序使用内核服务,语言库函数则是为了方便应用程序开发,所以将一些常用的基础功能预先编译以供使用,比如对C语言来说常用的C库等;

用户接口(AUI)包括我们熟悉的shell、系统服务程序和常用的应用程序。

这是一个典型的结构,但不是一成不变。许多操作系统的发行中会有所删减,比如应用于嵌入式设备的系统,对X服务器就可能不做要求。但是像内核、系统调用等要素是必不可少的。

 

系统软件:系统软件是相对应用软件而言的,应用软件针对最终用户需求编写,完成实际功能,而系统软件则是为了简化应用程序的开发而存在的,比如数据库系统为应用软件提供了有效的数据传输、存储服务;还有编程语言的执行环境——它由C库实现——也属于一种系统程序,它为应用程序开发提供了诸如I/O操作例程,图形库,计算库等等基础服务。可见系统软件范围覆盖很广,只要面向的服务群体不是最终用户的软件都可以划归到系统软件中来。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics