记一次操作系统实验测试
目录
- 一、第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 内核启动系统,然后手动执行该可执行文件(只输入全文件名),可以正常结束吗?(不可以)填可以或不可以!
记一次操作系统实验测试相关推荐
- 操作系统实验报告4:Linux 下 x86 汇编语言3
操作系统实验报告4 实验内容 验证实验 Blum's Book: Sample programs in Chapter 08, 10 (Basic Math Functions and Using S ...
- linux内核打开prntk,操作系统实验一向Linux内核增加一个系统调用.docx
操作系统实验一: 向Linux内核增加一个系统调用 xx 711103xx 2012年3月18日 一.实验目的 通过实验,熟悉Linux操作系统的使用,掌握构建与启动Linux内核的方法:掌握用 户程 ...
- 操作系统实验4—磁盘调度
操作系统实验4-磁盘调度 文章目录 操作系统实验4-磁盘调度 实验描述 设计思路 上机代码 测试结果 心得体会 实验描述 实验内容: 编写一个磁盘调度程序,模拟操作系统对磁盘的调度. 实验目的: 本实 ...
- 操作系统实验2—实现动态分区分配模拟程序
操作系统实验2-实现动态分区分配模拟程序 文章目录 操作系统实验2-实现动态分区分配模拟程序 实验描述 设计思路 上机代码 测试结果 心得体会 实验描述 实验内容: 编写一个可变分区存储管理程序,模拟 ...
- 操作系统实验1—实现单处理机下的进程调度程序
操作系统实验1-实现单处理机下的进程调度程序 文章目录 操作系统实验1-实现单处理机下的进程调度程序 实验描述 设计思路 上机代码 测试结果 心得体会 实验描述 实验内容: 编写一个单处理机下的进程调 ...
- 操作系统实验报告18:硬盘柱面访问调度算法
操作系统实验报告18 实验内容 实验内容:硬盘调度. 编写 C 程序模拟实现课件 Lecture25 中的硬盘柱面访问调度算法 包括 FCFS.SSTF.SCAN.C-SCAN.LOOK.C-LOOK ...
- 操作系统实验报告17:请求页面置换算法
操作系统实验报告17 实验内容 实验内容:虚拟存储管理. 编写一个 C 程序模拟实现课件 Lecture24 中的请求页面置换算法 包括FIFO.LRU (stack and matrix imple ...
- 操作系统实验报告16:CPU 调度
操作系统实验报告16 实验内容 实验内容:CPU 调度. 讨论课件 Lecture19-20 中 CPU 调度算法的例子,尝试基于 POSIX API 设计一个简单调度器(不考虑资源竞争问题): 创建 ...
- 操作系统实验报告15:进程同步与互斥线程池
操作系统实验报告15 实验内容 实验内容:进程同步. 内容1:编译运行课件 Lecture18 例程代码. Algorithms 18-1 ~ 18-9. 内容2:在 Lab Week 13 的基础上 ...
最新文章
- 管理分布式session的四种方式。
- GO基础编程-自定义函数
- arg是什么函数_java后端开发三年!你还不了解Spring 依赖注入,凭什么给你涨薪...
- socket的阻塞非阻塞方法在缓冲区的差别
- php 将数组导出excel,#php 怎样将 数组导出excel文件#前端导出excel表格
- 双向链表的插入和删除算法描述
- 影响网站快照异常的因素有哪些?
- Spark常用RDD算子 - saveAsTextFile、saveAsObjectFile 可保存到本地文件或hdfs系统中
- 分数化小数 Fractions to Decimals
- Java函数式编程知识分享!
- (字符串)字符串中首先出现两次的字符
- java sleep 循环_while循环中的Thread.sleep()
- CCF NOI1044 最近元素
- 这款中间件支持多线程,居然吊打牛B的 Redis!
- html获取xml的数据,xml格式获取值
- Excel实用技巧辞典 01
- 记录一个 Python 的 re.match() 的小坑
- 微软Excel 2007 打勾方框/框里打勾
- EXCEL数据计算结果不对
- avr c语言编译器,[VR虚拟现实]AVR单片机C语言编译器.doc
热门文章
- Windows通过使用命令行(CACLS)修改文件权限
- 李沐实用机器学习(class3, class4)
- 价值几十亿美金的名字,Microsoft Windows的由来
- 【花式表白】,情书加密,这样泡小师妹,没跑了
- Ubuntu下Charm-Crypto安装
- AI医药论文阅读-使用药物描述和分子结构从文献中提取药物-药物相互作用
- MongoDB-查询语句中$exists以及结合$ne、$nin、$nor、$not使用介绍
- 智能合约漏洞——拒绝服务
- 【NVMe2.0b 5】NVM Subsystem
- MATLAB——Regionprops详解