操作系统实验报告1 下载本文

操作系统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)