zoukankan
html css js c++ java
2019-2020-1 20199323《Linux内核原理与分析》第六周作业
实验
先进入LinuxKernel,删除menu,下载一个新的menu,然后编译menu。
然后使用gdb跟踪
运行到sys_time,后输入time可以看到time命令的系统调用
输入list,可以看到代码
输入s单步执行,然后输入finish把这个函数执行完
单步执行,然后return i获得数值
在system_call处设置断点,然后输入time-asm,还是停在了SYSCALL_DEFINE1,并不能在system_call停下
分析
中断指令INT 0x80执行时,系统调用号会被放入 eax 寄存器中,system_call函数可以读取eax寄存器获取,然后将其乘以4,生成偏移地址,在syscall_exit里面判断当前的任务是否##需要处理syscall_exit_work,然后跳转到work_pending,里面有work_notifysig处理信号,然后跳转到restore_all,恢复现场返回系统调用到用户态。
查看全文
相关阅读:
互斥锁
信号量、互斥体和自旋锁
【设计模式】template method(模板方法)-- 类行为型模式5.10
C/C++中的auto关键词
【设计模式】observer(观察者)-- 对象行为型模式5.7
UML图
MapReduce阅读
shell提取文件后缀名,并判断其是否为特定字符串
shell编程--遍历目录下的文件
Linux shell字符串截取与拼接
原文地址:https://www.cnblogs.com/w741741/p/11742380.html
最新文章
Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法
oracle提高查询效率的34条方法
Linuxs升级系统自带的openssh
SONObjetc和String Map Bean互转,JSONArray和String List互转
LINUX系统配置
多线程callable使用方法
HttpConnection详解【转】
CentOS7 64位下MySQL区分大小写
linux管理防火墙
CentOS7 64位下MySQL5.7安装与配置(YUM)
热门文章
各种jar包下载地址
java中int相除取小数点后两位或限定位数
随笔java面试基础
bootstrap中模态框如果放入form表单中会存在的问题
路由器无线网速正常,有线网速慢的解决办法
db2数据库基本添加删除表字段总结
db2数据库创建删除主键约束和创建删除唯一键约束
lua load
C # ##
使用do{ } while(0)的好处
Copyright © 2011-2022 走看看