实验二 操作系统的引导 + 环境搭建
主要学习网易云课堂上哈工大李志军的(操作系统基础)和(操作系统原理与实践)[https://www.lanqiao.cn/courses/115/learning/?id=568]
(实验说明书)[https://hoverwinter.gitbooks.io/hit-oslab-manual/content/bochs-manual.html]
注:我是Ubuntu16.04环境下,按照下面步骤进行的,但是到../../run
这步时,会出现下面情况。
按照(Ubuntu18.04搭建linux0.11实验环境)[https://blog.csdn.net/qq_40758751/article/details/88707214?utm_medium=distribute.pc_relevant.none-task-blog-blogcommendfrommachinelearnpai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-blogcommendfrommachinelearnpai2-3.channel_param]这篇博客,最终成功。里面安装包百度云:
链接:https://pan.baidu.com/s/1gePywI5Q2vOGiZu0ZBwKQg
提取码:cwnz
https://gitee.com/ivan_allen/hit-oslab/tree/master/ clone到Ubuntu16.04虚拟机中。
1
$ git clone https://gitee.com/ivan_allen/hit-oslab.git
根据readme解压安装,执行完下面句子后,Home中会出现oslab目录
1
2$ cd hit-oslab
$ ./setup.sh进入oslab目录下的boot
1
$ cd ~/oslab/linux-0.11/boot/
执行下面两个命令编译和链接 bootsect.s:
1
2$ as86 -0 -a -o bootsect.o bootsect.s
$ ld86 -0 -s -o bootsect bootsect.o用
ls -l
查看到bootsect有544字节(bootsect 是编译、链接后的目标文件),但引导程序必须要正好占用一个磁盘扇区,即 512 个字节。所以在 Ubuntu 下用命令:1
$ dd bs=1 if=bootsect of=Image skip=32
生成的 Image 就是去掉文件头的 bootsect。
run
1
2
3
4
5
6
7# 当前的工作路径为 /home/shiyanlou/oslab/linux-0.11/boot/
# 将刚刚生成的 Image 复制到 linux-0.11 目录下
$ cp ./Image ../Image
# 执行 oslab 目录中的 run 脚本
$ ../../run
6.3的实验结果
代码:
1 | !/home/ly/oslab/linux-0.11/boot/bootsect.s |
截图: