Linux内核编译及运行
一、实验目的
- 选择合适的平台工具,搭建环境,对Linux0.11内核进行编译,并在模拟器中运行。
- 通过自主学习,解决内核编译运行中的问题。
二、平台工具
平台开发需要的工具:
- VMware Workstation Pro17 下载 VMware Workstation Pro | CN
- Ubuntu 22.04 Index of /ubuntu-releases/22.04.3/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
平台工具简介:
-
VMware Workstation Pro 17是一款功能强大的虚拟化软件,由VMware公司开发和发布。它允许用户在单个物理计算机上创建和运行多个虚拟机,每个虚拟机可以运行不同的操作系统,如Windows、Linux、macOS等。
该软件支持各种功能,如快照和恢复、团队协作、虚拟网络配置等。通过创建快照,用户可以保存当前虚拟机状态,并随时恢复到该状态,方便进行软件测试、调试等工作。团队协作功能允许多个用户同时访问和管理虚拟机,提高工作效率。
-
Ubuntu 22.04 作为开源免费的Linux发行版,Ubuntu以其简洁、稳定和易用的特点而备受欢迎。提供了丰富的开发工具和开发环境。它包含了多个编程语言和开发平台,如Python、Java、C/C++等,方便用户进行软件开发、编程和调试。此外,它还支持容器技术,如Docker和Kubernetes,方便用户进行应用程序的部署和管理。
三、问题及解决方法
实验采用VM运行Ubuntu版本的Linux系统,系统未装入任何命令工具包,运行时会遇到各种需要安装配置过程。
需要注意的是后面的所有方法执行都是切换在root
用户权限下执行的命令。
配置安装gcc环境
在执行实验命令之前需要先安装gcc环境,实验提供了gcc-3.4.tar.gz
的压缩包。进行解压,进入amd64
目录,安装里面的所有包。
cd amd64
dpkg -i *.deb
这时可能会出现如下问题:
这些依赖于binuitls包,而新安装的binutils的版本较低,这里我们需要先将binutils包进行一个更新。
注意出现这个错误,要在在执行dpkg -i *.deb
之前的命令执行,否则在执行下面语句之前也会出现错误。
apt upgrade binutils
更新好binutils包后,再次执行上面命令dpkg -i *.deb
。
可以来验证gcc是否安装好:
gcc-3.4 -v
配置编译环境
在进入linux-0.11
执行make
可能出现以下问题:
需要安装make
命令:
apt install make
继续执行make
命令,还有可能出现以下问题:
这里缺少编译器,需要安装编译环境:
apt-cache search as86 ld86
apt install bin86
apt install libc6-dev-i386
编译运行
在进入oslab
目录执行./run
命令,会有以下错误:
需要安装以下的依赖库:
sudo apt install libsm6:i386
sudo apt install libx11-6:i386
sudo apt install libxpm4:i386
四、实验结果及建议
执行./run
命令后,弹出以下页面,执行成功:
下面将进入linux-0.11启动文件系统镜像文件中修改文件,进行文件交换。
cd ~/oslab
./mount-hdc
cd /hdc
gedit usr/root/EX01.txt
退回到oslab
目录下,执行语句
umount hdc
再次执行./run
指令进入bochs
界面,查看文件是否挂载成功。
如图所示,文件挂载成功。
本次实验主要是对系统环境变量进行安装,对linux-0.11内核系统的镜像系统文件进行文件挂载操作,简单熟悉一些基本linux操作。