zoukankan      html  css  js  c++  java
  • 2020-2021-1 20209316《Linux内核原理与分析》第六周作业

    《Linux内核原理与分析》第六周作业

    这个作业属于哪个课程 《Linux内核原理与分析》
    这个作业要求在哪里 2020-2021-1 《Linux内核原理与分析》第六周作业
    这个作业的目标 给MenuOS增加命令,使用gdb跟踪分析系统调用,分析system_call工作过程
    作业正文 https://www.cnblogs.com/camusxd/p/13982791.html

    一、实验五:分析system_call中断处理过程

    1.给Menuos增加命令

    rm -rf menu
    git clone https://github.com/mengning/menu.git
    cd menu
    make rootfs
    

    实践结果

    在menu目录中找到test.c文件打开,添加并写入getPid()方法

    由于test.c种通过MenuConfig()定义了调用函数名,在MenuOS中直接输入pid可以调用,获得当前进程为1

    2.gdb跟踪调用time函数的过程

    • 退回LinuxKernel目录,shift+ctrl+o切换横屏,然后执行如下命令

    • 打开gdb,在start_kernel设置断点,执行如下命令:
    file linux-3.18.6/vmlinux
    target remote:1234
    b start_kernel
    

    继续执行后面的程序,在sys_time函数中设置断点,在MenuOS中输入time后执行gdb
    实践截图如下:

    调用list,可以显示当前断点附近代码内容
    实践截图如下:

    对sys_time函数进行跟踪,最终显示系统时间
    实践截图如下

    1. system_call代码对应的工作过程分析

    二、反思总结
    这次详细学习了系统调用,学会了怎么实现调用的更改接口,收益满满。

  • 相关阅读:
    wc 统计程序
    读C#程序
    VS2013 单元测试
    android开发心得之知识的量变到质变
    大学第一篇博客
    团队作业七
    团队作业六
    团队作业五
    团队作业四
    团队作业三
  • 原文地址:https://www.cnblogs.com/camusxd/p/13982791.html
Copyright © 2011-2022 走看看