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

本文详细介绍了哈工大操作系统实验的环境配置过程,包括所需工具如Linux内核、Bochs模拟器、gcc编译器等,以及实验中关键步骤如Image文件制作、Linux内核编译与调试方法。重点讲解了如何在Ubuntu上与Linux0.11进行文件交换以提高效率。
摘要由CSDN通过智能技术生成

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

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

一、实验工具准备:

文件名介绍
hit-操作系统实验指导书.pdf哈工大OS实验指导书
Linux内核完全注释(修正版v3.0).pdf赵博士对Linux v0.11 OS进行了详细全面的注释和说明
file1615.pdfBIOS 涉及的中断数据手册
hit-oslab-linux-20110823.tar.gzhit-oslab 实验环境
gcc-3.4-ubuntu.tar.gzLinux 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 目录进行编译

cd ~/my_space/OS_HIT/oslab/linux-0.11
make all

结尾出现 sync 则表示成功。

在这里插入图片描述

(2)运行

../run

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

在这里插入图片描述

(3)调试

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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,使用起来非常不便。

  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_小猪沉塘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值