SkyEye介紹

1.SkyEye的起源和發展
    2002 年11月,一個偶然的機會,一羣操作系統的愛好者在網上進行聊天,成立了一個TM-Linux興趣小組,希望要做一些感興趣的事情。當時在清華大學計算機系做博士後的陳渝提出做一個用軟件實現的嵌入式開發板硬件模擬器,可以在模擬器上運行各種操作系統,這樣就可以在沒有開發板的情況下學習和研究操作系統。一開始就陳渝一人做,首先他了解了當前國際上的一些類似的項目,發現著名的μCLinux組織實現了一個armulator模擬器軟件(在Linux系統上運行),可以模擬Ateml AT91(基於ARM7TDMI CPU)開發板,μCLinux可以在armulator(其網址爲http: //www.uclinux.org/pub/uCLinux/utilities/armulator/)上運行。於是陳渝以此爲基點,借鑑 armulator的實現,提出了SkyEye項目,其目標是讓SkyEye仿真多種主流的嵌入式開發板和外設,實現一個可擴展的硬件模擬框架,讓更多的嵌入式操作系統可以在SkyEye上運行。SkyEye項目於2002年12月1日正式建立後,陳渝完成的第一件工作是把armulator移植到了 cygwin/windows環境下,其成果被μCLinux組織接收。接下來清華大學計算機系碩士生李明加入到SkyEye的開發中,8天后, SkyEye的第一個版本推出,再過了4天,μC/OS-II for SkyEye推出。在這期間,SkyEye的網站也建立起來了。緊接着,楊曄、王利明、尹首一等在校學生也加入到SkyEye的開發中,給SkyEye帶來了新的活力,SkyEye進入了新的發展階段,目前通過訪問SkyEye的網站(http://www.skyeye.org/)和在linux公社上的SkyEye論壇( http://www.linuxfans.org)可以瞭解到SkyEye的最新進展並對有關嵌入式系統開發方面的問題進行交流,還可以到 http://gro.clinux.org/projects/skyeye/ 下載最新的SkyEye相關軟件和文檔。

2.SkyEye的背景
    如果你看過電影"黑客帝國"(又稱"matrix"),相信電影描述的虛幻世界會深深地吸引你,至少它是我們看過最有想象力的科幻電影之一。也許我們可以把 SkyEye看作一個"matrix ",把運行在SkyEye上的各種程序看成是這個"matrix"中的芸芸衆生。我們創造SkyEye和編寫運行在SkyEye上運行的程序就是爲了洞悉計算機的奧祕,嚐嚐當"造物主"的感覺。當看到各種軟件Linux、μCLinux、μC/OS-II...在SkyEye上"愉快"地運行時,那種感覺真是太奇妙了。

    對於那些想進行嵌入式系統軟件開發和學習,或者想研究嵌入式Linux等操作系統和一些底層系統軟件(如TCP/IP等)的研究和開發人員來說,可能存在如下幾方面的問題:(1)經常苦於經費不足,缺少足夠的硬件開發板和完善的軟件開發環境,相關的書籍對一些最新軟件的分析還不夠全面,無法深入研究和開發嵌入式軟件。(2)高層次的軟件設計和開發一般不用太考慮底層硬件的實現細節,如果直接處於一個具體的硬件環境下,在開發和研究中可能會陷入硬件的具體細節中不能自拔,而不能把精力放到高層次的軟件設計和開發上。(3)如果硬件開發環境不太穩定(這種情況經常見到),且對具體的硬件不是很瞭解,則可能在排除問題上花費大量的不必要的時間。(4)如果你想自己嘗試設計一個操作系統,則先在一個提供源碼級調試的軟件仿真器上進行開發,可能會大大提高你的開發進度。

對於想了解、學習一般操作系統的實現原理,Linux/μCLinux操作系統或TCP/IP等系統級軟件的實現的人員,目前一般採用的方法是看書和讀源代碼,這是一種靜態的學習方法,效率較低,比較枯燥,缺少親自實踐的感覺。要想深入分析和開發軟件,就要動手編程,不能只是看看書,讀讀代碼,只有通過親手實踐才能夠掌握軟件設計的核心內容。上面所指出的問題和需求促使SkyEye項目的誕生。

3.SkyEye的目標和意義
    SkyEye 是一個開源軟件(OpenSource Software)項目,中文名字是"天目"。SkyEye的目標是在通用的Linux和Windows平臺上實現一個純軟件集成開發環境,模擬常見的嵌入式計算機系統(這裏假定"仿真"和"模擬"的意思基本相同);可在SkyEye上運行μCLinux以及μC/OS-II等多種嵌入式操作系統和各種系統軟件(如TCP/IP,圖形子系統,文件子系統等),並可對它們進行源碼級的分析和測試。

純軟件的模擬器有許多種,如模擬一個芯片時序邏輯的模擬器、只模擬CPU指令的模擬器、模擬整個硬件開發板的模擬器、模擬一個PDA的模擬器等。存在一些純軟件的仿真器或模擬器,如Stanford大學的SimOS模擬器,它仿真的是MIPS系列CPU和相關外設,可以在其上運行SGI公司的Irix操作系統和軟件,目前基本上停止了進一步的開發;PSIM是一個仿真PowerPC指令集的模擬器,目前只支持簡單的命令行應用程序;xcopilot是一個 PDA模擬器,它是由Greg Hewgill出於個人喜好編寫的,它仿真的是M68K CPU,通過它可以給基於PalmOS的軟件開發者提供一個模擬開發環境。Bochs是一個仿真x86 CPU的開源項目,目前還支持AMD64 CPU,在它上面可以運行Linux操作系統。其它一些商業的仿真軟件如vmware和virtualPC可以仿真一個真實的x86計算機,而 Virtutech Simics仿真器可以仿真多種CPU和硬件,功能強大,可用於硬件和系統軟件的評測。

SkyEye 是一個指令級模擬器,可以模擬多種嵌入式開發板,可支持多種CPU指令集,在SkyEye上運行的操作系統意識不到它是在一個虛擬的環境中運行,而且開發人員可以通過SkyEye調試操作系統和系統軟件。由於SkyEye的目標不是驗證硬件邏輯,而是協助開發、調試和學習系統軟件,所以在實現上 SkyEye與真實的硬件環境相比還是有一定差別的。SkyEye在時鐘節拍的時序上不保證與硬件完全相同,對軟件透明的一些硬件仿真進行了一定的簡化。這樣帶來的好處是SkyEye的執行效率更高。SkyEye的推出具有下面三方面的意義:

  • 通過SkyEye仿真集成環境可以很方便地進入到嵌入式系統軟件學習和開發的廣闊天地中。尤其對於缺少嵌入式硬件開發環境和軟件開發環境的用戶來說,它將是一個非常有效的學習工具和開發手段,因爲SkyEye的整個軟件系統都是Open Source的,且基於GPL協議(μCOS-II除外)。因此,如果要學習Linux操作系統或者進行嵌入式系統開發,但苦於沒有硬件支持, SkyEye仿真環境軟件是一個很好的選擇!
  • 如果想研究與具體硬件無關的系統軟件(如TCP/IP協議棧等),採用SkyEye可以有效地提高工作效率,因爲你可以直接在μCOS-II和μCLinux for SkyEye上進行開發和調試,而與具體硬件打交道的各種driver已經存在,且有源碼級調試環境,只需關心高層的邏輯設計和實現就可以了。
  • SkyEye本身作爲一個開放式的項目體系,可以劃分爲多個獨立的子項目系統。通過參與SkyEye的各個子項目,與大家共同交流、協作,可以進一步學習、分析、精通Linux內核,掌握ARM嵌入式CPU編程。

    在32 位嵌入式CPU領域中,ARM系列CPU所佔比重很大,而ARM7TDMI是其中最廣泛的一種ARM CPU核,因此SkyEye首先選擇了ARM7TDMI作爲仿真的目標CPU核,當然將來SkyEye會支持更多種類的CPU。目前在SkyEye上可運行並進行源碼級調試ARM Linux、μCLinux、μC/OS-II操作系統和LwIP(一個著名的嵌入式TCP/IP實現)、MiniGUI(一個著名的嵌入式GUI系統)等系統軟件。SkyEye可用於學習,分析,開發這些系統軟件的實現,瞭解ARM嵌入式CPU編程。而這一切都可在一個純軟件的環境中完成。通過分析 SkyEye本身實現,系統軟件開發人員對ARM,8019as(NE2000兼容)以太網絡芯片等硬件的瞭解也會更深入。

    SkyEye 並不能取代開發板等硬件的功能,但通過它可以比較容易進入到嵌入式軟件的廣闊天地中。由於SkyEye建立在GDB基礎之上,使用者可以方便地使用GDB 提供的各種調試手段對SkyEye仿真系統上的軟件進行源碼級的調試,還可以進行各種分析,如執行熱點分析、程序執行覆蓋度分析等。由於SkyEye提供了源代碼和相關文檔,有經驗的用戶完全可以修改和擴充SkyEye來滿足自己的需求。

原文地址:http://www.ibm.com/developerworks/cn/linux/l-skyeye/part1/index.html

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