<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<channel>
<title>Jserv&apos;s blog</title>
<link>http://blog.linux.org.tw/~jserv/</link>
<description></description>
<dc:language>en-us</dc:language>
<dc:creator>jserv@kde.linux.org.tw</dc:creator>
<dc:date>2012-05-12 22:32:46 +0800</dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=4.23-en" />
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>


<item>
<title>在 Python 中執行 shellcode</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/05/_python_shellco.html</link>
<description>其實這不是什麼新技巧，只是剛好最近研究 [PyPy]，思考到若干低階處理的細節，就順道把這個在 Python 中執行 shellcode 的技巧分享出來，本文的實驗平台為 GNU/Linux x86/32-bit，採用 CPython 2.7.3，目的為實踐前文 [SM 版 Hello World] 中具備自我修改能力的程式 (self-modifying code)。 借助 [ctypes] 套件，我們很容易就能打造以下骨幹程式碼： from ctypes import * libc = CDLL(&apos;libc.so.6&apos;) mprotect = libc.mprotect getpagesize = libc.getpagesize codes = (c_ubyte * 32)( # (omitted)...</description>
<guid isPermaLink="false">2207@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-05-12T22:32:46+08:00</dc:date>
</item>

<item>
<title>演講：Plan9 -- 不只是更好的 UNIX</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/04/plan9_--_unix.html</link>
<description>5 月 15 日，我將在 [星系統社群] 分享名為「Plan9 -- 不只是更好的 UNIX」的議題，除了探討 [Plan9 作業系統] 經典的設計外，順便回顧基於 Plan9 的「文藝復興」，活動資訊與報名方式可參見 [第6次星系主題：Plan9 -- 不只是更好的 UNIX]，摘錄如下： 活動時間：2012/05/15 19:30-21:30 地點：Mix Coffee &amp; Tea (台北市南昌路二段 200 號 報名網址：http://registrano.com/events/552e4b 1980 年代中期至 2002 年，Bell Labs 延續了 UNIX 的研究而發展 Plan9，用更高的抽象思維去規劃整個作業系統，因此，從網路介面、使用者介面、到檔案系統等等資源，全都是檔案 (UNIX 的&quot;Everything is...</description>
<guid isPermaLink="false">2206@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-04-18T23:14:39+08:00</dc:date>
</item>

<item>
<title>「Android 內部通訊機制」簡報上線</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/03/android_6.html</link>
<description>本週一下午，再次在南台科技大學演講，這次選定 [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...</description>
<guid isPermaLink="false">2205@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-03-22T17:43:41+08:00</dc:date>
</item>

<item>
<title>另一個運作於 Android 之上的 X server</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/03/_android_x_serv_1.html</link>
<description>去年年底，筆者介紹過由 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...</description>
<guid isPermaLink="false">2203@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-03-11T14:47:02+08:00</dc:date>
</item>

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

<item>
<title>透過 L4Ka 快速打造作業系統雛型</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/03/_l4ka.html</link>
<description>下標題時，其實頗為掙扎，開發作業系統如此重要之事，怎能講求速成呢？不過，考量到 目前無論是雲端或者移動裝置，都有比例可觀的技術是建構在已有成熟的作業系統之上， 探討實做一個作業系統的 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...</description>
<guid isPermaLink="false">2202@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-03-07T00:33:51+08:00</dc:date>
</item>

<item>
<title>演講：Android Dalvik VM 探險</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/03/android_dalvik.html</link>
<description>應 [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...</description>
<guid isPermaLink="false">2201@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-03-03T00:14:39+08:00</dc:date>
</item>

<item>
<title>DragonFly BSD 3.x 現身</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/03/dragonfly_bsd_3.html</link>
<description>這其實已非新聞，不過既然中文介紹不多，這裡不妨簡要探討 [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...</description>
<guid isPermaLink="false">2200@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-03-02T23:44:56+08:00</dc:date>
</item>

<item>
<title>&quot;Improve Android System Component Performance&quot; 簡報上線</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/02/improve_android.html</link>
<description>日前很榮幸能在 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...</description>
<guid isPermaLink="false">2198@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-02-21T18:17:18+08:00</dc:date>
</item>

<item>
<title>演講：利用 Android 學習系統程式 (台北場次)</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/02/_android_1.html</link>
<description>去年 12 月，筆者在台南崑山科技大學演講 [用 Android 學習系統程式]，除了希望是 [深入淺出 Hello World] 的實務篇，目前也規劃比照之前在台大資訊系的演講 [Applied Computer Science Concepts in Android]，從觀察 Android 的運作開始，並透過現有 Linux 核心與 Android 系統的若干機制，逐步揭開系統程式的面紗，作為驗證電腦科學理論的另一個學習方式，於是有了此系列演講，而在二月 26 日，也有台北的場次，以下引述 [活動簡介]： 時間：2012 年 02 月 26 日 (星期日) / 上午 11:00~12:30 + 下午 14:00 ~17:00 地理位置/交通路線：蘋果優仕敦南店B1...</description>
<guid isPermaLink="false">2199@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-02-21T00:33:03+08:00</dc:date>
</item>

<item>
<title>&quot;Embedded Hypervisor for ARM&quot; 簡報上線</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/02/embedded_hyperv.html</link>
<description>去年年底，小弟在 [JuluOSDev] 社群分享了題目為 [Embedded Hypervisor for ARM] 的演講，簡報已上線，請見 [ARM-Embedded-Hypervisor.pdf] Embedded Hypervisor for ARM View more presentations from Jim Huang 本次議程探討以下項目： Virtualization from The Past Hypervisor Design Embedded Hypervisors for ARM Toward ARM Cortex-A15 除了探討虛擬化技術的原理，本次以實際的 open source 實做作為解說對象，探討了 [Xvisor] 與 Xen-ARM...</description>
<guid isPermaLink="false">2197@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-02-09T14:02:46+08:00</dc:date>
</item>

<item>
<title>C 編譯器跟你想的不一樣</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/01/c_1.html</link>
<description><![CDATA[2008 年筆者在 COSCUP 發表了題目為「我是軟體 -- 那些處理器教我的事」的演講，探討因為處理器架構與系統軟體組態或假設不同，導致一連串令人意外的結果，著眼於涉及跨平台開發所潛藏有如未爆彈的種種議題。日前嘗試修改某個客戶的專案，沒想到又踩到另一個地雷，自詡是「慣 C」迷的筆者，萬萬沒想到還得交叉對照組合語言輸出，才克服問題，撰文分享如下。 考慮以下程式碼：(test.c) #include &lt;stdio.h> #define DEBUG 1 #define DBG( ... ) \ if (DEBUG) { __VA_ARGS__; } int main(int argc, char *argv[]) { char *num; switch (argc - 1) { case 0: num =...]]></description>
<guid isPermaLink="false">2196@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-01-31T13:21:59+08:00</dc:date>
</item>

<item>
<title>演講：L4 microkernel 的背景知識與最新的研究發展</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/01/l4_microkernel.html</link>
<description>今年二月 7 日，小弟將分享關於 L4 microkernel 的背景知識與最新的研究發展，詳情請參考 [星系統社群：第5次星系主題-L4 microkernel 的背景知識與最新的研究發展]。 第一次見到 [L4 microkernel]，是在 William Stallings 的 [作業系統叢書] 讀到，那時是 1997 年，僅提供七個系統呼叫但可搭建完整作業系統基礎的 microkernel，對當時還在唸高中的我，實在是不小的衝擊。高中住校沒有辦法使用電器設備，遑論使用網際網路，唯一獲取知識的方法，就是利用每天宿舍晚自習結束到關大門前的短暫一個半小時，去附近的書店啃書，William Stallings 的大作闡述作業系統非常透徹，而關於 L4 的部份，更激起我的興趣，但這類的書籍往往售出後，就很少進貨，而我身上根本沒什麼零錢，結果一時鋌而走險，竟然沒購買而擅自攜帶出去。這本書伴隨著我在高中的課餘生涯，也讓「系統程式」與我結下不解之緣。 像這樣去附近的店家「借取」(一開始真的有歸還，但後來就無疾而終) 了好幾本關於作業系統、編譯器設計、Linux / BSD 系統書籍的行徑，是高中生涯很特別的插曲，但「偷書」是事實，估計總價約台幣五千多元。後來接了案子，逐漸有能力償還時，這些店家要不倒閉，不然就是不接受我的賠償，於是愧疚了十多年。這幾年購書，往往會要求不打折，不然就是同一本書一次多買幾份，送給需要的朋友，此外，我持續地作免費的資訊技術分享，就是希望能多作點補償。因為談及 L4 microkernel，也抖出「偷書」的陳年往事，如今探討這個議題，自然是五味雜陳，本議程最早規劃在去年，追憶 L4 發明人 Jochen Liedtke 教授過世十週年，不過當時有事耽擱，只好在今年擇期探討。 L4 在上個世紀末證明，microkernel 的效能落差並非本質的限制，而是設計與實做的議題，也因此，L4 這個高效能的...</description>
<guid isPermaLink="false">2195@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-01-19T11:36:43+08:00</dc:date>
</item>

<item>
<title>&quot;Develop Community-based Android Distribution and Upstreaming Experience&quot; 簡報上線</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/01/develop_communi.html</link>
<description>去年十一月有幸受 [droidcon] 的邀請，到荷蘭阿姆斯特丹分享關於 [0xlab] 兩年來的開發經驗，探討我們如何累積基於 Android 的技術，並且透過 open source 的力量，回饋到社群並為我們創造更多正向的開發機會。簡報已上線，請見： [dev-android-distribution.pdf] Develop Community-based Android Distribution and Upstreaming Experience View more presentations from Jim Huang 提綱如下： Reasons to build Android distribution Lesson learned from AOSP The methods to enhace Android software...</description>
<guid isPermaLink="false">2194@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-01-03T14:49:39+08:00</dc:date>
</item>

<item>
<title>「用 Android 學習系統程式」簡報上線</title>
<link>http://blog.linux.org.tw/~jserv/archives/2012/01/_android.html</link>
<description>上個月筆者在台南崑山科技大學演講「用 Android 學習系統程式」，簡報已上線，請參考 [discover-android-system.pdf] Discover System Facilities inside Your Android Phone View more presentations from Jim Huang 自 2006 年起，筆者分享了名為「深入淺出 Hello World」的系列演講後，獲得一些迴響與啟發，而隨著 Android 裝置的普及與整體硬體的提昇後，實際在大量使用的裝置如智慧型手機上，做觀察、分析，進而研究系統程式的原理，已是相當便利。本議程可視為「深入淺出 Hello World」的實務篇，企圖從觀察 ARM/Linux 的運作開始，延伸去年的演講主題 [自己動手，豐衣足食 -- 淺談探索 Linux 系統設計之道]，透過現有 Linux 核心與 Android 系統的若干機制，逐步揭開系統程式的面紗。 議題大綱： 握在手心的 Linux...</description>
<guid isPermaLink="false">2193@http://blog.linux.org.tw/~jserv/</guid>
<dc:subject></dc:subject>
<dc:date>2012-01-03T00:00:10+08:00</dc:date>
</item>


</channel>
</rss>
