操作系统对硬件的管理以服务的形式(即接口)提供给用户
1、操作系统接口概述
1.1 操作系统接口标准
- POSIX标准,可移植操作系统接口
1.2 接口类型
- 图形接口
- 命令行接口
- 编程接口
1.3 OS系统调用机制
CPU状态转换:用户态陷入内核态(陷入指令) —> 内核执行系统调用服务例程 —> 处理结束返回用户态
2、Linux系统调用机制
2.1 Linux各种接口
2.2 系统调用与API
系统调用:操作系统提供给用户程序调用的一组特殊接口,内核与用户空间进行交互的接口,把用户进程的请求传达给内核,内核把请求处理完毕后将处理结果返回给用户空间
系统
- 系统调用号:①唯一标识每个系统 ②作为系统调用表的下标
- 系统调用表:用来把系统调用号和相应的服务例程关联起来
2.3 系统调用机制优化
GNU C库是Linux系统调用接口的封装
2.4 系统调用实例——日志收集系统
- 打开系统调用表表项文件,增加系统调用表表项,添加335号系统调用
- 添加系统调用函数
- 修改Makefile文件,把myaudit.c添加到内核编译中去
- 增加函数声明
- 拦截相关系统调用
- 编译内核 ->装内核 -> 修改内核引导 -> 重启系统
- 添加实现钩子函数的内核模块 -> 编译内核模块
- 编写用户态测试程序
系统调用日志收集程序_x86_64环境3.14版本内核(上)
系统调用日志收集程序_x86_64环境3.14版本内核(下)