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,恢复现场返回系统调用到用户态。

  • 相关阅读:
    loj10008家庭作业
    loj10006数列分段
    loj10005数列极差
    loj10004智力大冲浪
    codevs 1996 矿场搭建
    11.3 上午考试
    11.2 晚上考试
    11.2 下午考试
    11.2 上午考试
    11.1 下午考试
  • 原文地址:https://www.cnblogs.com/w741741/p/11742380.html
Copyright © 2011-2022 走看看