Skip to main content
logo
Arthur

Arthur

Software Engineer | Full-stack dev | Systems thinker | Taiwan 🇹🇼

Software engineer specializing in frontend infrastructure and modern web architecture. I'm drawn to the layers most engineers stop at — compilers, bundler internals, networking primitives, and the Unix toolchain.

Learn more about me
19 min read

Unix 把建立新 process 拆成 fork()(複製)和 execve()(替換)兩步, 中間留下一個「間隙」讓你自由操作子 process 的 fd table。 Shell 的 pipe、redirection、甚至 sudo 的權限切換,全靠這個間隙實現。 本文拆解 fork-exec 分離設計的組合性優勢、fd 繼承機制的實作細節、 與 Windows CreateProcess 的 trade-off 比較, 以及 IPC 路徑的真實效能成本——「繞好多路」到底是認知錯覺還是實際瓶頸。

20 min read

在終端按下一個鍵,程式就收到了輸入。這個看似理所當然的過程, 實際上穿越了六個架構層級、三種運行空間,端到端延遲不到 20ms。 本文從第一性原理拆解完整事件鏈路:硬體中斷、kernel evdev、 compositor 事件分發、terminal 的協議翻譯、PTY/TTY 的 line discipline 機制, 到最終應用程式的 stdin 讀取。深入理解 Unix「一切皆檔案」哲學的實際運作方式。

14 min read

同一台主機上的兩個進程要交換資料,為什麼不直接走 TCP loopback,而要用一個 .sock 檔案? 本文從 .sock 檔案的本質出發,拆解 Unix Domain Socket 的 fd 建立流程、 Kernel 根據 socket 族(AF_INET vs AF_UNIX)的內部路由機制、 VFS 與 IPC(Socket)抽象層如何讓同一套 read/write API 走完全不同的資料路徑, 並以 Node.js net 模組實作 TCP 與 Unix socket 的對比範例。