Windows下用Bochs編譯運行Linux-0.11

簡要介紹:Bochs主要是一個免費且開源的基於x86架構PC機模擬器。學習linux0.11內核,推薦在該模擬器上進行。

    環境搭建步驟:

1、下載Linux0.11系統包,本鏈接的下載包已包含Bochs軟件。

點擊打開鏈接http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-040329.zip
2、解壓linux-0.11-devel-040329.zip,目錄結構如下圖所示:

這裏真正使用到的文件爲:Bochs-2.1.1.exe 、bochsrc-hd.bxrc、bootimage-0.11、bootimage-0.11-hd、hdc-0.11.img

3、點擊Bochs-2.1.1.exe進行安裝。

4、安裝完畢後,將所有linux-0.11-devel-040329下的文件,拷貝到剛纔安裝bochs下的根目錄。原目錄如下:

拷貝過後目錄爲:


5、拷貝完成後,運行bochsrc-hd.bxrc,若安裝成功,打開即能見到如下界面:


這已經是x86PC模擬器上,搭建完成的Linux操作系統。建立linux操作平臺命令,就能操作Linux。由於學習操作系統需要,我們需要在Linux下,編譯操作系統以及完成簡單的源碼修改,從而達到理解Linux內核的能力。接下來,主要演示Linux內核源碼的修改,以及內核的編譯過程。由於該Linux版本的原因,我們還需要對代碼做出調整,方能成功編譯。

    內核編譯過程:

1、進入/usr/src/linux 目錄下,鍵入命令 cd ../src/linux ,如下圖所示:


2、進行編譯,鍵入命令 make clean 和 make後。


若出現如下所示錯誤:gcc-cc1: Invalid option "string-insns"。這是需將Linux目錄下的Makefile文件中的-mstring-insns參數去掉。除此之外,每個子目錄fs,lib,kernel以及kernel目錄下的三個驅動程序子目錄(math, blk_drv, chr_drv)的Makefike當中的-mstring-insns參數去除掉。此處只演示根目錄下的Makefile文件修改。

3、依次修改:/linux/Makefile、/linux/fs/Makefile、/linux/lib/Makefile、

/linux/kernel/Makefile、/linux/kernel/math/Makefile、/linux/kernel/blk_drv/Makefile、/linux/kernel/chr_drv/Makefile文件。linux目錄下,鍵入:vi Makefile。如下圖所示:


找到文件中的-mstring-insns 參數,並刪去保存。

4、到/usr/local/bin中找到文件ar,並把ar 改名爲gar,鍵入命令:mv ar gar。如下圖所示:


5、回到linux 目錄下,重新鍵入make clean以及 make,完成內核的編譯鏈接。


出現上圖提示,即表面程序編譯成功。完成編譯後,便可以開始修改內核源碼,從而達到擴展操作系統功能以及學習操作系統的目的。這裏,我們簡單修改下,linux操作系統開機啓動項bootsect.s源碼,讓開機後輸出個性化的字符串。

6、進入/usr/src/linux/boot目錄,修改bootsect.s源碼,保存並退出。

! Print some inane message
mov    ah,#0x03        ! read cursor pos
xor    bh,bh
int    0x10
mov    cx,#47
mov    bx,#0x0007        ! page 0, attribute 7 (normal)
mov    bp,#msg1
mov    ax,#0x1301        ! write string, move cursor
int    0x10
msg1:
.byte 13,10
.ascii "Loading system ...this is create by demon"
.byte 13,10,13,10
.org 508

7、修改完成後,在linux目錄下,重新鍵入make命令,完成編譯。

8、make成功後生成引導啓動映象文件Image。若需要輸出這個Image文件, 可以首先備份bootimage-0.11-hd文件, 然後使用下面命令就會把bootimage-0.11-hd替換成新的引導啓動文件,鍵入命令:dd bs=8192 if=Image of=/dev/fd0。如下圖所示:


9點擊reset重啓Linux操作系統。如下圖所示:


————————————————
版權聲明:本文爲CSDN博主「Demon的黑與白」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u014688145/article/details/50575588

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章