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

版本 35000154ab2ea30a632885aa3002d5a6157e6e2d

User/jserv

Changes from 35000154ab2ea30a632885aa3002d5a6157e6e2d to current

---
title: jserv (黃敬群)
categories: User
...

簡介
====
- 成功大學資訊工程系 92 級,[蘇文鈺教授](http://www.csie.ncku.edu.tw/ncku_csie/depmember/teacherdetail/id/12)的導生
- 成功大學資訊工程系 92 級,[蘇文鈺教授](https://www.csie.ncku.edu.tw/zh-hant/members/13)的導生
- 台灣苗栗人,任教於國立成功大學資訊工程系
- [成功大學分散式帳本實驗室](https://dlt.csie.ncku.edu.tw/)
- 英文名: Jim Huang / 花名: 宅色夫
- Google:// [jserv](http://www.google.com.tw/?q=jserv)
- 英文名: Ching-Chun (Jim) Huang / 花名: 宅色夫
- Google:// [jserv](https://www.google.com.tw/?q=jserv)

工作經歷
=======
- [BiiLabs Co., Ltd.](https://biilabs.io/)
- [鴻海科技集團](http://www.foxconn.com.tw/)
- 和沛移動
- [鴻海科技集團](https://www.honhai.com/)
- [工業技術研究院](https://www.itri.org.tw/)
- [台達電子](http://www.deltaww.com/)
- [聯發科技](http://www.mediatek.com/)
- [台達電子](https://www.deltaww.com/)
- [聯發科技](https://www.mediatek.com/)
- [Linaro](https://www.linaro.org/)
- [晶心科技](http://www.andestech.com/)
- [晶心科技](https://www.andestech.com/)
- [Openmoko](https://en.wikipedia.org/wiki/Openmoko) (大眾集團)
- [華寶通訊](https://zh.wikipedia.org/wiki/%E8%8F%AF%E5%AF%B6%E9%80%9A%E8%A8%8A)

開放原始碼專案參與
===============
- [AOSP](http://source.android.com/) (Android Open Source Project)
- [新酷音輸入法](http://chewing.im/)
- [Kaffe Virtual Machine](http://www.kaffe.org/)
- [GCC](http://gcc.gnu.org/) / GCJ (GCC for Java)
- [LXDE](http://lxde.org/)
- [AOSP](https://source.android.com/) (Android Open Source Project)
- [新酷音輸入法](https://chewing.im/)
- [Kaffe Virtual Machine](https://github.com/kaffe)
- [GCC](https://gcc.gnu.org/) / GCJ (GCC for Java)
- [LXDE](https://lxde.org/)
- [SSE2NEON](https://github.com/DLTcollab/sse2neon)

課程和講座資訊
============
- [演講行程和公告](https://github.com/jserv/talks)
- 「[Linux 核心設計/實作](http://wiki.csie.ncku.edu.tw/linux/schedule)」 (成功大學; 2019-)
- 「[Linux 核心設計/實作](https://wiki.csie.ncku.edu.tw/linux/schedule)」 (成功大學; 2019-)
- 「[計算機結構](/arch/schedule)」課程 (成功大學; 2019-)
- 「資訊科技產業專案設計」課程 ([一](https://hackmd.io/s/rJjo0UMa))/([二](https://hackmd.io/c/BkzhRk0hW))/([三](https://hackmd.io/@sysprog/info2021)) (成功大學; 2016-2017, 2021-)
- 「資訊科技產業專案設計」課程 ([一](https://hackmd.io/s/rJjo0UMa))/([二](https://hackmd.io/c/BkzhRk0hW))/([三](https://hackmd.io/@sysprog/info2021)/([四](https://hackmd.io/@sysprog/info2022))/([五](https://hackmd.io/@sysprog/info2023))  (成功大學; 2016-2017, 2021-)
- 「[Linux 核心設計](https://hackmd.io/@sysprog/linux-kernel-internal)」系列講座 (線上)
- 「[進階電腦系統理論與實作](/sysprog/schedule)」課程 (成功大學; 2016-2021)
- 「[手機裡的 ARM 處理器](https://beta.hackfoldr.org/arm)」系列講座 (線上)
- 「[現代處理器設計](https://beta.hackfoldr.org/cpu)」系列講座 (線上)
- 「[你所不知道的 C 語言](https://hackmd.io/@sysprog/c-prog/)」系列講座 (線上)
- 「[作業系統概念和文藝復興](https://beta.hackfoldr.org/oscar)」系列講座 (線上)
- 「[進階嵌入式系統開發與實作](/embedded/schedule)」、「[嵌入式作業系統設計與實作](/embedded/schedule)」課程 (成功大學; 2012-2016)
- 「[自由開源軟體與專案協作](https://sites.google.com/site/fossapc/)」課程 (交通大學; 2014-2017)
- 「[物聯網概論](https://hackmd.io/c/rJzclA2q-)」課程 (交通大學; 2017)
- 「[Android Virtual Machines and Compilers](https://sites.google.com/site/ntuandroid2014/)」課程 (台灣大學; 2014)

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

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

網頁伺服器
=========
* [cserv](https://github.com/sysprog21/cserv): 針對靜態網頁的處理,接近甚至超越 NGINX 的表現,原始程式碼不到四千行

編撰的電子書
==========
* 《[The Linux Kernel Module Programming Guide](https://sysprog21.github.io/lkmpg/)》
* 〈[每位程式開發者都該有的記憶體知識](https://sysprog21.github.io/cpumemory-zhtw/)〉
* 〈[Concurrency Primer](https://github.com/sysprog21/concurrency-primer)〉

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

近期研究
=======
- [Accelerate RISC-V Instruction Set Simulation by Tiered JIT Compilation](https://dl.acm.org/doi/10.1145/3689490.3690399)
- [RON: One-Way Circular Shortest Routing to Achieve Efficient and Bounded-waiting Spinlocks](https://www.usenix.org/conference/osdi23/presentation/lo)
- [Effective System Call Aggregation (ESCA)](https://eecheng87.github.io/ESCA/)
- [A Novel Massive Deployment Solution Based on the Peer-to-Peer Protocol](https://www.mdpi.com/2076-3417/9/2/296)
- [A Fully Decentralized Infrastructure for Subscription-based IoT Data Trading](https://ieeexplore.ieee.org/abstract/document/9284806)

Android 相關
===========
* [Understanding the Dalvik Virtual Machine](https://github.com/jserv/talks/raw/master/assets/dalvik.pdf), Google Technology User Groups Taipei (2012)
* [Implement Checkpointing for Android](/android/checkpoint2012.pdf), Embedded Linux Conference Europe (2012)
* [Hardware Accelerated 2D Rendering for Android](https://github.com/jserv/talks/raw/master/assets/accel-2d-render.pdf), Android Builders Summit (2013)

過往在成大
=========
- 成大夢之大地 BBS 站長
- 成大資工醉資心 BBS 站長
- 成大電腦與網路愛好社 社長 / 副社長

- [成大電腦與網路愛好社](https://www.ccns.io/) 社長 / 副社長

更多資訊
=======
- email: ``jserv.tw @ gmail.com``
- [LinkedIn](https://www.linkedin.com/in/jserv/)
- [twitter](https://twitter.com/jserv)
- [Facebook 粉絲專頁: jserv 與他愉快的小夥伴](https://www.facebook.com/JservFans/) ; [個人 facebook](https://www.facebook.com/microjserv)
- [成大資訊系簡介頁面](http://www.csie.ncku.edu.tw/ncku_csie/depmember/teacherdetail/id/74)
- [Wikipedia 頁面](https://zh.wikipedia.org/wiki/%E9%BB%83%E6%95%AC%E7%BE%A4)
- [成大資訊系簡介頁面](https://www.csie.ncku.edu.tw/zh-hant/members/5)
- [Wikipedia](https://zh.wikipedia.org/wiki/%E9%BB%83%E6%95%AC%E7%BE%A4)
- [2024 年開放原始碼專案協作](https://hackmd.io/@sysprog/ByLJ8DUFT)