1.前言
开始正题前先讲两个生活小案例来引出系统调用的意义。
案例一:图书馆
安居不用架高堂,书中自有黄金屋。娶妻莫恨无良媒,书中自有颜如玉。
图书馆是我喜欢去的一个地方,相信大家也都去过。在图书馆我们可以自由阅读任何书,广泛的汲取各种知识。正是由于所有人都可以自由的阅读任意书籍,所以经常就会出现书籍位置出现错乱,书籍页面出现损坏,甚至还会出现书籍遗失的情况。
2.如何保证系统安全性
操作系统提供给应用程序运行环境,让各种应用得以运行。在应用程序运行过程中有些操作是非常危险的,如果每个应用程序都能自由进行任何操作,就有可能带来如下各种问题:
1、多个应用程序直接去操作硬件外设,就会出现相互冲突,可能会出现需要应用程序A的读取数据,被应用程序B读取的情况。
2、多个应用程序被加载到内存,应用程序A占用了一个内存区域Z,应用程序B自己强制清空内存区域Z,那么就给应用程序A带来致命问题。
3、部分应用程序需要硬件中断让自己在合适的时机开始执行,如果其它应用程序把中断关掉,那么这些依靠中断触发的应用程序将再也得不到执行。
这就回答了第一个问题“专业人员的特权是什么”,“专业人员”可以使用处理的特权模式,这样“专业人员”就可以在处理器上进行任何操作。而应用程序则在用户模式下,只运行在处理器上进行部分操作。在ARM V7 体系架构种SVC模式是为“专业人员”提供的特权模式。
如何获取特权/strong>
硬件中断是在电平变化时引发中断操作,而软中断是通过一条具体指令SWI,当CPU执行到SWI指令时会触发中断,进入中断程序(中断模式是特权模式)。
以ARM V7 体系架构为例,软件中断指令(SVC)用于产生软中断,实现从用户模式变换到特权模式。
4.内核态
在计算机软件系统中包含一个名为操作系统的程序集合,在这个程序集合包括内核,设备驱动程序,启动引导程序,shell程序,文件管理工具等,其中最重要的程序称为内核(kernel)。计算机的软件系统的模式和能力由内核决定,内核为操作系统中的所有事物提供了主要的功能,同时决定了上层应用软件的很多特性。
5.系统调用
为了保证操作系统的安全性,比如创建进程或者硬件交互这种操作不能由应用程序去完成,而必须让操作系统内核来完成。但是应用程序就有比如创建进程或者硬件交互这种操作需求,如何满足应用程序的需求br> 系统调用提供了应用程序和操作系统之间的接口,应用程序通过系统调用实现其与操作系统的通信,并可取得操作系统的服务。
6.系统调用模型
由于linux系统调用比较复杂,因此我们先讲述系统调用的模型,然后再讲述linux的系统调用实现。
系统调用的本质是:应用程序请求操作系统内核完成某个功能。

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览114805 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!