操作系统总结(二)系统调用及系统结构
2017-01-07 20:47
190 查看
区分用户态和内核态
内核态可以访问任何数据,而用户态不能访问内核数据。当前指令为CS:IP用CS最低两位表示:0为内核态,3为用户态。在运行指令时会对权限进行检查。
如何进入内核态
使用中断指令INT(trap陷阱指令,linux为0x80)int指令将CS的cpl改变为0,进入内核态,这是用户态程序进入内核态的唯一方式。因此系统调用的具体过程实现如下:用户程序中包含int 0x80的代码,由os处理中断代码获取中断调用号,os根据编号执行相应的代码。
系统调用处理的过程
用户程序->system call 第i号程序->int 0x80 ->保护现场->取出现场调用号、查询入口地址、进入相应的地址->结束调用、恢复现场->返回用户态程序
系统调用的参数传递
eax中存储系统调用号
最多直接传递3个参数:使用寄存器ebx、ecx、edx传递参数
传递参数的种类总结:
直接用寄存器传参,最多3个参数
指定内存块传参,可以用ebx、ecx、edx传递内存地址和参数数目
使用系统堆栈,可以传递任意多个参数,此时寄存器可用可不用
API和system call区别
API是系统调用的接口,API是system call的封装,System Call更加底层,使用需要知道更多的细节,API使用更加方便,可移植性高
系统调用的类别
进程控制
创建进程,进入可执行状态、唤醒进程、挂起进程、分配内存释放内存等。
文件管理
创建、删除、读写、打开关闭、属性获取设置、重定位等。
设备管理
请求、释放、读、写、重定位、属性获得、设置、连接与断开
信息维护
通信
系统结构
简单结构
整个操作系统似乎是个单一的整体,不注重模块的划分和接口与功能层次。
模块化
面向对象技术生成模块化的内核。使用动态加载模块,现代UNIX,Solaris,Linux, Mac os X
分层结构
整个操作系统分为若干层,至底向上层层封装,优点是构造和调试的简单化。缺点:分层法主要困难是对层的详细定义,这是因为一层只能使用其下的较低层。封层结构效率低。
微内核结构
将最基本的功能作为内核存在,主要包括最小的进程管理、内存管理和通信功能,其他功能作为系统程序或用户程序出现。
内核态可以访问任何数据,而用户态不能访问内核数据。当前指令为CS:IP用CS最低两位表示:0为内核态,3为用户态。在运行指令时会对权限进行检查。
如何进入内核态
使用中断指令INT(trap陷阱指令,linux为0x80)int指令将CS的cpl改变为0,进入内核态,这是用户态程序进入内核态的唯一方式。因此系统调用的具体过程实现如下:用户程序中包含int 0x80的代码,由os处理中断代码获取中断调用号,os根据编号执行相应的代码。
系统调用处理的过程
用户程序->system call 第i号程序->int 0x80 ->保护现场->取出现场调用号、查询入口地址、进入相应的地址->结束调用、恢复现场->返回用户态程序
系统调用的参数传递
eax中存储系统调用号
最多直接传递3个参数:使用寄存器ebx、ecx、edx传递参数
传递参数的种类总结:
直接用寄存器传参,最多3个参数
指定内存块传参,可以用ebx、ecx、edx传递内存地址和参数数目
使用系统堆栈,可以传递任意多个参数,此时寄存器可用可不用
API和system call区别
API是系统调用的接口,API是system call的封装,System Call更加底层,使用需要知道更多的细节,API使用更加方便,可移植性高
系统调用的类别
进程控制
创建进程,进入可执行状态、唤醒进程、挂起进程、分配内存释放内存等。
文件管理
创建、删除、读写、打开关闭、属性获取设置、重定位等。
设备管理
请求、释放、读、写、重定位、属性获得、设置、连接与断开
信息维护
通信
系统结构
简单结构
整个操作系统似乎是个单一的整体,不注重模块的划分和接口与功能层次。
模块化
面向对象技术生成模块化的内核。使用动态加载模块,现代UNIX,Solaris,Linux, Mac os X
分层结构
整个操作系统分为若干层,至底向上层层封装,优点是构造和调试的简单化。缺点:分层法主要困难是对层的详细定义,这是因为一层只能使用其下的较低层。封层结构效率低。
微内核结构
将最基本的功能作为内核存在,主要包括最小的进程管理、内存管理和通信功能,其他功能作为系统程序或用户程序出现。
相关文章推荐
- 库、系统调用、操作系统和硬件之间的关系, linux 课下总结
- Unix/Linux操作系统的体系结构及系统调用介绍
- 《TCP/IP详解,卷2:实现》读书笔记-SOCKET的结构和系统调用
- Linux操作系统加载不同文件系统的总结
- Android 系统应用调用,intent的使用总结帖(转自android专区)
- Android 系统应用调用,intent的使用总结帖
- 【操作系统】添加系统调用
- VxWorks操作系统指南(附) 常用系统调用
- 转载 Android 中Intent调用系统程序总结
- 总结:结构体嵌套调用内层结构体数据的问题
- Python常用模块种类的系统介绍及与操作系统相关的调用和操作
- 操作系统总结之文件系统实现
- 操作系统的系统调用(MASM)
- 操作系统 基于clone()系统调用
- 操作系统设计与实现--系统调用
- Android 系统应用调用,intent 的使用总结
- 在linux操作系统中如何截获系统调用
- Python常用模块种类的系统介绍及与操作系统相关的调用和操作
- 【操作系统】编程技术--系统调用实现机理
- Android 中Intent调用系统程序总结