内容发布更新时间 : 2024/11/19 6:35:38星期一 下面是文章的全部内容请认真阅读。
操作系统B实验报告 Operating System B Experiment Report 学生所在学院: 理学院 学生所在班级:信息软件1班 学生姓名: 苏月凯 学 号 : 140108010030 指导教师: 王林 教 务 处 2017年 6 月
实验一:搭建实验环境
一、实验目的
1.熟悉 Ubuntu 实验环境以及 Oslab 工作平台;
2.熟悉 x86 模拟器 Bochs、GCC 编译器、DB 调试器; 3.初步接触 Linux 0.11 操作系统。
二、实验仪器
Ubuntu 操作系统。
三、实验步骤
本操作系统实验的硬件环境是 IA-32(x86)架构的 PC 机,主要软件环境是 Bochs + gcc + 编辑器/IDE + 操作系统 + Linux 0.11 源代码。实验的基本流程是根据实验要求编写应用程序、修改 Linux 0.11 的源代码,用 gcc 编译后,在 Bochs 的虚拟环境中运行、调试目标代码。
四、实验步骤
1.搭建 Oslab 工作平台:在用户主目录下启动命令行终端,输入: tar zxvf hit-oslab-linux-20110823.tar.gz 安装 Oslab;
2.准备活动:输入: cd ~/oslab
切换目录,用: ls -l
列出目录内容;
3.编译内核:切换至\目录,然后执行: make all
编译内核,结果如图 1 所示;
4.启动 Bochs:切换至\目录,然后执行: ./run
启动 Bochs,结果如图 2 所示;
5.熟悉 Ubuntu 和 Linux 0.11 之间的文件交换:切换至\目录,然后执 行:
sudo ./mount-hdc
之后切换至\目录,然后执行: ls –l
五、实验截图
实验二:控制系统启动过程
一、实验目的
1.熟悉 hit-oslab 工作平台;
2.建立对操作系统引导过程的深入认识; 3.掌握操作系统的基本开发过程 4.初步接触 Linux 0.11 操作系统。
二、实验仪器
Ubuntu 操作系统。
三、实验内容
1.改写\,修改系统徽标(即 logo):
打开目录\,然后用 gedit 软件打开 bootsect.s,将文件 第 98 行改为: mov cx,#48
将文件第 246 行改为:
.ascii \ 在目录\下执行: make boot Image 13 编译内核,然后执行:
../run
运行 Bochs 虚拟机;
2.改写\,通知用户\程序正在运行:
打开目录\,然后用 gedit 软件打开 setup.s, 将文件第 17~31 行改为:
.globl begtext, begdata, begbss, endtext, enddata, endbss .text begtext: .data begdata: .bss begbss:
.text entry start start:
INITSEG = 0x9000 !we move boot here - out of the way SYSSEG = 0x1000 ! system loaded at 0x10000 (65536). SETUPSEG = 0x9020 ! this is the current segment 在原第 37 行和第 38 行之间增加如下代码: mov ax,#SETUPSEG mov es,ax mov ah,#0x03 xor bh,bh int 0x10 mov cx,#24
mov bx,#0x0007 mov bp,#msg2 mov ax,#0x1301 int 0x10
在原第 223 行和第 224 行之间增加如下代码: msg2:
.byte 13, 10
.ascii \ .byte 13, 10, 13, 10 ,14
在路径/home/shiyanlou/oslab/linux-0.11 下执行: make boot Image
编译内核,然后执行: ../run
运行 Bochs 虚拟机;
3.继续改写\,使得\能获取内存参数,并将内存大小输出到屏幕上,同时使 \不再加载 Linux 内核,保持上述信息显示在屏幕上:
删除\中的大段代码,同时添加相应的内容,最后的代码只有 111 行,修改后的\
的第 54 至 111 行如下:
! Get memory size (all mem, kB)