分享到plurk 分享到twitter 分享到facebook

jserv (黃敬群)

簡介

工作經歷

開放原始碼專案參與

課程和講座資訊

作業系統核心作品

  • Piko/RT: 針對 Arm Cortex-M 系列提出類似 Linux 核心的最小實作,支援部分 POSIX
  • F9 microkernel: 依循 L4 microkernel 設計原則,特色是針對 ARM Cortex-M 提供安全和高效能的嵌入式作業系統核心,約 3000 行 C 程式碼 [2014 年商業應用]
  • mini-arm-os: 從無到有開發 ARM 多工作業系統,支援多執行緒,僅 400 行 C 程式碼
  • rtenv+: 具體而微的類似 UNIX 作業系統,運作於 ARM Cortex-M3/M4
  • rtmux: 在 ARM Cortex-A 架構上提供輕量級的虛擬化執行環境,支援 Linux 與 RTOS
  • CuRT: 小型的即時多工作業系統核心,支援 ARMv5 與 x86 架構
  • xv6-x86_64: 將 MIT Xv6 移植到 x86_64 架構並重新整理程式碼,允許更多功能和效能提升
  • Codezero microkernel: 依循 L4 microkernel 設計原則,實作短小精悍的作業系統核心,支援 ARMv5 架構 [2011 年商業應用]

編譯器和虛擬機器作品

  • AMaCC: 用 1500 行 C 程式打造出能夠編譯自己並支援 ARMv7-A 架構的 C 語言編譯器,可輸出 ELF 執行檔或者 JIT 編譯執行
  • MazuCC: 支援部分 C99 規格的 C 語言編譯器,可輸出 x86_64 組合語言
  • shecc: 針對 ARMv7-A / RISC-V 32-bit (RV32) 架構的 C 語言最佳化編譯器,可編譯自己並輸出 Linux ELF 執行檔
  • rubi: 類似 Ruby 程式語言的精簡實作,可由 JIT 編譯執行,原始程式碼相當精簡
  • jitboy: 針對 Game Boy 掌上遊戲機和內建 GBZ80 處理器發展的 JIT 編譯器,可動態將 GBZ80 指令轉換為 x86-64 指令
  • rv32emu: 針對 32 位元 RISC-V 處理器架構發展的指令集模擬器,支援多項延展指令
  • semu: 極精簡的 RISC-V 64 位元指令集和硬體系統模擬器,可執行 Linux 核心和相關的套件。原始程式碼不到二千行
  • kvm-host: 利用 Linux 核心的 KVM,建構精簡的系統模擬器,得以在運作另一個 Linux guest,支援 x86-64 和 Arm64 微處理器架構
  • pitifulvm: 高度簡化的 Java 虛擬機器實作

網頁伺服器

  • cserv: 針對靜態網頁的處理,接近甚至超越 NGINX 的表現,原始程式碼不到四千行

編撰的電子書

科普筆記

  • 軟體缺失導致的危害
    • 1970 年代推出的首款廣體民航客機波音 747 軟體由大約 40 萬行程式碼構成,而 2011 年引進的波音 787 的軟體規模則是波音 747 的 16 倍,約 650 萬行程式碼。換言之,你我的性命緊繫於一系列極為複雜的軟體系統之中,能不花點時間了解嗎?
    • 軟體開發的安全性設計和測試驗證應獲得更高的重視
  • 解讀計算機編碼
    • 人們對數學的加減運算可輕易在腦中辨識符號並理解其結果,但電腦做任何事都受限於實體資料儲存及操作方式,換言之,電腦硬體實際只認得 0 和 1,卻不知道符號 + 和 - 在數學及應用場域的意義,於是工程人員引入「補數」以表達人們認知上的正負數
    • 您有沒有想過,為何「二補數」(2’s complement) 被電腦廣泛採用呢?背後的設計考量是什麼?本文嘗試從數學觀點去解讀編碼背後的原理
  • 圖解傅立葉分析
    • 傅立葉 (Fourier) 分析不僅是個數學工具,更是種徹底顛覆一個人以前世界觀的思維模式
    • 不幸的是,傅立葉分析的公式看起來太複雜,以至於很多人囫圇吞棗,並從此對它深惡痛絕
    • 本文在不需要特別熟悉數學工具的狀況下,讓讀者體會到藉由傅立葉分析看到世界的另一個樣貌
  • 從 Revolution OS 看作業系統生態變化
    • 2001 年,J. T. S. Moore 以自由軟體和開放原始碼軟體發展為主題,導演了相當可貴的紀錄片《Revolution OS》,訪談了若干先鋒者,是理解駭客 (hacker)、 GNU 計畫、自由軟體基金會 (FSF)、Linux 核心、開放原始碼 (open source) 和自由軟體 (free software) 基於不同理念各自發展、Netscape 宣佈 Mozilla 開放原始碼專案、基於 Apache 和一系列開放原始碼技術的公司、在 NASDAQ 上市等等歷程的第一手資訊
    • 因應教學需求,試圖透過共筆,選錄部份內容作資訊更新和補充
  • 看漫畫學 Linux
    • Daniel Stori 經營的網站 {turnoff.us} 提供一系列關於資訊技術的漫畫,其中 inside the linux kernel 生動地展現 Linux 核心的部分機制和相關的套件
    • 漫畫以房屋的側面剖面視角,以房屋為載體,小企鵝、小狗、小丑等成員組為大家庭,各自分工,藉此展現 Linux。由於漫畫針對 Linux 核心的比重不算高,本文標題變更為通用的 Linux 系統,即核心加上關鍵應用程式的組合
  • 資訊科技詞彙翻譯
    • 考慮到科技文化延續議題,我們尊重台灣資訊科技前輩的篳路藍縷、理解詞彙背後的考量因素,和使用精準詞彙,其實後者也是工程素養的一環,只是很多人忽略
    • 了解詞源、語境,謹慎選擇用詞,是一種必要的態度

近期研究

Android 相關

過往在成大

更多資訊