4.理解系统调用的工作机制
来源:互联网 发布:f117和f22 知乎 编辑:程序博客网 时间:2024/05/16 12:22
请注意:>原作者:张澍> 原创作品转载请注明出处> 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
- 实验步骤
- 实验分析
- 1内核态用户态
- 2一个系统调用的流程
- 3系统调用三层皮
- 总结
1.实验步骤
Linux中编辑运行:
$vim fork.c#include<stdio.h>#include<unistd.h>main(){ int pid = fork(); if(pid == -1) { printf("error\n"); } else if(pid == 0) { printf("This is the child process!\n"); } else { printf("This is the parent process! child process id = %d\n",pid); } return 0;}$gcc fork.c -o fork -m32 $./fork
运行结果
2.实验分析
2.1内核态/用户态
内核态:
- 可以直接操作内存的程序。
用户态:
- 间接操作内存的程序。
2.2一个系统调用的流程
- 寄存器上下文
- 用户态顶地址、当前状态字、当前CS:eip的值
- 保护现场
- 进入中断程序,保存需要用到的寄存器数据
- 恢复现场
- 退出中断程序,恢复保存寄存器的数据
2.3系统调用三层皮
3.总结
系统调用的意义:
- 把用户从底层的硬件编程中解放出来
- 极大的提高了系统的安全性
- 使用户程序具有可移植性
0 0
- 4.理解系统调用的工作机制
- 系统调用的工作机制
- 系统调用的工作机制
- Linux系统调用的工作机制
- 浅析linux系统函数调用的工作机制
- Linux系统调用的工作机制(上)
- 系统调用的理解
- 通过库函数API和C代码中嵌入汇编代码剖析系统调用的工作机制
- Linux内核分析之四——系统调用的工作机制
- 深入理解IIS的多线程工作机制
- 深入理解ceph-disk的工作机制
- 深入理解IIS的多线程工作机制
- Linux内核分析之系统调用工作机制简析
- 理解Linux的系统调用
- 系统调用过程的理解
- 对operator new调用机制的理解
- Windows系统消息机制的详细理解!
- 基于upstart机制系统会话的理解
- android studio常用快捷键
- JAVA String StringBuffer StringBuilder
- sed行处理详解(交换行,合并行,删除行等)
- 为什么要进行URL编码
- 凌宇的项目之旅
- 4.理解系统调用的工作机制
- java开发环境的配置
- Myeclipse Hibernate 方向工程生成映射文件出现 Generating Artifacts 问题
- 数塔问题
- 关于http urlencode 特殊箱号的那些事
- 贪心算法实例
- c++实验4
- 四种方式实现文件的复制
- Oracle -常用命令