2007年6月20日星期三

多國語言支援的圖形化kboot

上週二 (Jun 12) 在TOSSUG聚會活動「2007 年第 7 場心得分享 - 組字的核心:字的結構」時,展示「Xorz/Embedded的動態組字實做」並提及可能的應用形式,我舉了關於boot loader的例子,作為說明動態組字技術在嵌入式系統的重要性。的確,隨著虛擬化技術與能源管理技術的突破,boot loader越來越多元,針對前者,得配合virtualization executive做出不同的啟動程序,而對後者來說,動態進階能源管理所建立的「中間資訊」(suspend to RAM / suspend to Disk),也需要作合理的處理,這都需要高度彈性的boot loader涉入。另外,我們可從DSLinux (port Linux to the Nintendo DS gaming console) 與PS3 Linux (SONY PlayStation 3的Linux移植) 等計畫發現,其移植的途徑不同以往,而是大膽採用kboot/kexec的機制來降低移植的難度,並提供多樣的應用方式,詳情可參考之前的文章「kboot初探與模擬驗證」。

早上在hack OLPC時,又想到上述議題,所以我決定作個概念性驗證的實做,驗證kboot這個「功能強大的Linux boot loader」對OLPC的影響。以往的boot loader雖然實做了圖形介面,但功能是很侷限的,頂多只能產生靜態選單與底圖,筆者的想法就是,用一個簡單的圖形系統取而代之,提供真正有彈性的使用者互動機制,而我們有Xorz/Embedded。另外一個議題是,我們應該允許不同的開機方式,比方說透過網路或USB隨身碟,而且可在任何時間切換,使用情境很直覺,可以假設一開始運作缺乏中文系統的OLPC預設Sugar UI,等有需要的時候,插入USB隨身碟,系統會彈出一個boot畫面,提示使用者是否要重新開機,因為透過kexec系統呼叫,這一切將會非常快速 (跳過BIOS與硬體初始化),而USB隨身碟上面的系統當然就可以有中文或者其他客制化的環境。

同時,筆者也想藉此彰顯在「組字技術與手持式裝置的新機會」一文表達的想法,為何我們千方百計想把CJK (中日韓) 語文整合到嵌入式系統設計呢?或許我們會犧牲美觀,但是可帶來對於多國語文最基本的顯示能力,這大可整合到boot loader或kernel中。聽起來很玄,俗語說:「一圖勝千言」,看看現在的進度:
以上呈現的想法就是動態讀取裝置列表 (透過udev與FreeDesktop HAL),讓OLPC的軟體建設得以作基本的probing處理,進而在小型的圖形環境中產生對應的動態選單與動作描述。圖片展示了讀取USB Disk,並取出其中的中文標籤,以選單方式讓使用者決定系統的啟動與否,甚至,我們可透過網路來啟動或更新整個OLPC,這一切將可相當有彈性。

附帶一提,右下角的圖示就是「OrzLab的吉祥物」:「囧囧」,正準備跳出傳統的PC,走向多種嵌入式系統裝置的新應用。

1 則留言:

匿名 提到...

> 可以假設一開始運作缺乏中文系統的OLPC預設Sugar UI

gcin + firefly bitmap 可以在 1.5 MB harddisk space 以內做出 中文顯示 + 輸入
如果放棄詞音(智慧注音),可以在 1 MB 以內搞定。

http://moto.debian.org.tw/viewtopic.php?p=55037