December 29, 2011

在 Android 上運作 X server

在 Android 上運作 X11 server 的想法大概從 2009 年始,就有頗多單位陸續實現,不過大部分都是 close source。整個 X11 若要在 Android bionic (libc) 上完整編譯,會面臨頗多問題,比方說缺少 SysV shm 的支援。而 Tom Marshall 則貢獻了一個 open source 的實做,專案暫時命名為 "android-x-server",完全以 Java 搭配 Android framework 來開發,程式碼維護於 github [android-x-server]。目前還在開發初期,不過大致能運作了。

下圖是我在 Nexus S 手機先執行 [android-x-server] (X server),然後接受 xlogo 的顯示要求 (X client):

之間的通訊方式當然是 X protocol,而在 Android 環境下,我們可透過 adb 的 port forwarding,指定將 host 端的特定 port 對應到 X server 所 listen 的 port 6000,操作方式很簡單,就這麼一行:
$ adb forward tcp:6099 tcp:6000
上述指令將 host 端的 port 6099 (也就是 DISPLAY=:99) 對應到 Android 手機上的 port 6000,自然就是 X server 接受 X protocol 之處,以下是參考的 xdpyinfo 輸出:
$ DISPLAY=:99 xdpyinfo 
name of display:    :99
version number:    11.0
vendor string:    My Vendor
vendor release number:    0
maximum request size:  262140 bytes
motion buffer size:  0
bitmap unit, bit order, padding:    32, LSBFirst, 32
image byte order:    LSBFirst
number of supported pixmap formats:    6
...
screen #0:
  dimensions:    480x800 pixels (50x84 millimeters)
  resolution:    244x242 dots per inch
  depths (2):    24, 32
  root window id:    0x5
  depth of root window:    24 planes
  number of colormaps:    minimum 1, maximum 1
  default colormap:    0x4
  default number of colormap cells:    256
  preallocated pixels:    black 0, white 16777215
  options:    backing-store NO, save-unders NO
整個實做非常精簡,但對於研究 X protocol 與 X server 是極好的參考項目。
由 jserv 發表於 9:19 PM | 迴響 (0)

December 28, 2011

「淺談探索 Linux 系統設計之道」簡報上線

去年小弟在 Study-Area 分享一場主題為「自己動手,豐衣足食 -- 淺談探索 Linux 系統設計之道」的演講,獲得頗多迴響,該議程從 Linux 核心的經典設計,全程以軟體開發者的觀點,探訪核心與週邊硬體互動的機制,試圖找出關聯性,進而將這些「鑰匙」串連並探索系統內部,簡報已上線,請見 [linux-discovery.pdf]
雖然在暑期的台南舉辦,且不幸空調無法正確運作而造成遺憾,但前來指教與討論的朋友仍不少,這讓小弟對分享系統程式原理的知識,有頗大的鼓舞。預計近期除了探討 [用 Android 學習系統程式] 一類的題材外,還規劃了從分析 toolchain 原理、核心與使用者層級互動,到改善整體系統效能和穩定度的系列演講,請多多指教,謝謝!
由 jserv 發表於 10:01 PM | 迴響 (0)

December 26, 2011

「軟體又熱又平又擠」簡報上線

上週五 (Dec 23) 應國立成功大學資訊工程系盧文祥教授的邀約,給予一場標題為「軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維」的演講,恰好演講地點就在十二年前,我參加大學推薦甄選的面試指定教室,而這場演講可說是自己心靈與知識成長的紀錄,簡報檔案已上線,請見:
在開放原始碼軟體衝擊下,不僅給予我們新的機會,也促使我們得快速的改變既有概念,我選定這個題目的考量,著眼以下三者:
  • 熱:軟體在多樣的應用
  • 平:軟體作為破壞性技術
  • 擠:軟體在爆炸性的規模
感謝老師與同學們的指教。
由 jserv 發表於 4:52 PM | 迴響 (0)

December 2, 2011

「探索嵌入式 ARM 平台與 SoC」簡報上線

前年九月與去年五月,小弟在 Study-Area 做了主題為「探索嵌入式 ARM 平台與 SoC」的演講,分享過往的開發經驗,並試圖透過追蹤 [CuRT] 這樣具體而微的 RTOS for ARM,作為學習 ARM 嵌入式平台的切入點。在 Part I,快速瀏覽 ARM 架構、SoC 平台,與若干基礎概念,而在 Part II,以 PXA255 為範例,討論筆者開發的 CuRT 如何進行硬體啟動程序,從而知悉 ARM 中斷、例外處理,以及系統暫存器的對應。簡報已上線,可參考 [platform:: ARM overview]。
Part I
Part II
Part III 預計探討 ARM Toolchain (compiler, assembler, linker/loader) 與平台特性等項目。感謝您的指教與討論。
由 jserv 發表於 12:05 AM | 迴響 (0)