• 2020-2021-1 20209315《Linux内核原理与分析》第六周作业


    作业信息

    这个作业属于哪个课程 <2020-2021-1Linux内核原理与分析)>
    这个作业要求在哪里 <2020-2021-1Linux内核原理与分析第六周作业>
    这个作业的目标 给MenuOS添加上周实现的系统调用、使用gdb分析sys_time执行过程、了解系统调用执行过程
    作业正文 <本博客>

    分析system_call中断处理过程

    1.给MenuxOS增加命令

    cd ~/LinuxKernel
    rm -rf menu
    git clone https://github.com/mengning/menu.git<br>cd menu<br>make rootfs
    

    使用 rm -rf menu指令强制删除当前的menu文件夹

    使用git clone指令克隆新的menu文件夹过来

    进入新的menu文件夹下,打开test.c文件可以看到增加了Time以及TimeAsm函数

    即新增了time和time-asm两条命令

    进入到menu当中,执行make rootfs脚本,自动编译并生成根文件系统

    在MenuOs当中输入time和time-asm命令都可以输出当前系统时间

    2.使用gdb跟踪系统调用内核函数sys_time

    qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -S -s
    通过qemu命令启动内核

    重新打开一个shell

    cd ~/LinuxKernel gdb(gdb)file linux-3.18.6/vmlinux # 建立gdb和gdbserver之间的连接,按c 让qemu上的Linux继续运行 
    (gdb)target remote:1234 # 断点的设置可以在target remote之前,也可以在之后
    

    用b sys_time命令在sys_time处设置断点

    在QEMU终端中输入time后可以看到命令只执行一半

    3.分析

    4.遇到的问题

    实验楼比较卡,操作了好多次才完成了本次实验

  • 相关阅读:
    安装开发工具
    CSS基础
    CSS动画
    CSS效果
    CSS布局
    CSS预处理语言
    React开发笔记
    Vue2.0学习笔记
    Vue-cli3.0开发笔记
    项目开发技巧
  • 原文地址:https://www.cnblogs.com/lmmn/p/13977046.html
Copyright © 2020-2023  润新知