實模式彙編語言linux解決方案。 利益相關:fedora24,kernel 4.8.12。 fedora官方源很垃圾,相似bochs,vbox等開發者必備的軟件丫的少依賴,少庫。tor,ss,xxnet這種敏感軟件版本太舊且bug多多。 因此咱們選擇「源代碼編譯安裝」的方式安裝bochs: 安裝:linux
1.去http://nchc.dl.sourceforge.net/project/bochs/bochs/2.4.5/bochs-2.6.8.tar.gz 下載【bochs-2.6.8.tar.gz】程序員
2.解壓下載的源代碼: sudo tar zxvf bochs-2.6.8.tar.gzwindows
3.進入bochs-2.6.8目錄,運行configure腳本: sudo ./configure -enable-debugger -enable-disasm函數
(-enable-debugger和 -enable-disasm 表示開啓調試和反彙編功能)ui
4.第3步正確運行後,會產生一個Makefile文件,因而能夠編譯: sudo makethis
5.安裝: sudo make install 至此,bochs安裝已經結束。.net
可是你也許不會成功。不要着急,下面是編譯安裝過程當中可能出現的一些問題及解決方法:debug
【錯誤1】 error: C++ preprocessor 「/lib/cpp」 fails sanity check調試
由於Bochs是用C++寫的,因此這裏要安裝GNU g++編譯器。日誌
解決方法: sudo apt-get install build-essential sudo apt-get install g++
【錯誤2】 checking for default gui on this platform… x11 ERROR: X windows gui was selected, but X windows libraries were not found.
解決方法: sudo apt-get install xorg-dev
【錯誤3】 ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package.
解決方法: sudo apt-get install libgtk2.0-dev
【錯誤4】
make的時候提示 /usr/bin/ld: gui/libgui.a(gtk_enh_dbg_osdep.o): undefined reference to symbol pthread_create@@GLIBC_2.1 // lib/i386-Linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line collect2: error: ld r
解決方法: 在makefile的「LIBS = 」這一行的最後面添加以下內容 : -lz -lrt -lm -lpthread 因而變成了: LIBS = -lm -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft 2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontcon fig -lgobject-2.0 -lglib-2.0 -lfreetype -lz -lrt -lm -lpthread (報錯方案鳴謝「arm的程序員敲着詩歌的夢」姐姐~轉載一下你不會生氣吧)
以下是配置文件和引導方案,一樣鳴謝「arm的程序員敲着詩歌的夢」姐姐~
1.下載linux0.11的鏡像文件 下載地址是: http://www.oldlinux.org/Linux.old/images/bootroot-0.11
2.寫一個簡單的Bochs配置文件
#注意'#'後面爲注內容
megs:128 #模擬器的內存
romimage:file=/usr/local/share/bochs/BIOS-bochs-latest #這個是BIOS-bochs-latest的路徑,本身慢慢找,不必定和個人同樣
vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest
#這個是VGABIOS-lgpl-latest的路徑,本身慢慢找
floppya:1_44=bootroot-0.11,status=inserted #這個是啓動軟盤,就是咱們下載的那個,就在當前目錄下,若是不在當前目錄,須要指明路徑
boot:floppy
#表示從軟盤啓動
log:bochsout.txt
#日誌輸出文件
#選項還有不少,想了解更多能夠參照原始的.bochsrc(在bochs-2.4.5/目錄下)
假設咱們保存爲bochs_cfg.txt
3.啓動Bochs 咱們敲命令: bochs -f bochs_cfg.txt (-f 選項表示指定配置文件)
bochs的命令使用方式與gdb「大體相同」,作一點微小的補充說明以下:
n:下一步 s:進入函數下一步 b/break:設置斷點(bochs裏面設置斷點通常是後面跟內存地址表示「運行到xx地址停下來」而不是跟行號) c:continue,繼續運行until運行不動(碰見斷點等停下來)的意思。