β

ubuntu16.4(64位)编译运行32位程序,gcc3.4,编译linux.11源代码

雅乐网 » 雅乐网 92 阅读

Linux0.11内核需要用到gcc3.4版本,以及bochs模拟器用来模拟运行编译后的系统。这里用到的环境是ubuntu16.04 64位。

安装编译环境

打开 32 位支持

sudo dpkg --add-architecture i386 
sudo apt-get update
sudo apt-get install lib32ncurses5 lib32z1

为了正常运行32位的bochs,还需要安装下面的安装包

sudo apt-get install libsm6:i386
sudo apt-get install libx11-6:i386
sudo apt-get install libxpm4:i386
sudo apt-get install libc6-dev-i386

安装汇编工具

sudo apt-get install bin86

安装 gcc3.4

在ubuntu的归档页面 http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/ 下载下面五个文件

cpp-3.4_3.4.6-6ubuntu3_i386.deb

g++-3.4_3.4.6-6ubuntu3_i386.deb

gcc-3.4_3.4.6-6ubuntu3_i386.deb

gcc-3.4-base_3.4.6-6ubuntu3_i386.deb

libstdc++6-dev_3.4.6-6ubuntu3_i386.deb

可以从此处下载打包好的文件 : gcc-3.4-ubuntu.tar.gz

然后安装 gcc3.4

tar zxvf gcc-3.4-ubuntu.tar.gz
cd gcc-3.4/
sudo dpkg -i *.deb

目前发现安装gcc3.4后因为依赖问题会导致apt-get没法使用。。可以使用下面的命令先卸载gcc-3.4,等apt-get使用完后,再重新安装

sudo dpkg -r cpp-3.4 g++-3.4 gcc-3.4 gcc-3.4-base libstdc++6-dev

编译 linux 0.11 内核

linux0.11的源代码使用 哈工大操作系统之基础 课程提供的压缩包:

https://cms.hit.edu.cn/pluginfile.php/3329/mod_folder/content/6/hit-oslab/hit-oslab-linux-20110823.tar.gz?forcedownload=1

上面官方链接似乎失效了,可以从网盘下载: hit-oslab-linux-20110823.tar.gz

下载后,使用tar命令解压

tar zxvf hit-oslab-linux-20110823.tar.gz

解压后,可以发现里面有linux0.11源代码目录,和模拟器bochs的目录

进入 linux-0.11 目录执行

make all

会在目录下生成Image文件

之后在oslab目录下运行

./run

就可以启动啦

作者:雅乐网 » 雅乐网
发现互联网好东东

发表评论