操作系统与应用程序的关系

操作系统与应用程序的关系

ID:6169282

大小:392.50 KB

页数:7页

时间:2018-01-05

操作系统与应用程序的关系_第1页
操作系统与应用程序的关系_第2页
操作系统与应用程序的关系_第3页
操作系统与应用程序的关系_第4页
操作系统与应用程序的关系_第5页
资源描述:

《操作系统与应用程序的关系》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统与应用程序的关系操作系统主要可以分为两大部分:内核和内核之外的一些程序。内核就是直接控制最底层的硬件,而我们日常所用到的软件,大都是通过内核之外一些程序与内核之间的接口完成的,例如WINDOWSAPI就是为我们提供了应用程序与内核的接口,以实现硬件上的一些操作。操作系统(OperatingSystem,简称OS)是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows

2、、Netware等。应用软件是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序.应用软件包是利用计算机解决某类问题而设计的程序的集合,供多用户使用。内核系统与应用程序的关系在Linux系统中,内核为用户程序提供了两方面的支持。其一是系统调用接口,即中断调用int0x80;另一方面是通过开发环境库函数或内核库函数与内核进行信息交流。不过内核库函数仅供内核创建的任务0和任务1使用,它们最终还是去调用系统调用。因此内核对所有用户程序或进程实际上只提供系统调用这一种统一的接口。lib/目录下内核库函数代码的实现方法与基本C函数库libc中类似函数的实

3、现方法基本相同,为了使用内核资源,最终都是通过内嵌汇编代码调用了内核系统调用功能。系统调用主要提供给系统软件编程或者用于库函数的实现。而一般用户开发的程序则是通过调用像libc等库函数来访问内核资源。这些库中的函数或资源通常被称为应用程序编程接口(API),其中定义了应用程序使用的一组标准编程接口。通过调用这些库中的程序,应用程序代码能够完成各种常用工作,例如,打开和关闭、对文件或设备的访问、进行科学计算、出错处理以及访问组和用户标识号ID等系统信息。在UNIX类操作系统中,最为普遍使用的是基于POSIX标准的API接口。Linux当然也不例外。API与系统调用的区别在于:为了实现某一应用程序

4、接口标准,例如POSIX,其中的API可以与一个系统调用对应,也可能由几个系统调用的功能共同实现。当然某些API函数可能根本就不需要使用系统调用,即不使用内核功能。因此函数库可以看做实现像POSIX标准的主体界面,应用程序不用管它与系统调用之间到底存在什么关系。无论一个操作系统提供的系统调用有多么大的区别,但只要它遵循同一个API标准,那么应用程序就可以在这些操作系统之间具有可移植性。系统调用是内核与外界接口的最高层。在内核中,每个系统调用都有一个序列号(在include/unistd.h头文件中定义),并且常以宏的形式实现。应用程序不应该直接使用系统调用,因为这样的话,程序的移植性就不好了。

5、因此目前Linux标准库(LinuxStandardBase,LSB)和许多其他标准都不允许应用程序直接访问系统调用宏。库函数一般包括C语言没有提供的执行高级功能的用户级函数,如输入/输出和字符串处理函数。某些库函数只是系统调用的增强功能版。例如,标准I/O库函数fopen和fclose提供了与系统调用open和close类似的功能,不过是在更高的层次上。在这种情况下,系统调用通常能提供比库函数略微好一些的性能,但是库函数却能提供更多的功能,而且更具检错能力。实际上软件程序还可以细分成两种:系统程序软件和应用程序软件。系统程序软件实际上就是我们所说的驱动程序,它们的目的只有一个,就是为了驱动硬

6、件,使之能正常地完成某种硬件功能,比如网卡的发送数据功能,声卡的播放声音功能。应用程序软件则用来接收用户的输入请求,进行很多业务运算后,再通过驱动程序驱动硬件去完成用户所要求的任务,有时候应用程序软件也负责把运算的最终结果反馈给用户。画成图就是图一那样,注意,在整个软件系统中,也只有驱动程序最清楚硬件的功能及工作方式,如果上面应用程序想要硬件完成什么样的任务,必须使用相应的驱动程序所提供的那些接口才行。驱动程序直接驱动硬件进行工作,而应用程序则只需要知道这些接口,通过它们间接去驱动硬件来完成任务。这种策略看似简单好用,但也会受到两方面因素的制约。图一首先,一个计算机系统里面的硬件设备通常不会只

7、有一个。比方我的魅族MP3里除了音频解码器外,自然也有用来存储歌曲的设备。这些设备各具不同的功能,完成这些功能的操作也就各不相同,就决定了写出来的驱动程序也是各式各样的,最后导致他们提供给应用程序使用的接口也是千变万化的,如图二那样,用不同颜色的箭头表示不同的接口使用。这大大增加了应用程序开发的难度,因为应用程序开发者不仅要考虑上层业务逻辑的处理,还要非常熟悉各种驱动所提供出来的不同接口。图二:一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。