红芋 L16 2022-05-24 14:53:28 操作系统的引导
87 0

“操作系统实验”实验报告

操作系统的引导

实验名称:操作系统的引导

班级:软嵌202

姓名:张成昱

学号:2030110783

日期:3.12

实验目的

  1. 熟悉 hit-oslab 实验环境;
  2. 建立对操作系统引导过程的深入认识;
  3. 掌握操作系统的基本开发过程;
  4. 能对操作系统代码进行简单的控制,揭开操作系统的神秘面纱。

实验内容

  1. 阅读《Linux 内核完全注释》的第 6 章,对计算机和 Linux 0.11 的引导过程进行初步的了解;
  2. 改写 bootsect.s 主要完成如下功能:
  • bootsect.s 能在屏幕上打印一段提示信息“XXX is booting...”,其中 XXX 是你给自己的操作系统起的名字,例如 LZJos、Sunix 等。
  1. 改写 setup.s 主要完成如下功能:
  • bootsect.s 能完成 setup.s 的载入,并跳转到 setup.s 开始地址执行。而 setup.s 向屏幕输出一行"Now we are in SETUP"。
  • setup.s 能获取至少一个基本的硬件参数(如内存参数、显卡参数、硬盘参数等),将其存放在内存的特定地址,并输出到屏幕上。
  • setup.s 不再加载 Linux 内核,保持上述信息显示在屏幕上即可。

实验过程

  1. 先将hit-oslab解压到 /home/shiyanlou/oslab/ 中 图片描述 图片描述
  2. 编写bootsect.s 完成bootsect.s的屏幕输出功能。将完成屏幕显示的代码在开发环境中编译,并将编译后的目标文件做成 Image 文件。将 .org 508 修改为 .org 510,为了保证 boot_flag 一定在最后两个字节,修改 .org 图片描述
  3. 执行下面两个命令编译和链接 bootsect.s 图片描述
  4. 用以下命令生成的 Image 就是去掉文件头的 bootsect 图片描述
  5. 将刚刚生成的 Image 复制到 linux-0.11 目录下并执行 oslab 目录中的 run 脚本 图片描述
  6. 编写一个 setup.s,然后将其中的显示的信息改为:“Now we are in SETUP”。 图片描述
  7. 编写 bootsect.s 中载入 setup.s 的关键代码 图片描述
  8. 使用make BootImage再次编译,发现提示错误 图片描述
  9. 接下来修改build.c,注释掉以下内容以解决问题 图片描述
  10. 最后再次重新编译并运行,成功! 图片描述
最新评论
暂无评论~