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代码对应的工作过程分析

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

posted @ 2020-11-15 22:38  20209316滕源  阅读(101)  评论(0编辑  收藏  举报