一個操作系統的實現——筆記1

1.先去http://nchc.dl.sourceforge.net/project/bochs/bochs/2.4.5/bochs-2.4.5.tar.gz 下載bochs-2.4.5.tar.gz

2.解壓下載的源代碼:

  1. sudo tar zxvf bochs-2.4.5.tar.gz 

3.進入bochs-2.4.5目錄,運行configure腳本,它會測試你的機器,C/C++編譯器以及一些庫,用來判斷何種配置適合於你的機器。運行:

  1. sudo ./configure --enable-debugger --enable-disasm  

(上面--enable-debugger --enable-disasm 是可選項,這兩個是開啓調試和反彙編功能)

4.第3步正確運行後,會產生一個Makefile文件,然後:

  1. sudo make 

5.安裝:

  1. sudo make install 

至此,bochs安裝已經結束。下面是編譯安裝過程中可能出現的一些問題及解決方法:

錯誤A.configure: error: C++ preprocessor "/lib/cpp" fails sanity check

因爲Bochs是用C++寫的,所以這裏要安裝GNU gcc/g++編譯器。

解決辦法:

  1. sudo apt-get install build-essential   
  2. sudo apt-get install g++  

錯誤B.checking for default gui on this platform... x11

ERROR: X windows gui was selected, but X windows libraries were not found.

解決辦法:

  1. sudo apt-get install xorg-dev   

錯誤C.ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package.

解決辦法:

  1. sudo apt-get install libgtk2.0-dev   

錯誤D.

  1. make的時候提示 /usr/bin/ld: gui/libgui.a(gtk_enh_dbg_osdep.o): undefined   
  2. reference to symbol   pthread_create@@GLIBC_2.1   //   
  3. lib/i386-linux-gnu/libpthread.so.0: error adding symbols: DSO missing   
  4. from command line collect2: error: ld r 

解決方法:

在makefile的libs中添加如下內容 :

  1. lz -lrt -lm -lpthread 

很晚了,明天再來寫配置方面的東西。。。。

上一篇主要說安裝的事情,安裝成工的標誌就是在命令行中有bochs這個程序,來張圖片

有這個界面的話就說明安裝成功了。。。

接下來要乾的事就是製作軟盤和配置了,如果配置不成功的話,選6進去以後就會各種報錯。

先說軟盤製作吧!!

編譯以後的bochs2.4.5文件夾下會有一個bximage可執行文件,在終端運行:

按照上面的步驟,我們就製作好了一張空的軟盤,這個軟盤就像我們的硬盤一樣,用來存放系統文件的....

然後寫入一個系統鏡像,鏡像文件可以去下載

http://www.oldlinux.org/Linux.old/images/bootroot-0.11

這個是linux0.11的鏡像文件

然後在終端執行命令把鏡像寫入我們製作的軟盤:

  1. dd if=/home/freedemos/Downloads/bootroot-0.11 of=a.img 

注意:這裏執行的dd命令,if=你的鏡像的路徑,of=你的軟盤的路徑,照抄肯定會錯....

接下來我們說下配置文件(配置文件因該是最煩人的了,我到現在都不是非常懂,但是能讓虛擬機正常運行就好了,嘿嘿):

###############################################################
# 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
vgaromimage: file=/usr/local/share/bochs/VGABIOS-elpin-2.40

# what disk images will be used
floppya: 1_44=a.img, status=inserted

# choose the boot disk.
boot: floppy

# where do we send log messages?
# log: bochsout.txt

# disable the mouse
mouse: enabled=0

# enable key mapping, using US layout as default.
keyboard: keymap=/usr/local/share/bochs/keymaps/x11-pc-us.map

 

 

有了上面那些基本配置以後,我們就能從bochs啓動linux0.11了,下面執行命令:

  1. ./bochs -f bochwang 

然後就出現這界面:

選擇6,繼續:

黑乎乎的一片?有沒有感覺失敗了.........其實不是這樣的啦,這是調試模式,然後我們在終端中輸入c,在確定,就會正常了.

有木有很開森?哈哈,這裏就是一個小型的系統了......正確的說,這就是linux0.11版本內核.....

不過有點失望,傳說中的linux內核就是這麼個玩意,...............好了就這樣吧

學習愉快!!!!!

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