Linux0.11内核需要用到gcc3.4版本,以及bochs模拟器用来模拟运行编译后的系统。这里用到的环境是ubuntu16.04 64位。
安装编译环境
打开 32 位支持
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install lib32ncurses5 lib32z1
1
2
3
sudodpkg--add-architecturei386
sudoapt-getupdate
sudoapt-getinstalllib32ncurses5lib32z1
为了正常运行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
1
2
3
4
sudoapt-getinstalllibsm6:i386
sudoapt-getinstalllibx11-6:i386
sudoapt-getinstalllibxpm4:i386
sudoapt-getinstalllibc6-dev-i386
安装汇编工具
sudo apt-get install bin86
1
sudoapt-getinstallbin86
安装 gcc3.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
然后安装 gcc3.4
tar zxvf gcc-3.4-ubuntu.tar.gz
cd gcc-3.4/
sudo dpkg -i *.deb
1
2
3
tarzxvfgcc-3.4-ubuntu.tar.gz
cdgcc-3.4/
sudodpkg-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
1
sudodpkg-rcpp-3.4g++-3.4gcc-3.4gcc-3.4-baselibstdc++6-dev
编译 linux 0.11 内核
linux0.11的源代码使用哈工大操作系统之基础课程提供的压缩包:
下载后,使用tar命令解压
tar zxvf hit-oslab-linux-20110823.tar.gz
1
tarzxvfhit-oslab-linux-20110823.tar.gz
解压后,可以发现里面有linux0.11源代码目录,和模拟器bochs的目录
进入 linux-0.11 目录执行
make all
1
makeall
会在目录下生成Image文件
之后在oslab目录下运行
./run
1
./run
就可以启动啦