3-我們需要一個Bochs

        今天的分享,我們需要繼續討論一下我們focus的開發環境,我們開發的focus操作系統,在哪裏運行呢?大家這裏可以思考一下,可不可以像應用程序一樣,直接在我們的linux或windows系統上直接運行?

        當然不行哈,因爲我們既然是寫的操作系統,這就和應用程序有很大的不同,應用程序的運行需要在操作系統之上,因爲應用程序需要用到操作系統提供的服務,例如QQ,大家都在用吧,QQ就是應用程序,它需要用到操作系統提供的網絡服務,並且QQ程序內存空間的分配,也是由操作系統進行管理的,等等很多服務都是有操作系統實現支持的,這裏不一一舉例了。而我們自己開發的focus操作系統,目標就是對硬件資源進行有效的管理,並向上層的應用程序提供可靠的服務,因此,我們在運行focus的時候,應該在一臺沒有操作系統的計算機上運行,那麼怎麼辦?是不是我們將focus寫完後,就關機,然後重新啓動我們的計算機來運行focus呢?沒有這麼簡單哈,這樣做的話focus開發環境的搭建就會很複雜,需要修改你現有系統的啓動信息,而且還要將focus系統程序放置在硬盤的特定位置,等等工作需要做,很複雜,這樣我們就捨本逐末了,這個不太現實。那麼這樣不行的話,那我們需要專一買一臺計算機來開發focus嗎?當然也不需要哈,這樣太浪費了,那我們怎麼辦呢?

         當小夥伴們在專注的思考的時候,andrew隨着晴天霹靂一聲雷,亮出了一件神器——虛擬機!對,就是這貨!虛擬機可以在我們的計算機中,通過軟件來模擬出一臺計算機,這樣,我們就可以讓我們的focus有了賣弄風姿的舞臺了。

         在《focus開發平臺》的分享中,andrew介紹過可以通過虛擬機來安裝linux,如果你電腦的配置比較強的話,可以使用,但虛擬機太耗資源了,andrew的筆記本電腦CPU2.2GHz,內存2G的,用虛擬機都很費勁,後來果斷安裝的雙系統,至於是哪款虛擬機,andrew就不點名了,因爲任何一件產品都是很多工程師耗費了很多的精力完成的,沒有必要去詆譭別人哈,這款虛擬機當然也有它的優勢。虛擬機有很多種,可能其他的虛擬機會好一些吧。常用的虛擬機有VMware Workstation、VirtualBox、Virtual PC、QEMU和Bochs。如果大家要在自己的計算機上安裝linux的話,可以選用前四款虛擬機,但運行測試focus操作系統時,andrew使用的是bochs,發音和box一樣哈。古人言,工慾善其事必先利其器,那麼我們就來看看andrew給大家亮出的這把神器吧。

         Bochs是由凱文·勞頓編寫的,由sourceforge的Bochs項目組維護。Bochs是一個X86硬件平臺的開源模擬器,它可以通過軟件模擬各種硬件環境,它甚至可以不使用硬件,當然,這裏說Bochs不使用硬件,是Bochs可以完全使用軟件來給我們提供模擬的硬件資源,並不是說Bochs就完全脫離了硬件資源,因爲既然虛擬機作爲一個應用程序來說,它始終都要佔用主機內存、CPU等資源的。andrew有時候講的廢話比較多,大家不要見怪哈,因爲多一些廢話可以讓大家多一些瞭解,如果句句講的都是有用的,都很專業,那麼大家交流起來就會不太方便,尤其是對計算機瞭解不多的朋友來說。我們回到正題哈,Bochs可以模擬整個計算機平臺,包括BIOS、CPU、內存、顯卡和各種IO設備。使用的時候,我們可以配置Bochs模擬的硬件環境。Bochs可以被編譯仿真386、486、Pentium/PentiumII/PentiumIII/Pentium4或x86-64位的CPU。在Bochs仿真環境裏能夠運行許多操作系統,比如Linux、DOS、Windows 95/98/NT/2000/XP或者Windows Vista。

 

 

Bochs下載

Bochs源代碼下載地址:http://download.csdn.net/detail/andrew_yau/7352763

 

Bochs安裝

      1. sudo  apt-get  install  build-essential

      2. sudo  aptitude  install  xorg-dev

      3. sudo  aptitude  install  libgtk2.0-dev

 

      4. tar  vxzf  bochs-2.4.5.tar.gz

      5. cd  bochs-2.4.5/

      6. ./configure  --enable-debugger  --enable-disasm

      7. make

      8.sudo  make  install

 

安裝常見問題與解決方法

問題1:

checking for C compiler default output filename… configure: error: C compiler cannot create executables

解決辦法:

$ sudo apt-get install libc6-dev

 

問題2:

checking how to run the C++ preprocessor.../lib/cpp

configure: error: C++ preprocessor"/lib/cpp" fails sanity check

See `config.log' for more details.

解決方法:

$ sudo apt-get install build-essential

 

問題3:

$ make

make: *** 沒有指明目標並且找不到 makefile.停止。

解決方法:

$ sudo apt-get install build-essential

 

問題4:

checking for wxWidgets libraryversion... 

checking for default gui on thisplatform... x11

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

解決方法:

配置的時候加上--with-nogui或者改成:$sudo apt-get install xorg-dev(建議)

 

問題5:

執行./configure--enable-debugger –enable-disasm出錯

解決方法:

先安裝G++編譯器

sudo apt-get install g++

 

問題6:

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

出現這個錯誤時,

解決方法:

請安裝xorg-dev包

sudo apt-get install xorg-dev

 

問題7:

Package gtk+-2.0 was not found in thepkg-config search path.Perhaps you should add the directory containing`gtk+-2.0.pc'to the PKG_CONFIG_PATH environment variableNo package 'gtk+-2.0'foundERROR: pkg-config was not found, or unable to access the gtk+-2.0package.Install pkg-config and the gtk+ development package,or disable the guidebugger, or the wxWidgets display library (whichever is being used).

解決方法:

sudo apt-get install libgtk2.0-dev

 

安裝後的文件分佈

可執行文件:/usr/local/bin

Bochs配置文件:/usr/local/share/doc/bochs

BIOS鏡像文件:/usr/local/share/bochs

 

生成軟驅鏡像

鍵入bximage命令,按照提示進行。生成軟驅鏡像就是通過該鏡像文件來模擬出一個軟驅驅動器。

 

Bxrc配置文件

       Bochs的安裝目錄下有一個bochsrc-sample.txt,這個文件是Bochs配置文件的模板。Bochs虛擬機的硬件資源可以通過對配置文件的修改進行配置,通過對配置文件的修改,我們可以設定bochs虛擬機的CPU、內存大小、啓動設備等,其實就是說,你希望你的虛擬機硬件有什麼樣的配置,你都可以通過修改這個配置文件來進行配置,硬件的升級是不花錢的哦。在使用中,我們需要將bochsrc-sample.txt拷貝到我們的工作目錄,然後重命名爲focus.bxrc,注意,這裏的後綴名也改了哈,模板的後綴名是txt,我們實際運行Bochs的時候,配置文件的後綴名爲bxrc,這樣在運行Bochs時,Bochs纔會讀取配置文件。

對bxrc文件的處理通常只需要修改以下配置參數就可以:

       floppya:1_44=”image”,status=inserted

       系統從啓動軟盤中讀入鏡像文件image,image就是最後生成的可執行的鏡像文件。status表示軟驅的狀態,inserted表示軟驅處於插入狀態。對於鏡像文件image,在focus運行的時候再介紹哈,這裏只需要理解image就是操作系統程序即可。

       boot:floppy

       表示虛擬機從軟驅啓動。

       megs:32

       表示內存的大小爲32MB

 

運行

在工作目錄中輸入bochs  -f focus.bxrc

 

       好了,今天就先分享這麼多的內容,大家主要是先把虛擬機Bochs裝起,這樣focus的開發環境已經搭建完成了。哦,還有一點,就是Bochs的使用和調試命令,這些內容呢,andrew想在實際操作中,再給大家介紹,這樣可以給大家減少一下負擔。

       還有關於第2次分享的《focus開發平臺》那篇文章,在as86的安裝指令中有一些錯誤,指令爲:

sudo  apt-get install  bin86

之前的文章中get和install之間連在了一起,他們之間是有空格的哈,不曉得微信平臺上編譯後怎麼變了,可能是andrew使用還不太熟練吧,很抱歉,請朋友們注意一下哈。

————————————————————————————

QQ:64879927

博客:http://blog.csdn.net/andrew_yau

請關注focus微信公共平臺:OS的探索之旅

 

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