linux内核分析 第四周
一、系统调用的三层皮
内核态、用户态
Intel x86 CPU有四个权限分级,0-3。Linux只取两种,0是内核态,3是用户态。 0xc0000000以上的空间只能在内核态下访问 0x00000000-0xbfffffff两种状态下都可以访问
API、中断向量、中断服务程序
中断向量(0x80)用于中断。在用户态和内核态转换、或者进程转换时使用。 系统调用的服务例程中,中断向量(0x80)是linux中所有系统调用的入口点,每个系统调用至少有一个参数,即系统调用号,系统调用号将API与中断服务程序关联起来,系统调用号保存在eax中。
二、实验
云课堂中老师用了13号系统调用演示给我们看,由于网络不稳定,我就在自己电脑上的虚拟机中进行了实验。
29号系统调用pause();
让进程暂停直到信号出现。
实验截图
系统直接调用
内嵌式汇编调用
三、出现的问题
由于实验没有在实验楼上进行,可能是linux版本不一样吧。编译时,系统对"%%eax"报错,好像是汇编出错。经反复调试,最后用了"%eax"。系统就不再报错,运行结果和预期的一样。截图如下:
然后上网查也没用具体的解释……
还请各位多多指教哦
参考资料
1.http://codelab.shiyanlou.com/xref/linux-3.18.6/arch/x86/syscalls/syscall_32.tbl
2.http://blog.sina.com.cn/s/blog_4d7e63020101lj43.html
《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
linux内核分析 第四周的更多相关文章
- LINUX内核分析第四周学习总结——扒开系统调用的“三层皮”
LINUX内核分析第四周学习总结--扒开系统调用的"三层皮" 标签(空格分隔): 20135321余佳源 余佳源 原创作品转载请注明出处 <Linux内核分析>MOOC ...
- 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.163.com/course ...
- Linux内核分析第四周学习总结——系统调用的工作机制
Linux内核分析第四周学习总结--系统调用的工作机制 内核态 执行级别高,可以执行特权指令,访问任意物理地址,在intel X86 CPU的权限分级为0级. 用户态 执行级别低,只能访问0x0000 ...
- Linux内核分析第四周学习总结:扒开系统调用的三层皮(上)
韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.用户态.内核 ...
- LINUX内核分析第四周学习总结——扒开应用系统的三层皮(上)【转】
转自:http://www.cnblogs.com/lalacindy/p/5276874.html 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://moo ...
- Linux内核分析第四周学习总结
朱国庆+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 扒开系统调用的三层皮 ...
- 20135320赵瀚青LINUX内核分析第四周学习笔记
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周的内容主要是讲解系 ...
随机推荐
- 0005python中的静态方法和类方法
#!/usr/bin/env python# coding=utf-8 __metaclass__ = type class StaticMethod: @staticmethod def foo() ...
- 0003python中的可变参数
>>>def foo(x,y,z,*args,**kargs): print x print y print z print args print kargs >>> ...
- AllowOverride None
PHP Advanced and Object-Oriented Programming Larry Ullman <Directory /> AllowOverride None < ...
- anti-VM tech
反虚拟机技术 版权声明:本文为博主原创文章,未经博主允许不得转载. 1:浮点运算的花指令 如果不是花指令则更好了 2:借助EPO思想,解密函数远离入口点 3:多线程技术 4:SEH技术 5:元多形 ...
- http://www.cnblogs.com/linxiyue/p/8244724.html
http://www.cnblogs.com/linxiyue/p/8244724.html
- 洛谷P1967 货车运输 [noip2013] 图论
正解:kruskal+LCA 解题报告: 哇真实心痛了...明明都没多少时间了我居然耗了一个上午+一个中午在上面?哭死辽我QAQ果然菜是原罪QAQ 然后这题,我先港下60pts做法趴?话说其实我觉得我 ...
- Html中常用的属性
!important //增加权重 word-break:break-all //允许在单词内换行 keep-all //只在半角空格或连接字符串换行 --这个属性一般用于文章段落 ...
- PAT 1101 Quick Sort[一般上]
1101 Quick Sort(25 分) There is a classical process named partition in the famous quick sort algorith ...
- smali过滤特定字符串
过滤插入代码: const-string/jumbo v0, "aaaaaaa" invoke-static {v0}, Lcom/bihu/insurancerobot/util ...
- Summary: Stack Overflow Error
What is a stack overflow error? Parameters and local variables are allocated on the stack (with refe ...