Linux内核级安全开发基础
1.3 Linux系统调用概述
1.系统调用与系统安全
当代计算机体系中
- 操作系统内核运行在系统态
- 应用程序运行在内核态——权限受到限制:不能执行特权指令,不能直接对硬件进行操作
===>有利于保证操作系统的安全性
——>带来问题:应用程序为了应用任务需要执行特权指令或者访问硬件,例:访问磁盘来保存自己的数据
解决思路:操作系统为应用程序提供相应的服务,应用程序间接执行特权指令或者访问硬件
- 操作系统在提供服务之前进行安全控制检查
- 检查通过,提供相应的特权操作或硬件访问操作
这是操作系统的重要任务之一:为应用程序的运行提供各种操作系统服务
——应用程序要访问硬件或者执行某特权操作,只需要调用相应的操作系统服务,这就是系统调用过程
——每一种类型的服务被称为一个系统调用
2.系统调用的服务功能
操作系统的服务是以系统调用接口形式存在的
系统调用是应用程序和操作系统内核之间的功能接口
- 目的:比较方便使用操作系统提供的有关设备管理、输入/输出系统、文件系统和进程控制、通信以及存储管理等方面的功能,而不用了解系统内核代码的内部结构和有关硬件细节
- 编程中用到的很多函数,如
open()
、write()
、read()
,都跟具体的系统调用相对应