2007年5月6日星期日

OKL4在gumstix的測試結果

之前的文章「Open Kernel Labs公司成立,強化L4與虛擬技術應用」提過新成立公司的 "Open Kernel Labs" 提供一系列以L4 microkernel為基礎的embedded與virtualization技術,而即使在邁入商業應用的今日,仍以BSD License (3-clauses)釋出成果,態度相當可取。"Open Kernel Labs" 提供一個針對開發者的Portal site:portal.ok-labs.com,目前開放下載的版本為okl4 release-1.4.1.1,支援IA32與ARM (arm926ejs, xscale, arm1136js, arm1176js)等架構,若以平台來看的話,通用IA32架構,也就是PC99,以及gumstix (based on PXA255)兩項有支援。

gumstix的應用很廣,許多機器人與控制系統都可見其蹤跡,同時也是採用我比較熟悉的Xscale架構,去年也開始相關的qemu模擬工作,自然引起我的高度關注。okl4 release-1.4.1.1相較於NICTA的版本,實在簡單許多。首先,得準備好工具,python2.4、Skyeye (用以模擬與偵錯gumstix),以及ARM toolchain,剛剛已在台大做了mirror如下:

在進行之前,我們來複習NICTA規範的L4 Microkernel / Embedded & Virtualization的架構,Iguana是個運作於L4 microkernel的server,提供作業系統所需的系統服務,像是記憶體管理、權限控管,與驅動程式等等;Kenge概念上類似L4Env,也是提供虛擬執行環境所需的基礎建設;Wombat就相當有意思,也是本架構的賣點,Wombat是個修改過的Linux kernel (目前版本 2.6.10),運作於L4 Microkernel與Iguana之上,如此一來,既可透過Wombat來達成原本Linux應用程式的相容性,又可在L4 Microkernel達到Realtime最佳的效能。OKL4 release提供以上元件的實做,附加具體而微的Linux系統,基本上,只要設定toolchain與Skyeye的路徑後,直接執行以下指令即可建構:
./tools/build.py machine=gumstix project=iguana wombat=True simulate
需注意的是,預設的安裝script忽略了libgcc_s.so.1,所以記得自ARM toolchain複製一份到 build/linux/install/lib/ 目錄。

透過模擬環境的執行畫面如下:
我在圖中以紅色箭頭標注了此virtualization環境的變化。首先是L4 Microkernel,再來是IguanaKenge,最後就是Wombat,最後會跑完Linux booting flow,切入Linux user-space。對了,剛剛也試著用qemu去執行,但似乎會卡在igms0的處理。

沒有留言: