Linux0.11内核需要用到gcc3.4版本,以及bochs模拟器用来模拟运行编译后的系统。这里用到的环境是ubuntu16.04 64位。
安装编译环境
打开 32 位支持
1 2 3 |
sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install lib32ncurses5 lib32z1 |
为了正常运行32位的bochs,还需要安装下面的安装包
1 2 3 4 |
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 |
安装汇编工具
1 |
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
1 2 3 |
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使用完后,再重新安装
1 |
sudo dpkg -r cpp-3.4 g++-3.4 gcc-3.4 gcc-3.4-base libstdc++6-dev |
编译 linux 0.11 内核
linux0.11的源代码使用哈工大操作系统之基础课程提供的压缩包:
上面官方链接似乎失效了,可以从网盘下载: hit-oslab-linux-20110823.tar.gz
下载后,使用tar命令解压
1 |
tar zxvf hit-oslab-linux-20110823.tar.gz |
解压后,可以发现里面有linux0.11源代码目录,和模拟器bochs的目录
进入 linux-0.11 目录执行
1 |
make all |
会在目录下生成Image文件
之后在oslab目录下运行
1 |
./run |
就可以启动啦
安装gcc3.4出错。。。。
很好