- 一步步寫嵌入式操作系統
- 李無言著
- 901字
- 2018-12-29 16:24:55
1.3 虛擬硬件的安裝和使用
現在雖然我們已經編譯生成了一個應用程序,但卻沒有辦法運行它。其中的道理很簡單,我們使用ARM編譯器交叉編譯生成的可執行程序,自然是只有在ARM硬件環境下才能夠使用。
一個最直接的方法,就是使用ARM開發平臺。市面上基于ARM的開發板多如牛毛,無論選擇哪一款,都可以幫助我們將操作系統運行起來。但很顯然,這種方法并不具備可操作性。其中的一個原因是這樣將會無端地增加我們的學習成本。另一個原因是,由于各種開發板的芯片選型、電路設計都不盡相同,使用這些開發平臺進行開發,我們將會陷入無盡的硬件細節當中,將不能夠從宏觀的角度去理解操作系統的原理。
為了解決這個問題,我們需要借助一種特殊的軟件來運行編譯器生成的ARM程序,這就是虛擬機。
虛擬機是運行在PC中的一種軟件,能夠模擬出ARM硬件環境。這樣一來,我們既不必在操作系統的編寫和學習過程中多花一分錢,又能擁有一個統一的硬件平臺,不至于牽扯過多的硬件細節,迷失到森林之中。
有很多免費的ARM虛擬機可供選擇,SkyEye正是其中之一。
SkyEye是一個開源軟件項目,其目標是在通用的Linux和Windows平臺上實現一個純軟件集成開發環境,模擬常見的嵌入式計算機系統。我們可在SkyEye上運行μClinux以及μC/OS-II、Linux等多種嵌入式操作系統和各種系統軟件,并可對它們進行源碼級的分析和測試。SkyEye是一個指令級模擬器,可以模擬多種嵌入式開發板,可支持多種CPU指令集,并支持網絡、Flash等大量硬件。在SkyEye上運行的操作系統意識不到它是在一個虛擬的環境中運行的。值得一提的是,SkyEye項目是由清華大學的博士后陳先生發起的,是屬于我們中國人的優秀軟件項目。
與SkyEye類似的虛擬機還有QEMU。從某種程度上說,QEMU較之于SkyEye更加優秀。但是本書最終選擇了SkyEye而放棄了QEMU,主要有以下兩個原因:
第一,SkyEye易于配置,方便使用。我們可以通過修改配置文件,輕松地搭建出具有任何硬件特性的虛擬平臺。
第二,SkyEye對時下比較流行的幾款ARM芯片支持良好,如SAMSUNG的s3c系列及ATMEL的AT91系列等。擁有ARM知識基礎的讀者對這兩個系列的芯片應該都有所了解。以這些常用芯片為基礎進行操作系統的開發,將有利于為那些只是略懂硬件的讀者撥開硬件迷霧,更清晰地看清楚操作系統的全貌。
ARM虛擬機既已選定,接著我們就來了解一下SkyEye的安裝與使用。