Linux内核分析——分析system_call中断处理过程
万子惠 + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
我选择的是getuid:
int Getuid(int argc ,char *argv)
{
pid_t uu;
uu=getuid();
printf("uu = %d \n", uu);
return 0;
}
int GetuidAsm(int argc ,char *argv)
{
pid_t uu;
uu = getuid();
asm volatile(
"mov $0x24,%%eax\n\t"
"int $0x80\n\t"
"mov %%eax,%0\n\t"
:"=m"(uu)
);
printf("uu = %d \n",uu);
return 0;
}
1)先更新menu
2)在main函数中添加新的MenuConfig并添加相应函数
3)之后进入menu中使用make rootfs=>自动编译生成根文件系统【还自动启动起来~】

然后我们开始调试:
1)qemu -kernel linux-3.18.6/arch/x86/bzImage -initrd rootfs.img -s -S
2)gdb
3)file linux-3.18.6/vmlinux
4)target remote:1234

5)之后设置断点:
这个函数我好像和表里不一样 我设置了两个sys_getuid的断点
可以看到运行停在了这里(被压到背后的那个黑色部分)

6)之后使用s进行单步的运行,在使用finish运行到最后,这时候
在system_call设置断点,看到这是一段在entry32.s的特殊汇编代码。


从system_call开始到iret结束过程流程图

system_call的处理过程中:
xyz<=系统调用号=>sys_xyz()
int 0x80<=中断向量=>system_call
Linux内核分析——分析system_call中断处理过程的更多相关文章
- 《Linux内核分析》-- 扒开系统调用的三层皮(下)之system_call中断处理过程 20135311傅冬菁
20135311傅冬菁 原创作品 <Linux内核分析>MOOC课程 分析system_call中断处理过程 内容分析与总结: 系统调用在内核代码中的工作机制和初始化 系统调用在用户态中 ...
- 《Linux内核分析》第五周:分析system_call中断处理过程
实验 分析system_call中断处理过程 使用gdb跟踪分析一个系统调用内核函数(您上周选择那一个系统调用),系统调用列表参见http://codelab.shiyanlou.com/xref/l ...
- Linux内核分析-分析system_call中断处理过程
姓名:江军 ID:fuchen1994 分析system_call中断处理过程 使用gdb跟踪分析一个系统调用内核函数(您上周选择那一个系统调用),系统调用列表参见http://codelab.shi ...
- Linux内核设计第五周学习总结 分析system_call中断处理过程
陈巧然原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 使用gdb跟踪分析一 ...
- Linux内核分析第五周学习总结——分析system_call中断处理过程
Linux内核分析第五周学习总结--分析system_call中断处理过程 zl + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...
- 分析system_call中断处理过程
分析system_call中断处理过程 上周我们使用gcc内嵌汇编调用系统调用,这次我们具体分析下过程. 将getpid嵌入menuos 代码从github下载,步骤如下: 1. 增加一个函数,get ...
- 作业五:分析system_call中断处理过程
分析system_call中断处理过程 一.MesuSO增加getpid和getpid-asm 二.使用GDB跟踪系统调用内核函数sys_getpid 分析system_call中断处理过程 使用gd ...
- 通过分析system_call中断处理过程来深入理解系统调用
通过分析system_call中断处理过程来深入理解系统调用 前言说明 本篇为网易云课堂Linux内核分析课程的第五周作业,上一次作业中我以2个系统调用(getpid, open)作为分析实例来分析系 ...
- 20135202闫佳歆--week5 分析system_call中断处理过程--实验及总结
week 5 实验:分析system_call中断处理过程 一.使用gdb跟踪分析一个系统调用内核函数(上周选择那一个系统调用)--getpid 复习视频: 如何实现? - 更新menu代码到最新版 ...
- linux内核与分析 心得与体会
作业目录: (1)计算机是如何工作的:http://www.cnblogs.com/20135335hs/p/5213394.html (2)操作系统是如何工作的:http://www.cnblogs ...
随机推荐
- webservice服务的简单应用
本人目前刚接触到webservice服务,知道它是一个为外部提供接口的服务,下面大概讲一下webservice是如何应用的. 在此我只针对ASP.NET 讲一个是如何应用的: 1. 打开VS ,在WE ...
- JAVA集合类汇总
一.集合与数组 数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用. ...
- 根据屏幕大小动态设置字体rem
1.根据屏幕大小动态设置字体rem var docEl = document.documentElement, //当设备的方向变化(设备横向持或纵向持)此事件被触发.绑定此事件时, //注意现在当浏 ...
- 解决OS X系统连接VPN后无法访问内网资源的问题
该问题是第一次使用OS X系统连接VPN遇到的问题,现象是连接VPN成功,但无法访问公司的内网资源. 主要原因还是VPN设置上的问题,在系统偏好设置中打开VPN连接,里面有个高级设置,如图: 点击高级 ...
- HTTP_REFERER
.htaccess可以禁止某个来源(referer)的访问,当某个网站对你的网站图片或CSS等文件直接引用的时候,禁止其访问是避免更大损失的关键. RewriteEngine onRewriteCon ...
- linux 网卡问题 Device eth0 does not seem to be present,delaying initialization.
Device eth0 does not seem to be present,delaying initialization. 网上搜索后才发现原因所在:原来vmware在复制了虚拟机后会自动生成一 ...
- toolsqa-IMPORTANCE
http://toolsqa.com/cucumber/cucumber-options/
- fonts.useso.com 访问变慢
fonts.useso.com 替换为 fonts.lug.ustc.edu.cn ajax.useso.com 替换为 ajax.lug.ustc.edu.cn the ...
- Eclipse+Maven创建webapp项目
Eclipse+Maven创建webapp项目<一> 1.开启eclipse,右键new-->other,如下图找到maven project 2.选择maven project,显 ...
- DIV的不能包住子集解决办法
在div的样式中加上:overflow:hidden,或者float:left或right