Lab1 【哈工大_操作系统】熟悉实验环境

本系列文章主要更新哈工大《操作系统》课程对应的9个Lab实验(包括熟悉实验环境),提供了非常详细的环境配置方法以及按照指导书展开的详细操作步骤,希望对大家有所帮助。

实验的基本流程是根据实验要求编写应用程序、修改 Linux 0.11 的源代码,用 gcc 编译后,在 Bochs 的虚拟环境中运行、调试目标代码。注:笔者是在 Ubuntu20.04 平台上进行实验。

一、实验工具准备:

文件名 介绍
hit-操作系统实验指导书.pdf 哈工大OS实验指导书
Linux内核完全注释(修正版v3.0).pdf 赵博士对Linux v0.11 OS进行了详细全面的注释和说明
file1615.pdf BIOS 涉及的中断数据手册
hit-oslab-linux-20110823.tar.gz hit-oslab 实验环境
gcc-3.4-ubuntu.tar.gz Linux v0.11 所使用的编译器
Bochs 汇编级调试指令 bochs 基本调试指令大全

二、实验环境配置

1、文件结构

下载 hit-oslab-linux-20110823.tar.gz 压缩包,并将其解压,将得到如下文件:

• Image 文件

oslab 工作在一个宿主操作系统之上,我们使用的 Linux,在宿主操作系统之上完成对 Linux0.11 的开发、修改和编译之后,在 linux-0.11 目录下会生产一个名为 Image 的文件,它就是编译之后的目标文件。

该文件内已经包含引导和所有内核的二进制代码。如果拿来一张软盘,从它的 0 扇区开始,逐字节写入 Image 文件的内容,就可以用这张软盘启动一台真正的计算机,并进入 Linux0.11 内核。

oslab 采用 bochs 模拟器加载这个 Image 文件,模拟执行 Linux 0.11,这样省却了重新启动计算机的麻烦。

• bochs 目录

bochs 目录下是与 bochs 相关的执行文件、数据文件和配置文件。

• run 脚本

bochs 目录下是与 bochs 相关的执行文件、数据文件和配置文件。run 是运行 bochs 的脚本命令。

运行后 bochs 会自动在它的虚拟软驱 A 和虚拟硬盘上各挂载一个镜像文件,软驱上挂载是linux-0.11/Image,硬盘上挂载的是 hdc-0.11.img

• hdc-0.11.img 文件

hdc-0.11.img 文件的格式是 Minix 文件系统的镜像。

Linux 所有版本都支持这种格式的文件系统,所以可以直接在宿主 Linux 上通过 mount 命令访问此文件内的文件,达到宿主系统和 bochs 内运行的 Linux 0.11 之间交换文件的效果。

2、使用方法

(1)进入 linux-0.11 目录进行编译

shell 复制代码
cd ~/my_space/OS_HIT/oslab/linux-0.11
make all

结尾出现 sync 则表示成功。

(2)运行

shell 复制代码
../run

如果出现 Bochs 的窗口,里面显示 linux 的引导过程,最后停止在 [/usr/root/]#,表示运行成功

(3)调试

(4)文件交换

接下来讲解一下 Ubuntu 和 Linux 0.11 之间的文件交换如何启动。
开始设置文件交换之前,务必关闭所有的 Bochs 进程。

slab 下的 hdc-0.11-new.img 是 0.11 内核启动后的根文件系统镜像文件,相当于在 bochs 虚拟机里装载的硬盘。在启动挂载之前打开 hdc 文件夹时显示内容如下:

  • 在 Ubuntu 上访问其内容的方法:
shell 复制代码
cd oslab
sudo ./mount-hdc     // 启动挂载脚本

成功挂载后,hdc 文件夹显示内容如下:

读写完毕,不要忘了卸载这个文件系统:

shell 复制代码
sudo umount hdc

经过 sudo ./mount-hdc 这样处理以后,我们可以在 Ubuntu 的 hdc 目录下创建一个 xxx.c文件,然后利用 Ubuntu 上的编辑工具(如 gedit 等)实现对 xxx.c 文件的编辑工作,在编辑保存以后。

执行 sudo umount hdc 后,再进入 Linux 0.11(即 run 启动 bochs 以后)就会看到这个xxx.c(即如下图所示),这样就避免了在 Linux 0.11 上进行编辑 xxx.c 的麻烦,因为Linux 0.11 作为一个很小的操作系统,其上的编辑工具只有 vi,使用起来非常不便。

相关推荐
别说我什么都不会15 小时前
鸿蒙轻内核M核源码分析系列二一 03 文件系统LittleFS
操作系统·嵌入式·harmonyos
charlie11451419115 小时前
从0开始的操作系统手搓教程24——完成我们的键盘驱动子系统
驱动开发·操作系统·键盘·手搓教程
别说我什么都不会2 天前
鸿蒙轻内核M核源码分析系列二一 02 文件系统LittleFS
操作系统·harmonyos
极客小俊2 天前
微软工程师偷偷在用!这款SSH工具让Windows操控CentOS比Mac还优雅!
操作系统
极客小俊2 天前
系统崩溃不用慌!VMware这个逆天功能竟能让CentOS一键回档?后悔药真实存在!
操作系统
极客小俊2 天前
文件传输告别龟速!1分钟搞定Windows↔CentOS高速通道 小白也能玩转的Xftp秘籍
操作系统
极客小俊2 天前
破防了!原来CentOS联网设置竟藏在这个路径?网友:5年运维都白干了!
操作系统
极客小俊2 天前
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
操作系统