




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、共享知识分享快乐盛年不重来,一日难再晨。及时宜自勉,岁月不待人。操作系统与应用程序的关系操作系统主要可以分为两大部分:内核和内核之外的一些程序。内核就是直接控制最底层的硬件,而我们日常所用到的软件,大都是 通过内核之外一些程序与内核之间的接口完成的,例如WINDOWSAPI就是为我们提供了应用程序与内核的接口,以实现硬件上的一些操作。操作系统(Operating System简称OS)是一管理电脑硬件与 软件资源的程序,同时也是计算机系统的内核与基石。 操作系统是一 个庞大的管理控制程序,大致包括 5个方面的管理功能:进程与处理 机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常 见
2、的操作系统有 DOS、OS/2、UNIX、XENIX、LINUX、Windows、 Netware 等。应用软件是用户可以使用的各种程序设计语言,以及用各种程序 设计语言编制的应用程序的集合,分为应用软件包和用户程序.应用 软件包是利用计算机解决某类问题而设计的程序的集合 ,供多用户使 用。内核系统与应用程序的关系在Linux系统中,内核为用户程序提供了两方面的支持。其一是系统调用接口,即中断调用int 0x80 ;另一方面是通过开发环境库 函数或内核库函数与内核进行信息交流。 不过内核库函数仅供内核创 建的任务0和任务1使用,它们最终还是去调用系统调用。因此内核 对所有用户程序或进程实际上只
3、提供系统调用这一种统一的接口。lib/目录下内核库函数代码的实现方法与基本 C函数库libc中类似 函数的实现方法基本相同,为了使用内核资源,最终都是通过内嵌汇 编代码调用了内核系统调用功能。系统调用主要提供给系统软件编程或者用于库函数的实现。而一般用户开发的程序则是通过调用像libc等库函数来访问内核资源。 这些库中的函数或资源通常被称为应用程序编程接口(API),其中定义了应用程序使用的一组标准编程接口。通过调用这些库中的程 序,应用程序代码能够完成各种常用工作,例如,打开和关闭、对文 件或设备的访问、进行科学计算、出错处理以及访问组和用户标识号 ID等系统信息。在UNIX类操作系统中,最
4、为普遍使用的是基于POSIX标准的API 接口。Linux当然也不例外。API与系统调用的区别在于:为了实现 某一应用程序接口标准,例如 POSIX其中的API可以与一个系统调 用对应,也可能由几个系统调用的功能共同实现。当然某些API函数可能根本就不需要使用系统调用,即不使用内核功能。因此函数库可 以看做实现像POSIX标准的主体界面,应用程序不用管它与系统调用 之间到底存在什么关系。无论一个操作系统提供的系统调用有多么大 的区别,但只要它遵循同一个API标准,那么应用程序就可以在这些 操作系统之间具有可移植性。系统调用是内核与外界接口的最高层。 在内核中,每个系统调用 都有一个序列号(在i
5、nclude/unistd.h头文件中定义),并且常以宏的形式实现。应用程序不应该直接使用系统调用,因为这样的话, 程序的移植性就不好了。因此目前 Linux标准库(Linux Standard Base, LSB和许多其他标准都不允许应用程序直接访问系统调用宏。 库函数一般包括C语言没有提供的执行高级功能的用户级函数, 如输 入/输出和字符串处理函数。某些库函数只是系统调用的增强功能版。 例如,标准I/O库函数fopen和fclose提供了与系统调用open和 close类似的功能,不过是在更高的层次上。在这种情况下,系统调 用通常能提供比库函数略微好一些的性能,但是库函数却能提供更多的功能
6、,而且更具检错能力。实际上软件程序还可以细分成两种:系统程序软件和应用程序软 件。系统程序软件实际上就是我们所说的驱动程序,它们的目的只有一个,就是为了驱动硬件,使之能正常地完成某种硬件功能,比如网 卡的发送数据功能,声卡的播放声音功能。应用程序软件则用来接收 用户的输入请求,进行很多业务运算后,再通过驱动程序驱动硬件去 完成用户所要求的任务,有时候应用程序软件也负责把运算的最终结 果反馈给用户。画成图就是图一那样,注意,在整个软件系统中,也 只有驱动程序最清楚硬件的功能及工作方式,如果上面应用程序想要 硬件完成什么样的任务,必须使用相应的驱动程序所提供的那些接口 才行。驱动程序直接驱动硬件进
7、行工作,而应用程序则只需要知道这 些接口,通过它们间接去驱动硬件来完成任务。这种策略看似简单好 用,但也会受到两方面因素的制约。图一首先,一个计算机系统里面的硬件设备通常不会只有一个。比方 我的魅族MP3里除了音频解码器外,自然也有用来存储歌曲的设备。 这些设备各具不同的功能,完成这些功能的操作也就各不相同, 就决 定了写出来的驱动程序也是各式各样的,最后导致他们提供给应用程 序使用的接口也是千变万化的,如图二那样,用不同颜色的箭头表示 不同的接口使用。这大大增加了应用程序开发的难度, 因为应用程序 开发者不仅要考虑上层业务逻辑的处理,还要非常熟悉各种驱动所提 供出来的不同接口。图二:一个应用
8、使用多个硬件设备其次,一个计算机系统里面同时运行着的应用程序通常也不会只有一 个,这些应用程序会竞争使用总量特定的硬件设备资源。比方你和朋友在用qq聊天的同时,也听着千千静听放出来的音乐,他们都要使用 屏幕设备show出界面,也都要使用物理内存(2)来运行程序代码。但 是屏幕只有一个,内存也只有那么多,所以在整个计算机系统范围内,必须有某种机制来管理分配这些特定硬件资源的使用。如图三,设计的时候,这种机制要么放在应用程序中实现, 要么放在驱动程序中实 现,但无论放在哪一方,都是会给这一方的程序开发者带来额外的负 担。图二一个应用使用多个硬件设备图三:多个应用使用多个硬件设备引入操作系统之后上面
9、之所以说额外,那是因为对于应用程序开发者来讲, 其重点要考虑的是业务逻辑如何实现,而不是去考虑硬件资源的管理分配, 也最 好用不着去区分那么多驱动程序的不同接口。 类似的,对于驱动程序 开发者来说,其要考虑的重点是如何正确的驱动特定的硬件, 而不是 去考虑硬件资源的管理分配上。那这部分 额外”的工作由谁去做呢, 这正是后来出现的操作系统(3)的职责所在图五:引入操作系统后的情况如图五,操作系统帮我们考虑对各种硬件资源的分配管理,并完成对各种驱动程序所提供接口的抽象,形成一套简单一致的接口给上层的 应用程序去使用。如此,应用程序开发人员只需要知道操作系统所提 供的这套编程接口 (API),就可以实现不同的业务应用。前面我们讲 系统程序软件实际上就是驱动程序,但这里我们讲系统程序软件是操 作系统。概念上,我们认为操作系统依赖于驱动程序这一层,但实际 上,驱动程序是嵌入到操作系统中去的, 所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运城市中医院儿科医患沟通技巧考核
- 中国钴酸锂电池项目投资计划书
- 中国花粉项目投资计划书
- 中国煤用固硫剂项目商业计划书
- 中国沙丁胺醇气雾剂项目创业计划书
- 高空作业免责协议书例文与高空作业协议书7篇
- 2025年涡轮螺桨发动机合作协议书
- 晋城市人民医院标本接收处理与保存规范考核
- 2025年出版发行事业局所属事业单位度公开招考社会在职人员事业单位考试练习题库附答案(含答案)
- 2025第三人民医院咽部异物取出术考核
- 关于重阳节的老年人活动方案模板
- 药物外渗的PDCA循环管理
- 2024年乡村振兴应知应会考试题及答案
- 2025-2030中国不同区域工业用地出让价格形成机制比较报告
- 2025年事业单位笔试-天津-天津放射医学(医疗招聘)历年参考题库含答案解析(5卷套题【单选100题】)
- DB23∕T 3082-2022 黑龙江省城镇道路设计规程
- 第三十六章 阑尾疾病
- 有关医养结合政策的12个重要文件2025.3.30-副本
- 汽修店员工劳务合同范本
- 项目工程挂靠协议书范本
- T-HNTI 018-2020 湘西黄金茶 绿茶
评论
0/150
提交评论