《Linux内核分析》 第五节 扒开系统调用的三层皮(下)
2016-03-26 13:32
507 查看
《Linux内核分析》第五节扒开系统调用的三层皮(下)
20135307一、给MenusOS增加time和time-asm命令
给MenuOS增加time和time-asm命令需要更新menu代码
在main函数中增加menuconfig
增加对应的time和timeasm函数
makerootfs
二、使用GDB跟踪系统调用内核函数sys_time
实验报告
分析system_call中断处理过程使用gdb跟踪分析一个系统调用内核函数(您上周选择那一个系统调用),系统调用列表参见http://codelab.shiyanlou.com/xref/linux-3.18.6/arch/x86/syscalls/syscall_32.tbl,推荐在实验楼Linux虚拟机环境下完成实验。
根据本周所学知识分析系统调用的过程,从system_call开始到iret结束之间的整个过程,并画出简要准确的流程图
博客内容的具体要求如下:
题目自拟,内容围绕系统调用system_call的处理过程进行;
博客内容中需要仔细分析system_call对应的汇编代码的工作过程,特别注意系统调用返回iret之前的进程调度时机等。
总结部分需要阐明自己对“系统调用处理过程”的理解,进一步推广到一般的中断处理过程
用实验楼的虚拟机打开shell,更新menu,给MenuOS增加Pid和PidAsm
使用gdb跟踪分析
分析内核调用汇编代码
实验截图
从系统调用到中断返回的函数流程图
总结
当操作系统接收到系统调用请求后,会让处理器进入内核模式,从而执行诸如I/O操作,修改基址寄存器内容等指令,而当处理完系统调用内容后,操作系统会让处理器返回用户模式,来执行用户代码。当系统调用完成后,把控制权交回到发起调用的用户进程前,内核又会有一次调度。如果发现有优先级更高的进程或当前进程的时间片用完,那么会选择优先级更高的进程或重新选择进程执行.相关文章推荐
- CentOS 6.5 升级内核 kernel
- linux 挂载命令mount umount详解
- linux ln 命令详解
- 如何注销Linux下的用户
- Linux 多线程1
- Linux C实现简单的UDP服务器客户端通信
- 《Linux Device Drivers》第十章 中断处理——note
- Linux 7个运行级别(runlevel)
- linux 上网配置(NAT)
- Linux下LVS搭建负载均衡集群
- centos mysql忘记密码
- linux 命令
- [linux basic]基础--信号
- linux嵌入式qt的屏幕旋转与字体大小问题
- Linux操作系统 sleep(0)、sleep(1)和sleep(-1)的区别,他们各有什么作用
- linux挂载的磁盘类型
- win32平台而非linux平台下 深入分析Sleep(0)与Sleep(1)的区别
- ubuntu 交叉编译arm linux 内核小例子
- 交叉编译工具链介绍《Building Embedded Linux Systems》
- Linux并发(易混淆的基本API)