Operation System Experiment 1

实验目的:

  1. 熟悉Ubuntu实验环境以及Oslab工作平台;
  2. 熟悉X86模拟器Bochs、GCC编译器,DB调试器;
  3. 初步接触Linux 0.11操作系统

实验仪器:

  1. Ubuntu操作系统
  2. Bochs工作平台
  3. Linux 0.11操作系统源码

相关资料

实验楼操作系统与实践 实验一资料

实验内容

  1. 搭建Oslab工作平台:在用户主目录下启动命令行中断,输入:
1
tar zxvf hit-oslab-linux-20110823.tar.gz #解压缩hit-oslab-linux-20110823.tar.gz文件

安装Oslab

  1. 准备活动:注入:
1
cd ~/oslab #进入用户目录(~)下的oslab文件夹

列出当前目录内容:

1
ls -l  # -l:列出文件的具体信息
  1. 编译内核:切换至”/home/shiyanlou/oslab/linux-0.11”目录,执行:
1
make all
  1. 启动Bochs:切换至”/home/shiyanlou/oslab”目录,执行:
1
./run

启动Bochs,结果如图:

  1. 熟悉Ubuntu和linux 0.11之间的文件交换,切换至”/home/shiyanlou/oslab”目录,执行:
1
2
sudo ./mount-hdc # 将文件系统镜像文件挂载到hdc目录
sudo umount hdc # 卸载hdc目录挂载的文件系统镜像文件

该操作是为了方便对linux 0.11系统中的文件进行编辑,由于Linux 0.11系统中的编辑工具只有vi,使用不方便。所以进行了文件系统镜像的挂载,方便在虚拟系统和实体系统之间进行文件数据的交换。
注意1. 不要再0.11内核运行的时候mount镜像文件,否则可能会损坏文件系统,同理,不应在mount状态下启动0.11内核。
注意2.在关闭Bochs之前,需要先在0.11的命令行运行sync确保所有缓存数据存盘后,再关闭Bochs.

实验分析

  1. 注意命令行所控制的目录,否则会提示错误,例如在oslab目录下执行···make all``便会提示错误,etc..
  2. 调试器还需要熟悉。之前了解过少许GDB调试器的使用,基本忘光。。。还需要继续学习Linux下编程的相关技能。