本文主要是介绍头歌平台 操作系统课堂练习2.3:系统调用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第1关:版本1内核执行的前 3 个系统调用
任务描述
分析版本1内核,回答下列问题:
系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?
相关知识
为了完成本关任务,你需要:跟踪系统调用的发生。
环境准备
本关卡使用版本 1 内核进行分析,版本 1 内核文件存放在/data/workspace/myshixun/exp1
文件夹中。
使用 gdb 调试内核,跟踪到 main 函数入口的方法与之前实训一样。
cp /data/workspace/myshixun/exp1/1.tgz ~/os
cd ~/os/linux-0.11-lab
tar -zxvf ../1.tgz
rm -rf cur
ln -s 1 cur
cd 1/linux
make
cd ../..
./rungdb新建一个终端terminal
cd ~/os/linux-0.11-lab
./mygdb
跟踪系统调用的发生
系统调用的总控函数是 system_call ,只要在这里设断点,即可捕获系统调用的发生,如下图所示:
此时,系统调用号存放在寄存器 eax 中
重复上述操作
b system_call
c
disas
display $eax
disas
b *0x7780
c
x/3i $eip
si
再次重复
b system_call
c
disas
display $eax
disas
b *0x7780
c
x/3i $eip
si
编程要求
根据相关知识,回答问题:(将答案填写在/data/workspace/myshixun/第一关.txt
中)
系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?
这篇关于头歌平台 操作系统课堂练习2.3:系统调用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!