星球

Blog:Jserv's blog


最後更新: 2012/8/30 20:08:00
RSS | RDF | ATOM

演講:打造類似 Arduino 的開發環境 (MOSUT)

2012/5/29 14:24:00 | Jserv's blog
今年我做了生活方式的調整,之後在南部與若干 open source 的同好,搞了一個每兩週一次的例行性小型聚會 [MOSUT],取自 "Meeting of Open Source Users in Tainan" 之意, 初步想法大致為: 南台灣的 open source 同好聚會 提供大學院校、公司團體,以及個人作技術討論交流的機會 使用或改善現有的軟體專案 增加與北部地區的社群互動 我們進行的方式為,每次聚會先安排特定主題的心得分享,然後由成員作討論並相互認識。南部較少科技類別的聚會,但不表示就沒有相關的需求。事實上,無論是生根於南部的中小企業公司行號或者學校機構,對資訊技術的需求都非常多元,從資料庫系統、驅動程式開發、自動控制,到網路應用程式都有。個人對 [MOSUT] 沒有太高的期待,只希望能因此多認識南部的同好,期待大家的參與及討論。 在 6 月 2 日下午,我將會以「打造類似 Arduino 的開發環境」為題,跟參加 [MOSUT] 聚會的朋友分享以一位工程師的角度,嘗試延伸 [Arduino] 的想法,用若干微處理器打造簡易的平台,並製作一些有趣的應用,比方說步行機器人。這些成果陸續從最核心的部份,慢慢擴展到之上的應用,希望能建立一個類似 [Arduino] 的開發環境。關於該活動的資訊,請參見 [報名網頁],地點在國立臺南大學。 Arduino 是個採用開放授權釋出的互動開發平台,包含一塊擁有簡單輸入、輸出...

在 Python 中執行 shellcode

2012/5/12 22:32:00 | Jserv's blog
其實這不是什麼新技巧,只是剛好最近研究 [PyPy],思考到若干低階處理的細節,就順道把這個在 Python 中執行 shellcode 的技巧分享出來,本文的實驗平台為 GNU/Linux x86/32-bit,採用 CPython 2.7.3,目的為實踐前文 [SM 版 Hello World] 中具備自我修改能力的程式 (self-modifying code)。 借助 [ctypes] 套件,我們很容易就能打造以下骨幹程式碼: from ctypes import * libc = CDLL('libc.so.6') mprotect = libc.mprotect getpagesize = libc.getpagesize codes = (c_ubyte * 32)( # (omitted)...

演講:Plan9 -- 不只是更好的 UNIX

2012/4/18 23:14:00 | Jserv's blog
5 月 15 日,我將在 [星系統社群] 分享名為「Plan9 -- 不只是更好的 UNIX」的議題,除了探討 [Plan9 作業系統] 經典的設計外,順便回顧基於 Plan9 的「文藝復興」,活動資訊與報名方式可參見 [第6次星系主題:Plan9 -- 不只是更好的 UNIX],摘錄如下: 活動時間:2012/05/15 19:30-21:30 地點:Mix Coffee & Tea (台北市南昌路二段 200 號 報名網址:http://registrano.com/events/552e4b 1980 年代中期至 2002 年,Bell Labs 延續了 UNIX 的研究而發展 Plan9,用更高的抽象思維去規劃整個作業系統,因此,從網路介面、使用者介面、到檔案系統等等資源,全都是檔案 (UNIX 的"Everything is...

「Android 內部通訊機制」簡報上線

2012/3/22 17:43:00 | Jserv's blog
本週一下午,再次在南台科技大學演講,這次選定 [Android 內部通訊機制] 這個題目,記得大陸網友曾說過,若能理解 Android Binder 的原理,整個 Android framework 大概已理解 50%,這句話一點也不為過。筆者嘗試在演講中,揭露 Android 裡貫徹概念整體性 (conceptual integrity) 的 Binder 機制,簡報檔案已上線,請見 [android-binder-ipc.pdf] Android IPC Mechanism View more presentations from Jim Huang 演講提綱如下: IPC: The heart of Android Design Patterns Binder IPC Internals Use...

演講:Android 內部通訊機制

2012/3/11 0:04:00 | Jserv's blog
四年前,應南台科技大學的邀請,分享題目為 [尋幽訪勝話系統--以 Linux 探索軟硬體整合設計] 的演講,今年又有機會造訪該校。這次的演講題目為「Android 內部通訊機制」,Android 作為智慧型手機作業系統,需要充分考量繁複的軟體元件規劃與設計,而跨越元件間的通訊,自然是其中重要因素,本議程以 Android 的設計觀點,探討其內部通訊機制是如何讓眾多軟體元件得以相互通訊,並且搭建 Android 應用程式框架所需之基礎系統服務。演講時間在三月 19 號,13:50 開始,地點在南台科技大學資訊工程系 c304 教室。 去年在 StudyArea 高雄探討過「Android 圖形系統 -- 設計與實做分析],議程前半部幾乎都在探討 Android Binder IPC 的設計,其實很多資訊技術背後都有一致的設計概念。《人月神話》作者 Frederick Brooks 指出,系統設計時,保有概念整體性 (conceptual integrity) 是最重要的原則,概念上師法 Be Inc. 與 Palm Inc. [OpenBinder] 的 Android...

另一個運作於 Android 之上的 X server

2012/3/11 14:47:00 | Jserv's blog
去年年底,筆者介紹過由 Tom Marshall 開發的 [Android X server],現在一位澳洲的博士生 Matt Kwan 則提供另一個版本,以 MIT X License 釋出並放在 [Google Code] 維護。這個 X server 同樣以 Java 重新實做,約有一萬四千行。目前仍缺乏 X extension 的實做,所以依賴 X RENDER 或 RandR 一類 extension 的 X 應用程式,無法順利運作。 上圖是個實際運作起來的畫面,而 Matt Kwan 與 Tom Marshall...

透過 L4Ka 快速打造作業系統雛型

2012/3/7 0:33:00 | Jserv's blog
下標題時,其實頗為掙扎,開發作業系統如此重要之事,怎能講求速成呢?不過,考量到 目前無論是雲端或者移動裝置,都有比例可觀的技術是建構在已有成熟的作業系統之上, 探討實做一個作業系統的 Prototyping (雛型方法),何嘗不是引入創新的機會。Prototyping 是在 1980 年代初期興起的一種軟體發展模式,動機在於欲求在限定期限內,以最經濟而 快速的方法開發出系統的原型,以便即早澄清或驗證不明確的系統需求。本文嘗試在 [L4Ka] microkernel 的基礎上,建構一個適用於 IA32 架構的小型作業系統。 在稍早的演講議程 [L4 microkernel 的背景知識與最新的研究發展] 中,筆者提及 L4 家族中 L4Ka 專案企圖以 C++ 高階語言及物件導向描述方式,重作 Jochen Liedtke 博士提出的 L4 microkernel 原型,這部份的成果也就是 [L4Ka::Pistachio],目前一系列的專案原始碼均已在 [github] 上維護。L4Ka 不僅實做 L4 ABI,還提供了眾多核心開發的機制,如 in-kernel debugger,以及眾多的 user-level...

DragonFly BSD 3.x 現身

2012/3/2 23:44:00 | Jserv's blog
這其實已非新聞,不過既然中文介紹不多,這裡不妨簡要探討 [DragonFly BSD] 3.0 的推出。 DragonFly 專案創始人 Matthew Dillon 曾是 FreeBSD SMPng 項目的核心開發者, 同時也大幅改善包含虛擬記憶體管理與 VFS 等項目。由於 FreeBSD 5.x 的多執行緒系 統初期有很多問題,而 FreeBSD 4.11 後僅提供安全性修正,卻不再推出 4.x 系列版本 ,致使 Matthew Dillon 在 2003 年七月宣佈將在 FreeBSD 4.8-STABLE 的基礎推出一個 嶄新的 BSD 系統,專注於 x86/x86_64 平台的 SMP...

演講:Android Dalvik VM 探險

2012/3/3 0:14:00 | Jserv's blog
應 [Taipei GTUG] 之邀,三月 14 日晚間,我將分享主題為「Android Dalvik VM 探險」的演講。以下摘錄 [活動資訊]: 時間:2012/03/14 19:30-21:30 地點:果子咖啡 / 台北市松山區民生東路三段140巷11號 報名網頁:http://registrano.com/events/05fecf 自從 Google 在 2008 年 Google 工程師 Dan Bornstein 揭露 Android 系統的重要元件 Dalvk VM 的 [設計概念] 後,Dalvik 就是人們相當有興趣的議題之一,而這幾年 Google 工程師陸續在 Dalvik 引入頗多經典的設計,本議程將以一個系統整合開發者的角度,去對 Dalvik VM...

"Improve Android System Component Performance" 簡報上線

2012/2/21 18:17:00 | Jserv's blog
日前很榮幸能在 Linux Foundation 舉辦的 [Android Builders Summit] 發表 [Improve Android System Component Performance] 議題,其簡報已上線,請見 [android-performance.pdf] Improve Android System Component Performance View more presentations from Jim Huang 在這個議程中,筆者嘗試探討三項在 Android 裝置產品化過程所面臨的挑戰: 2D/3D graphics Android runtime boot time 特別在非智慧型手機的產品需求來說,許多公司均投入可觀的工程資源,還無法有效克服這幾項,困難處在於細節太多,而且直接影響到使用者體驗,偏偏 (現有的) Android 就還沒充分在高解析度、較低運算能力的環境,或者繁複的第三方軟體整理等狀況下驗證或調整。筆者過去曾與一些 SoC...