实验一_熟悉实验环境

实验一:熟悉实验环境

一、配置环境:

hit-oslab-linux-20110823.tar.gzgcc-3.4.tar.gz解压并配置环境;

1.1、安装gcc:

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

tar -zxvf gcc-3.4.tar.gz

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

cd gcc-3.4

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

cd amd64                #进入该目录
sudo dpkg -i *.deb      #安装所有包

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

gcc-3.4 -v

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

1.2、安装as86、ld86:

  • bootsect.S 和 setup.S 是实模式下运行的 16位代码程序,采用近似于 Intel 的汇编语言语法,并且需要使用 8086 汇编编译器和连接器 as86 和 ld86。

  • 而 head.s 则使用一种 AT&T 的汇编语法格式,并且运行在保护模式下,需要用 GNU 的 as(gas)汇编器进行编译。所以,我们需要安装as86、ld86。

apt-cache search as86 ld86##搜索as86和ld86
sudo apt install bin86##安装bin86
sudo apt install libc6-dev-i386##安装32位系统的兼容库

1.3、编译0.11源码:

我们在前面几小节中把hit-oslab-linux-20110823、gcc、as86、ld86等环境配置成功,现在万事俱备只欠“东风”。

在linux-0.11目录下进行make进行编译源代码,可参考下面的shell命令:

make -j 4

在编译成功后会出现sync表示编译成功;

二、在bochs上加载linux-0.11:

2.1、提前准备:

在本地oslab目录下运行linux-0.11会频繁报错,在查了相关博客后,发现是缺少一些依赖库,在终端输入如下shell命令之后便可成功加载:

sudo apt install libsm6:i386
sudo apt install libx11-6:i386
sudo apt install libxpm4:i386

2.2、bochs上加载linux:

在oslab目录下运行run文件:

./run

此时linux-0.11在bochs上面跑了起来!!我们所配置的环境也至此配置成功。

在这里插入图片描述

三、通过dgb工具进行调试工作:

3.1、汇编级调试:

在调试之前先将上一讲中运行的bochs关闭,然后在/shiyanlou/oslab/目录下运行脚本:

./dbg-asm

根据实验提示用help命令查看调试系统调用的基本命令:

在这里插入图片描述

3.2、c语言级调试:

先运行脚本./dbg-c,再在另一个终端中进行连接:

./dbg-c
./*rungdb

在这里插入图片描述

四、UBUNTU和linux-0.11之间文件交换:

!!!文件交换之前,务必关闭所有的 Bochs 进程!!!

oslab 文件夹下的 hdc-0.11-new.img 是 0.11 内核启动后的根文件系统镜像文件,相当于在 bochs 虚拟机里装载的硬盘。在 Ubuntu 上访问其内容的方法是:

sudo ./mount-hdc

之后,hdc 目录下就是和 0.11 内核一模一样的文件系统了,可以读写任何文件(可能有些文件要用 sudo 才能访问)。

在这里插入图片描述

我们在hdc/usr/root/目录下创建一个测试文件并保存,保存之后卸载hdc,通过./run在/oslab目录下运行bochs

在这里插入图片描述

在bochs模拟器上进入内核目录/usr/root之后发现了我们在hdc中创建的tst1.c文件,打开查看发现与我们编写的内容一致。

在这里插入图片描述

至此我们便把李治军老师实验室的环境中搭载完毕,后面的实验会持续更新….

备注:文中涉及到环境搭载问题参考如下链接:
https://blog.csdn.net/qq_42518941/article/details/119756521

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值