--- title: jserv (黃敬群) categories: User ... 簡介 ==== - 成功大學資訊工程系 92 級,[蘇文鈺教授](https://www.csie.ncku.edu.tw/zh-hant/members/13)的導生 - 台灣苗栗人,任教於國立成功大學資訊工程系 - [成功大學分散式帳本實驗室](https://dlt.csie.ncku.edu.tw/) - 英文名: Ching-Chun (Jim) Huang / 花名: 宅色夫 - Google:// [jserv](https://www.google.com.tw/?q=jserv) 工作經歷 ======= - [BiiLabs Co., Ltd.](https://biilabs.io/) - [鴻海科技集團](https://www.honhai.com/) - [工業技術研究院](https://www.itri.org.tw/) - [台達電子](https://www.deltaww.com/) - [聯發科技](https://www.mediatek.com/) - [Linaro](https://www.linaro.org/) - [晶心科技](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](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 核心設計/實作](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)/([四](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](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/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) - 考慮到科技文化延續議題,我們尊重台灣資訊科技前輩的篳路藍縷、理解詞彙背後的考量因素,和使用精準詞彙,其實後者也是工程素養的一環,只是很多人忽略 - 了解詞源、語境,謹慎選擇用詞,是一種必要的態度 近期研究 ======= - [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) - [成大資訊系簡介頁面](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)