一、宿主機系統 centos 7
二、安裝bochs
2、解壓
3、編譯安裝:./configure --prefix=/usr/local/bochs --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11
make & make install
可能遇到的問題1:缺少編譯環境gcc的支援,請按照gcc、g++等編譯環境可能遇到的問題2:fatal error: gtk/gtk.h: no such file or directory。解決方法安裝yum install gtk2-devel,只需要找到系統提供的gtk dev包進行安裝即可
可能遇到的問題3: undefined reference to 'pthread_creat' 修改makefile檔案,libs=。。。。。。結尾增加 -lpthread
三、配置和執行 bochs
1、拷貝或者建立配置檔案bochsrc.disk cp /usr/local/bochs/share/doc/bochs/bochsrc-sample.txt bochsrc.disk. 內容如下:
其中ata0-master為後面增加內容megs: 32
romimage: file=/usr/local/bochs/share/bochs/bios-bochs-latest
vgaromimage: file=/usr/local/bochs/share/bochs/vgabios-lgpl-latest
#floppya: 1_44=a.img, status=inserted (1.44m 3.5" media)
boot: disk
log: bochs.out
mouse: enabled=0
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="hd60m.img", mode=flat, cylinders=121, heads=16, spt=63
#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bss_base=0
可能遇到的錯誤:因為前面編譯的時候使用的--enable-debugger 模式,因此不支援gdbstub模式,需要遮蔽掉ata0-master: type=disk, path="hd60m.img", mode=flat, cylinders=121, heads=16, spt=63
2、執行boch2
在boch2的安裝目錄下,執行 bin/boch2 指定配置檔案為上面建立的bochsrc.disk即可
3、為此虛擬機器建立磁碟
bin/bximage 按照提示輸入引數 hd、flat、60m,hd60m.img
修改bochsrc.disk 檔案,將硬碟引數進行修改
ok了
主引導記錄MBR 作業系統真相還原
section mbr vstart 0x7c00 mov ax,cs mov ds,ax mov es,ax mov ss,ax mov fs,ax mov sp,0x7c00 mov ax,0x600 mov bx,0x700 mov cx,0 mov dx,0x184f int 0x10 mo...
作業系統真相還原筆記(第二章)
1 為什麼程式要載入記憶體?cpu 的硬體電路被設計成只能執行處於記憶體中的程式,這是硬體基因的問題,這樣做的原因,首先肯定是記憶體比較快,且容量大。其次,作業系統可以儲存在軟盤上,也可以儲存在硬碟上,甚至 u 盤,當然還有很多儲存介質都可以。但由於各個硬體特性不同,作業系統要分別考慮每種硬體的特性...
作業系統 面試準備
併發 併發指兩個或多個事件同時發生,這些事件巨集觀上是同時發生的,但微觀上還是交替發生的 併發和並行的區別 併發 指在某段時間內多個任務都會被處理,但某一時刻,只有乙個任務執行,單個處理器可以做到併發,如果有ab兩個程序,只能保證ab之間切換速度夠快,在巨集觀上體現為一段時間內能執行多個程式 並行 ...