前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >哈工大李治军操作系统课程实验环境搭建

哈工大李治军操作系统课程实验环境搭建

作者头像
zy010101
发布2020-08-20 15:33:58
4.1K0
发布2020-08-20 15:33:58
举报
文章被收录于专栏:程序员

资源下载

首先,我们需要linux-0.11源码、bochs等。我把资源放在百度云盘里了。

链接: https://pan.baidu.com/s/1wtec1_UlBA1wxwNeMyFBOw 密码: 7j1l

另外,为了编译Linux0.11源码,我们需要GCC3.4编译器(只能在低版本编译器上编译Linux0.11)。还是在百度云盘里。

链接: https://pan.baidu.com/s/1475p2I1VgTjCna0_p6WMZA 密码: mjvk

安装GCC3.4

解压下载下来的GCC3.4,命令如下:

代码语言:javascript
复制
 tar -zxvf gcc-3.4.tar.gz

然后进入解压以后的目录,命令如下:

代码语言:javascript
复制
cd gcc-3.4

然后使用ls命令可以看到有amd64和i386两个目录,其中amd64目录下存放的是64位操作系统安装gcc3.4的包,i386目录存放的是32位操作系统安装gcc3.4的包。我的Ubuntu是64位的(具体是Ubuntu Kylin 20.04版本),因此选择amd64目录下的包进行安装,使用如下命令:

代码语言:javascript
复制
cd amd64                #进入该目录
sudo dpkg -i *.deb      #安装所有包

安装完成以后,可以输入如下的命令,查看是否安装成功。

代码语言:javascript
复制
gcc-3.4 -v

在32位操作系统上安装gcc3.4的命令也是一样的。

安装编译环境

bootsect.S 和 setup.S 是实模式下运行的 16位代码程序,采用近似于 Intel 的汇编语言语法,并且需要使用 8086 汇编编译器和连接器 as86 和 ld86。而 head.s 则使用一种 AT&T 的汇编语法格式,并且运行在保护模式下,需要用 GNU 的 as(gas)汇编器 进行编译。所以,我们需要安装as86、ld86。

搜索as86和ld86,命令如下:

代码语言:javascript
复制
apt-cache search as86 ld86

然后,安装bin86,命令如下:

代码语言:javascript
复制
sudo apt install bin86

由于是64位系统,还需要安装32位系统的兼容库,命令如下:

代码语言:javascript
复制
sudo apt install libc6-dev-i386

如果,你没有顺手的代码编辑器,这里强烈推荐使用Visual Studio Code。

编译Linux0.11源码

首先解压下载下来的hit-oslab-linux-20110823.tar.gz,命令如下:

代码语言:javascript
复制
tar -zxvf hit-oslab-linux-20110823.tar.gz

解压之后,得到如下的文件。

进入linux-0.11目录,编译源代码。使用如下命令

代码语言:javascript
复制
make all

编译之后,在oslab目录下运行run会出错,这是因为我们缺少一些东西,因此,安装它们。命令如下:

代码语言:javascript
复制
sudo apt install libsm6:i386
sudo apt install libx11-6:i386
sudo apt install libxpm4:i386

安装完上面的这些依赖库之后,输入命令./run,就会看到bochs加载Linux0.11成功,界面如下:

Ubuntu与Linux-0.11之间的文件交换

在oslab目录下,运行mount-hdc脚本,挂载linux0.11。挂载以后就可以在hdc目录下和Ubuntu进行文件交换。挂载以后可以在hdc目录下看到如下文件。

不要在0.11内核运行的时候mount镜像文件,否则可能会损坏文件系统。同理,也不要在已经mount的时候运行0.11内核;

在关闭Bochs之前,需要先在Linux-0.11的命令行运行“sync”,确保所有缓存数据都存盘后,再关闭Bochs。

卸载命令:umount hdc,卸载以后以上文件就没了。如下所示:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/08/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 资源下载
  • 安装GCC3.4
  • 安装编译环境
  • 编译Linux0.11源码
  • Ubuntu与Linux-0.11之间的文件交换
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档