目录

  • 一、第1关
    • (一)准备工作
    • (二)`mygdb`侧用到的命令:
    • (三)第一关.txt
  • 二、第2关
    • (一)准备工作
    • (二)`mygdb`侧命令
    • (三)第二关.txt
  • 三、第3关
    • (一)准备工作
    • (二)`mygdb`侧命令
    • (三)第三关.txt
  • 四、第4关
    • (一)准备工作
    • (二)`mygdb`侧命令
    • (三)第四关.txt
  • 五、第5关
    • (一)准备工作
    • (二)`mygdb`侧命令
    • (三)第五关.txt

一、第1关

(一)准备工作

/home/headless/Desktop/workspace/myshixun/exp1/目录下将myls.c文件复制到//home/headless/os/linux-0.11-lab/b/目录下,在/home/headless/os/linux-0.11-lab文件夹下./run启动bochs,输入下述命令

mcopy b:myls.c .
gcc myls.c -o myls
sync

退出bochs虚拟机,分别打开两个终端在~/os/linux-0.11-lab输入./rungdb./mygdb

(二)mygdb侧用到的命令:

b do_execve
c
c
c
c
#(现在在bochs虚拟机中输入./myls)
b sys_open
c
p current->start_code+filename
finish
# p/x current->filp[3] #本行和下一行是为了得到0x23fd0
# p *(file *) 0x25e60
p *(struct m_inode *) 0x23fd0
# p current->file[3]->f_inode->i_zone[0] #其实这个命令直接打印出问题要求的块号,但是这样的命令过不了评测
b sys_read
c
b bread
c
finish
p *(struct buffer_head *) 0x28314
x/50s 0x3cd800
q
y

第一题:./myls的pid=6,b system_call时候找pid=4的,重复的也写,不写sys_前缀,

(三)第一关.txt

1.该进程运行时会依次执行哪些系统调用?(open,fstat,brk,brk,brk,brk,read,ioctl,read,write,close,write,close,exit)
注:逗号不够自己添加英文逗号。
2.该进程第一次执行 open 系统调用时,打开的文件名是什么?(".")
3.该进程第一次执行 open 系统调用返回时,返回值是什么?(3)该文件的(内存)索引节点中记录的第一个数据块的块号是什么?(4721)
4.该进程第一次通过 read 系统调用执行 bread 函数时,参数 block 的值是什么?(4721)
5.上述这次 bread 函数调用返回时,返回的缓冲区头指针的值是什么?(0x28314)该缓冲区头所指向的缓冲区的起始地址是什么?(0x3cd800)文件名 hello.c 在该缓冲区内的起始地址是什么?(0x3cd832)

二、第2关

(一)准备工作

/home/headless/Desktop/workspace/myshixun/exp2/目录下将mysh.c文件复制到//home/headless/os/linux-0.11-lab/b/目录下,在/home/headless/os/linux-0.11-lab文件夹下./run启动bochs,输入下述命令

mcopy b:mysh.c .
gcc mysh.c -o mysh
sync

退出bochs虚拟机,分别打开两个终端在~/os/linux-0.11-lab输入./rungdb./mygdb

(二)mygdb侧命令

b do_execve
c
c
c
c
# 此时在bochs虚拟机中输入./mysh
c
# 此时在bochs虚拟机中输入ls
p current->start_code+filename
finish
q
y

(三)第二关.txt

1.在执行 mysh 之前,环境变量 PATH 的值是多少?(":/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:/etc:/usr/etc")
2.输入命令 ls 后,执行的可执行文件的全名是什么?("/usr/bin/ls")该次 do_execve 函数调用的返回值是什么?(0)

三、第3关

(一)准备工作

/home/headless/Desktop/workspace/myshixun/exp3/目录下将0.5.2.tgz文件复制到//home/headless/os目录下,在/home/headless/os/linux-0.11-lab文件夹下输入下述命令

tar -zxvf ../0.5.2.tgz
cd 0.5.2/linux
make clean;make
cd ../..
rm cur
ln -s 0.5.2 cur
./rungdb

在另一个终端中输入./mygdb

(二)mygdb侧命令

b do_execve
c
c
# # 此时在bochs虚拟机中输入ls
p current->start_code+filename
finish
q
y

(三)第三关.txt

1.输入命令 ls 后,执行的可执行文件的全名是什么?("ls")该次 do_execve 函数调用的返回值是什么?(-2)

四、第4关

(一)准备工作

/home/headless/Desktop/workspace/myshixun/exp4/目录下将0.5.3.tgz文件复制到//home/headless/os目录下,在/home/headless/os/linux-0.11-lab文件夹下输入下述命令

tar -zxvf ../0.5.3.tgz
cd 0.5.3/linux
make clean;make
cd ../..
rm cur
ln -s 0.5.3 cur
./rungdb

在另一个终端中输入./mygdb

(二)mygdb侧命令

b do_execve
c
c
# 此时在bochs虚拟机中输入ls
p current->start_code+filename
finish
q
y

(三)第四关.txt

1.输入命令 ls 后,执行的可执行文件的全名是什么?("/usr/bin/ls")该次 do_execve 函数调用的返回值是什么?(0)

五、第5关

(一)准备工作

/home/headless/Desktop/workspace/myshixun/exp5/目录下将0.5.4.tgz文件复制到//home/headless/os目录下,在/home/headless/os/linux-0.11-lab文件夹下输入下述命令

tar -zxvf ../0.5.4.tgz
cd 0.5.4/linux
make clean;make
cd ../..
rm cur
ln -s 0.5.4 cur
./rungdb

在另一个终端中输入./mygdb

(二)mygdb侧命令

b do_execve
c
c
p current->start_code+filename

(三)第五关.txt

1.在出现上述故障时,系统执行的最后一个可执行文件的全名是什么?("/etc/update")
2.如果用版本 0 内核启动系统,然后手动执行该可执行文件(只输入全文件名),可以正常结束吗?(不可以)填可以或不可以!

记一次操作系统实验测试相关推荐

  1. 操作系统实验报告4:Linux 下 x86 汇编语言3

    操作系统实验报告4 实验内容 验证实验 Blum's Book: Sample programs in Chapter 08, 10 (Basic Math Functions and Using S ...

  2. linux内核打开prntk,操作系统实验一向Linux内核增加一个系统调用.docx

    操作系统实验一: 向Linux内核增加一个系统调用 xx 711103xx 2012年3月18日 一.实验目的 通过实验,熟悉Linux操作系统的使用,掌握构建与启动Linux内核的方法:掌握用 户程 ...

  3. 操作系统实验4—磁盘调度

    操作系统实验4-磁盘调度 文章目录 操作系统实验4-磁盘调度 实验描述 设计思路 上机代码 测试结果 心得体会 实验描述 实验内容: 编写一个磁盘调度程序,模拟操作系统对磁盘的调度. 实验目的: 本实 ...

  4. 操作系统实验2—实现动态分区分配模拟程序

    操作系统实验2-实现动态分区分配模拟程序 文章目录 操作系统实验2-实现动态分区分配模拟程序 实验描述 设计思路 上机代码 测试结果 心得体会 实验描述 实验内容: 编写一个可变分区存储管理程序,模拟 ...

  5. 操作系统实验1—实现单处理机下的进程调度程序

    操作系统实验1-实现单处理机下的进程调度程序 文章目录 操作系统实验1-实现单处理机下的进程调度程序 实验描述 设计思路 上机代码 测试结果 心得体会 实验描述 实验内容: 编写一个单处理机下的进程调 ...

  6. 操作系统实验报告18:硬盘柱面访问调度算法

    操作系统实验报告18 实验内容 实验内容:硬盘调度. 编写 C 程序模拟实现课件 Lecture25 中的硬盘柱面访问调度算法 包括 FCFS.SSTF.SCAN.C-SCAN.LOOK.C-LOOK ...

  7. 操作系统实验报告17:请求页面置换算法

    操作系统实验报告17 实验内容 实验内容:虚拟存储管理. 编写一个 C 程序模拟实现课件 Lecture24 中的请求页面置换算法 包括FIFO.LRU (stack and matrix imple ...

  8. 操作系统实验报告16:CPU 调度

    操作系统实验报告16 实验内容 实验内容:CPU 调度. 讨论课件 Lecture19-20 中 CPU 调度算法的例子,尝试基于 POSIX API 设计一个简单调度器(不考虑资源竞争问题): 创建 ...

  9. 操作系统实验报告15:进程同步与互斥线程池

    操作系统实验报告15 实验内容 实验内容:进程同步. 内容1:编译运行课件 Lecture18 例程代码. Algorithms 18-1 ~ 18-9. 内容2:在 Lab Week 13 的基础上 ...

最新文章

  1. 管理分布式session的四种方式。
  2. GO基础编程-自定义函数
  3. arg是什么函数_java后端开发三年!你还不了解Spring 依赖注入,凭什么给你涨薪...
  4. socket的阻塞非阻塞方法在缓冲区的差别
  5. php 将数组导出excel,#php 怎样将 数组导出excel文件#前端导出excel表格
  6. 双向链表的插入和删除算法描述
  7. 影响网站快照异常的因素有哪些?
  8. Spark常用RDD算子 - saveAsTextFile、saveAsObjectFile 可保存到本地文件或hdfs系统中
  9. 分数化小数 Fractions to Decimals
  10. Java函数式编程知识分享!
  11. (字符串)字符串中首先出现两次的字符
  12. java sleep 循环_while循环中的Thread.sleep()
  13. CCF NOI1044 最近元素
  14. 这款中间件支持多线程,居然吊打牛B的 Redis!
  15. html获取xml的数据,xml格式获取值
  16. Excel实用技巧辞典 01
  17. 记录一个 Python 的 re.match() 的小坑
  18. 微软Excel 2007 打勾方框/框里打勾
  19. EXCEL数据计算结果不对
  20. avr c语言编译器,[VR虚拟现实]AVR单片机C语言编译器.doc

热门文章

  1. Windows通过使用命令行(CACLS)修改文件权限
  2. 李沐实用机器学习(class3, class4)
  3. 价值几十亿美金的名字,Microsoft Windows的由来
  4. 【花式表白】,情书加密,这样泡小师妹,没跑了
  5. Ubuntu下Charm-Crypto安装
  6. AI医药论文阅读-使用药物描述和分子结构从文献中提取药物-药物相互作用
  7. MongoDB-查询语句中$exists以及结合$ne、$nin、$nor、$not使用介绍
  8. 智能合约漏洞——拒绝服务
  9. 【NVMe2.0b 5】NVM Subsystem
  10. MATLAB——Regionprops详解