头歌平台 操作系统课堂练习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 个系统调用的编号和名字分别是什么?

  • 27
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值