搭這個實驗環境主要是為了學習Linux-0.11的代碼,那就需要修改代碼再次編譯來驗證自己的想法。主要的實驗環境來自實驗樓,但是在那上面畢竟不方便,所以就以實驗樓上的為基礎在自己的虛擬機上搭建一個環境。
主要的實驗環境和Linux-0.11的源代碼已經打包在我的github上了:Linux0.11-Lab
Get start
我的實驗環境在ubuntu18.04中,其它版本應該也同理,但是編譯Linux 0.11內核需要低版本的gcc,所以需要先安裝gcc-3.4.
-
依次執行下面的命令,來安裝gcc-3.4
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/gcc-3.4-base_3.4.6-6ubuntu3_amd64.deb
sudo dpkg --force-depends -i gcc-3.4-base_3.4.6-6ubuntu3_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/gcc-3.4_3.4.6-6ubuntu3_amd64.deb
sudo dpkg --force-depends -i gcc-3.4_3.4.6-6ubuntu3_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/cpp-3.4_3.4.6-6ubuntu3_amd64.deb
sudo dpkg --force-depends -i cpp-3.4_3.4.6-6ubuntu3_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/g++-3.4_3.4.6-6ubuntu3_amd64.deb
sudo dpkg --force-depends -i g++-3.4_3.4.6-6ubuntu3_amd64.deb
wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/libstdc++6-dev_3.4.6-6ubuntu3_amd64.deb
sudo dpkg --force-depends -i libstdc++6-dev_3.4.6-6ubuntu3_amd64.deb
-
實驗還需要as86、ld86,如果沒有的話也需要進行安裝,as86、ld86在bin86包中
sudo apt install bin86
-
編譯內核
進入linux-0.11文件夾,執行make命令即可,會生成Image文件。
-
啟動bochs
在源目錄下,執行./run腳本即可啟動Bochs,就是Linux0.11了
可能出現的問題
在編譯內核的時候,可能會出現兩個錯誤
-
缺少libSM.so.6
./bochs/bochs-gdb: error while loading shared libraries: libSM.so.6: cannot open shared object file: No such file or directory
安裝對應的32位庫即可
sudo apt install libsm6:i386
-
缺少libXpm.so.4
./bochs/bochs-gdb: error while loading shared libraries: libXpm.so.4: cannot open shared object file: No such file or directory
安裝對應的32位庫即可
sudo apt install libxpm:i386