最近在看《一個操作系統的實現》時決定動手實際試一試,有關bochs,nasm的源代碼安裝,網上其他的博客已經講的很清楚了,下面主要復現一下我遇到的問題以及解決辦法。前面都進行的很順利,一直到我按照網上的方法安裝配置完畢,然后在終端輸入
$bochs
出現畫面
恩,沒問題,對着,繼續回車,輸入c,出現問題
從得到的信息:BIOS NO bootable device 初步推斷可能是引導文件某處的錯誤,把網上多篇博客的安裝步驟又看了一遍,大致判斷是bochsrc文件配置的問題
搜索關鍵詞 bochs ubuntu bochsrc配置 繼續學習
然后了解到bochsrc文件的重點在於romimage
和vgaromimage
這兩個后面的 BIOS-bochs-latest 和 VGABIOS-lgpl-latest 文件的絕對路徑是不能直接按照網上的方法直接復制粘貼,要找到自己電腦上這兩個文件的位置,並按絕對路勁寫出來。(這點想明白后后簡單,但新手往往為徒方便直接復制粘貼網上的導致最后失敗)
還有 floppya: 1_44=/home/zpl/coding/os/a.img, status=inserted 這句
其中的文件a.img前也要寫自己電腦上的絕對路徑,我的bochsrc文件如下
# Configuration file for Bochs ################################################################### # how much memory the emulated machine will have megs: 32 # filename of ROM images romimage: file=/usr/local/share/bochs/BIOS-bochs-latest, address=0xfffe0000 vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest # what disk images will be used floppya: 1_44=/home/liufengjh/a.img, status=inserted # choose the boot disk boot: floppy # where do we send log message? log: bochsout.txt # disable the mouse mouse: enabled=0 # enable key mapping, using US layout as default keyboard: type=mf, serial_delay=200, paste_delay=100000
然而一番修改后,之前的錯誤仍然出現,原理上沒有問題,但依然是找不到引導文件,這讓我有些疑惑,繼續查看其他人博客上的安裝配置步驟,直到我看到了這句話
http://mayuan.is-programmer.com/posts/23314.html
如果我們在啟動Bochs時沒有在命令行上指定配置文件,那么Bochs會按以下的順序尋找默認配置文件:
-
.bochsrc in the current directory
-
bochsrc in the current directory
-
bochsrc.txt in the current directory
-
(win32 only) bochsrc.bxrc in the current directory
-
(Unix only) .bochsrc in the user's home directory
-
(Unix only) bochsrc in the /etc directory
配置環境已經在bochsrc文件里說的很清楚了,而出現NO bootable device的錯誤會不會是因為bochs沒有找到我的配置文件bochsrc,
於是直接cd到我bochsrc文件的目錄下繼續運行bochs,結果成功