July 24, 2006

「演講:深入淺出 Hello World (台南場次)」簡報上線

上週六 (July 22) 舉辦的 [TnLUG活動:深入淺出 Hello World - 台南場 ],如期結束,有興趣的朋友可取得簡報 [HackingHelloWorld-2006-07-22.pdf] 作參考,搭配的 sample files 也請一併參考 [samples-2006-07-22.tar.bz2],簡報內文為 [Creative Commons] 授權,sample files 則是 Public Domain 形式發佈。

週六午夜開始 hack OpenOffice,因為之前的簡報一直弄不出我預期的效果,弄著弄著整夜沒睡,之後就趕去搭乘台鐵自強號,自松山站一路站到台南站,東搖西晃終於結束 4.5 hr 的路程,這段時間我閱讀 [果蠅.基因.怪老頭:生物行為起源的探尋],相較於之前讀過生物類的科普讀物,Jonathan Weiner 與 Seymour Benzer 用豐富的人文筆調,潤飾了艱澀的技術細節,也多次引用我喜愛的詩人 [William Blake] 的詩作,以靈性的角度巧妙詮釋基因與生物行為,希望日後我的創作也能仿效這樣的筆觸與思維。這次的演講更清楚地提到 "Orz Programming 2.0" 的概念,強調「寫程式就會遇到挫折,而且在 Runtime 發生的行為更是難以預料」,這導致我們心中滿滿的 "Orz" 符號。其次,這次也略為提到 shellcode,以及可用來輔助建構 shellcode 的工具與流程,因為有 Kuon 與 zha 等 hacker 蒞臨指導,所以中間的空檔就提了一些有趣的技術細節,如果日後有時間,或許也可討論 UNIX 與 Win32 在實做細節與 system call 方面的異同處。

當然,要感謝 HaWay 協助處理場地與議程進行,與當日熱心商借視聽教室的老師,還有冒著炙熱天氣出門與會的朋友們,當時還真讓我嚇一跳,網頁報名人數有 80 人,當天前來的人數也頗驚人,很高興對於這麼冷門的主題還願意前來指教,也歡迎來信討論指教,謝謝!

儘管花了很多時間探討,其實我覺得還是沒有把 "Hello World" 程式運作在 Linux 的 Runtime 行為解釋清楚,目前已經展開 Part II 的內容,預計有以下項目:
  • "Hello World" on User-Mode-Linux + gdb
  • Linux memory model - VMA, LMA, MMU Overview, etc.
  • 深入 syscall
  • 透過 x86 / ARM / MIPS emulator 作系統分析
  • Profiling 與 Realtime analysis
  • Embedded Linux 專題實做與技巧探討
乍看這些子項目,似乎與 "Hello World" 相形漸遠,這裡援引 William Blake 的「感覺調整」來說明。一旦我們看清楚一切事物的本來面貌,會發現,那個面貌就是「無限」,就如他的詩作〈Auguries of Innocence〉的三十五段、超過八百字中最經典的一段:
        To see a world in a grain of sand,
        And a heaven in a wild flower,
        Hold infinity in the palm of your hand,                                                         
        And eternity in an hour.
    
之前的 blog [保有瞬間的永恆] 已經引用過此詩作,而這裡談談與 Programming 相關的概念。平凡的事物,如一粒沙子或一朵野花者,對多愁善感的詩人來說,啟發思維並造就不朽的作品,化一剎那成了永恆。心思越單純的人,就賦予越豐富的想像力,好比垂髫童子的幻想世界,總是天馬行空、不為成人們所無法了解,我多次提及的 "Hello World" 程式亦然。好的作家不僅需要對文字的良好掌握能力,更需要過人的想像力與領悟力,而好的程式設計師就是一個特別的作家,讀者是電子機械與使用產品的人們,唯有我們掌握了這最基本的概念與原則後,才得以體會「一沙一世界」的真諦,屆時,再來探討 Embedded Linux、Linux Memory model、x86 execution flow,或者其他複雜的技術,才發現那些只是「無限」的各種表示罷了。

未來,希望我能繼續整理這些跨越 user-space 與 kernel-space、從極其簡單的蛛絲馬跡去探索整個複雜的系統,以及進一步掌握系統層面的設計與改良議題,找時間分享,看看能否激發更大的想像力迴響。
由 jserv 發表於 July 24, 2006 01:58 PM
迴響

Hi, jserv:
你演講中提到的Orz Microkernel不知是否會一併釋出 source code 呢?

cyt 發表於 July 24, 2006 02:31 PM

To cyt,

Sure. 不過 Jserv GPL (Good People License) 還沒寫出來 :(

jserv 發表於 July 24, 2006 03:07 PM

我不是hacker, 我只是個乖孩子.

Kuon 發表於 July 24, 2006 05:23 PM

請問Part II何時會舉辦 ?

neko 發表於 July 25, 2006 08:42 AM

To neko,

可能有得等了,最近還有一些計畫要趕。感謝您的關注。

jserv 發表於 July 25, 2006 09:24 PM