Linux内核分析第五周总结
系统调用在内核代码中的工作机制和初始化

xyz()与sys_xyz()是通过系统调用号联系在一起的
0x80与system_call是通过中断向量联系起来的
系统调用机制的初始化

用汇编代码编写系统调用的过程:
- 确定出需传入的参数,以及函数的返回值
- 选择适当的寄存器存储输入参数值,将输入参数值传给相应的寄存器
- 将系统调用号存入到eax寄存器中,并使用"int $0x80"语句,进入中断处理程序,中断号80代表进入系统调用
进入系统调用后:
- 进入sys_ call函数,该函数调用涉及到的系统调用函数(sys _ xxx函数)
- 执行sys_ xxx函数的内部细节,最终将返回值传递给sys_ call函数过程
- 在sys_ call函数中iret最后的结果
实验
在main函数中增加MenuConfig和详细函数

Make rootfs


设置断点




进行单步调试

总结
系统调用就是一个函数,它需要用到内核中的代码,但这部分代码我没有办法直接访问,所以通过系统调用这个中介,它去让内核执行需要执行的代码,把最后的结果告诉用户。这时为用户就是什么都不知道了,等着系统调用来告诉用户结果。
Linux内核分析第五周总结的更多相关文章
- LINUX内核分析第五周学习总结——扒开系统调用的“三层皮”(下)
LINUX内核分析第五周学习总结--扒开系统调用的"三层皮"(下) 标签(空格分隔): 20135321余佳源 余佳源 原创作品转载请注明出处 <Linux内核分析>M ...
- LINUX内核分析第五周学习总结——扒开应用系统的三层皮(下)
LINUX内核分析第五周学习总结——扒开应用系统的三层皮(下) 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/cou ...
- 20135327郭皓--Linux内核分析第五周 扒开系统调用的三层皮(下)
Linux内核分析第五周 扒开系统调用的三层皮(下) 郭皓 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/U ...
- linux内核分析第五周学习笔记
linux内核分析第五周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.co ...
- Linux内核分析第五周——扒开系统调用的“三层皮”(下)
Linux内核分析第五周--扒开系统调用的"三层皮"(下) 李雪琦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.1 ...
- Linux内核分析第五周学习总结——分析system_call中断处理过程
Linux内核分析第五周学习总结--分析system_call中断处理过程 zl + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...
- Linux内核分析——第五周学习笔记
第五周 扒开系统调用的“三层皮”(下) 一.知识点总结 (一)给MenuOS增加time和time-asm命令 在实验楼中,首先 强制删除menu (rm menu -rf) 重新克隆一个新版本的me ...
- Linux内核分析第五周学习总结:扒开系统调用的三层皮(下)
韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.给MenuO ...
- linux内核分析 第五周
一.实验相关 1.下载老师最新的menu文件,并在其中添加上周所编写的代码,并运行 下载 添加 运行 2.gdb调试跟踪 gdb设置跟踪文件(先进入linux-3.18.6所在的文件) gdb设置断点 ...
- “Linux内核分析”第五周报告
张文俊+ 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 学习总结 1.给M ...
随机推荐
- MATLAB线性方程组的迭代求解法
MATLAB线性方程组的迭代求解法 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 一.实验目的 1. 借助矩阵按模最大特征值,判断解方程组的Jacobi ...
- Linux Java 环境配置及内置tomcat部署
tar zxvf jdk-8u101-linux-x64.tar.gz vi /etc/profile JAVA_HOME=/home/puma/jdk1.8.0_111JAVA_BIN=/home/ ...
- B - Modular Inverse
The modular modular multiplicative inverse of an integer a modulo m is an integer x such that a-1≡x ...
- salt安装及使用部分笔记
安装脚本install_salt.sh: #!/bin/bash####安装第三方yum源rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel ...
- 离线安装Cloudera Manager 5和CDH5(最新版5.9.3) 完全教程(四)数据库安装(单节点)
一.卸载CentOS自带的MySQL 1.1 查看之前是否安装过mysql [root@master mysql]# rpm -qa|grep -i mysql mysql-libs--.el6.x8 ...
- day14 Python函数之可变长参数
函数参数 1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元.因此,形参只在函数内部有效.函数调用结束返回主调用函数后则不能再使用该形参变量 2.实参可以是常量.变量.表 ...
- 用脚本将excel,csv等文件导入数据库
文章转自 http://blog.csdn.net/lky5387/article/details/6043009 1.--导excel文件 select 订单编码 from OpenRowSet( ...
- matlab slice
前言:在地球物理勘探,流体空间分布等多种场景中,定位空间点P(x,y,x)的物理属性值Q,并绘制三维空间分布图,对我们洞察空间场景有十分重要的意义. 1. 三维立体图的基本要件: 全空间网格化 网格节 ...
- Android学习之基础知识十三 — 四大组件之服务详解第二讲(完整版的下载示例)
上一讲学习了很多关于服务的使用技巧,但是当在真正的项目里需要用到服务的时候,可能还会有一些棘手的问题让你不知所措.接下来就来综合运用一下,尝试实现一下在服务中经常会使用到的功能——下载. 在这一讲我们 ...
- sql语句,查询昨天的数据
如果在程序中,有前台传来两个时间点:beginTime和endTime,在sql查询中的限制条件就是查询昨天的数据,那么可以这样写: 但是如果在这里要查询昨天的数据的话, 则不能简单地在开始时间的那里 ...