20135239 益西拉姆 linux内核分析 扒开系统调用的三层皮(下)
2016-03-27 14:20
441 查看
一、 给MenuOS增加time-asm命令
代码解释1.-rf:强制删除 2.clone :重新克隆 3.time-asm:显示系统时间的汇编形式
给MenuOS增加time和time-asm命令
更新menu代码到最新版
在main函数中增加MenuConfig
增加对应的Time函数和time-asm函数
make rootfs
二、使用gdb跟踪系统调用内核函数sys_time
解释得几点:调试的时候一直按n单步执行会进入schedule函数
sys-time返回后进入汇编代码处理gdb无法继续跟踪。
执行int 0x80之后system_call对应的代码
三、系统调用在内和代码中的工作机制和初始化
回顾: 用户态和内核态的转变和匹配系统调用机制的初始化
- `\init\main.c start_kernel
trap_init();- \arch\x86\kernel\traps.c
#ifdef CONFIGX8632 set systemtrapgate(SYSCALLVECTER,&systemcall);setbit(SYSCALLVECTOR,used_vectors);
endif
四、简化后便于理解的sys_call伪代码
关键的信息- 在系统调用之前它有可能会形成进程调度
总结:内核可以看成很多种中断处理不同的集合。简单浏览system_call到iret之间的主要的代码
save all:保存现场iterrupet return 实际上就是irq_return宏。
work pending 里面的work notifysig是用来处理pending signal信号的。
schedule是个重要的代码,决定了进程调度的代码。
总结
本周就是继续去学代码,还有一个上周的巩固,很充实。相关文章推荐
- 浅谈Linux PCI设备驱动
- 《Linux操作系统分析》之分析系统调用system_call的处理过程
- LINUX内核分析第五周学习总结——扒开系统调用的“三层皮”(下)
- 百度实习生 一面
- 深入Linux PAM体系结构
- [Linux] Linux常用文本操作命令整理
- Linux内核分析 05
- Windows Linux 删除N天之前文件脚本
- usb总线系统介绍
- Linux系统启动流程简介
- CentOS启动流程详解
- 《Linux内核分析与实现》 第四周 读书笔记
- 进程间通信之-信号signal--linux内核剖析(九)
- 《Linux 内核分析》第五周
- 《Linux内核与分析》第五周
- linux内核分析第五次实验
- Linux 防火墙开放特定端口 (iptables)
- linux-常用命令
- Linux内核第五节 20135332武西垚
- linux系统centOS7安装