March 21, 2010

「下一站,Android 」簡報上線

去年受邀在 KatDC Forum 的演講「下一站,Android 」(漫談 Android 平台移植與調校),簡報已上線,請參考 [next-stop-android.pdf]。
在這份簡報,小弟快速帶過一些潛藏在 Android 的相容性議題,即使不使用有如雞肋的 Android NDK (Native Development Kit,對熟悉 C/C++ 開發的工程師來說,NDK 連 libcutils 都不提供使用),而是直接移植現有的原生套件,往往會發現一堆超乎想像的編譯錯誤,原因就是 Android 並非 POSIX 相容的系統。另外,Android 為了架構上能呈現一致的設計,採用 Java 包裝介面,這卻使得修正系統錯誤時,得逐層分析探討,而運行中系統的大量的 thread,更是雪上加霜,這時候,唯有下功夫研究系統工具與加強貫串系統的除錯機制,才能有效克服產品化的困難。另外,議程也提到若干優化系統效能的技巧,最後就是一個運行中的實例,感謝前來指教的朋友。
由 jserv 發表於 12:18 AM | 迴響 (0)

March 19, 2010

「QEMU JIT Code Generator & System Emulation」簡報上線

本週一,應台灣科技大學資訊工程系的邀約,與 [cmchao] 共同給予一場名為 "QEMU JIT Code Generator & System Emulation" 的演講,簡報與相關資訊已上線,請參考:
稍早在 [人生是沒有畢業的學校] 一文談及小弟在晶心科技服務的經驗,有機會與優秀的高手共事,實在格外可貴,而 [cmchao] 就是其中一位高手,從零到有,獨立實現 QEMU 對 NDS32 ISA (晶心科技自訂的指令集) 與參考平台硬體的系統模擬,建構於 QEMU 這個世界一流的開放原始碼專案的基礎上,提供完整的系統驗證分析環境。議程兩大主軸如下:
  • QEMU JIT Code Generation: 先探討過去指令集模擬方式所造成效能低落的原因,逐一分析 QEMU 所施行的技巧、避開冗餘程式碼生成、Micro-Op 優化等技術
  • QEMU System Emulation: 以延伸 QEMU 架構、模擬 Atheros WirelessLAN 裝置為例,探討 QEMU 對週邊硬體的支援模式,並探討當今資訊技術的開發方向
雖然 QEMU 的資料不算少,但缺乏全面、深入淺出探討核心技術的議程,而我們就著手準備,揭開虛擬化技術背後的基礎建設。感謝前來指教的師生及社會人士,踴躍與我們討論,未來也考慮延伸為一系列 QEMU/KVM 技術的議程。
由 jserv 發表於 8:30 PM | 迴響 (0)

March 18, 2010

演講:以 GDB 重新學習 C 語言程式設計 (成功大學)

本月底,應成功大學電機系邀請,對之前預告的「2010 年免費課程:以 GDB 重新學習 C 語言程式設計」作第一場分享,以下是相關的資訊:
  • 講題:以 GDB 重新學習 C 語言程式設計
  • 日期:2010 年 3 月 27 日 (週六)
  • 時間:14:00 - 17:00
  • 地點: 國立成功大學自強校區電機大樓一樓 令洋廳
有別於以往 C 語言教材慣用 "Hello World" 等級的範例程式作切入,小弟預計用 [eserv] 這個自行開發的小型 C/C++ Ajax web framework (將於 OSDC.tw 研討會介紹) 作為實驗的對象,透過 gdb 去追蹤分析,進而作擴充,預期將掌握 UNIX 系統與 C 語言程式開發的技巧。用簡單的 web server + CGI (純 C 語言 + POSIX 系統呼叫實做) 的組合,以 AJAX 作為立即資料的呈現。比方說以下的圖例:

展現一個動態連結到 libiw 的 web server + AJAX engine 僅有 22 kb,而透過 GDB 更給予我們高度的彈性,隨時可動態觀察記憶體與系統的資訊,進而做出修改與調整。就 C 語言學習的角度來說,我們會著重以下幾個特徵:
  • C99 的延伸語法
  • function pointer / callback function
  • Linux 系統呼叫的行為
  • Heap/Stack 與 x86
當我們以 GDB/Debugger 設定中斷點、單步執行,即可循序分析/修改一個中型的系統,動態修改 CGI 的傳回值的同時,可立即反應在網頁,HTML + CSS + JavaScript 總是能比較生動。當然,在這過程,又會面臨到新的議題,這也是「以 GDB 重新學習 C 語言程式設計」的設計方針,好像一個師傅親手操刀,將作品進行雕刻琢磨的過程,用透明漸進的方式去闡述。哪些人適合這樣的課程呢?建議對 C 語言有初步的認知、並開發過 C 語言程式者,而期望用貼近系統運作方式去重溫 C 語言,期待您的建議與指教,謝謝!

參考資料: PS: 近期內會公佈 [eserv] 與分析用的 GDB scripts,另外,這個議程應該頗冷門,不需要特別報名,自行抽空前來即可
由 jserv 發表於 9:16 PM | 迴響 (0)