kognise 用電腦做過很多事,但始終帶著一個缺口:執行一個程式時,究竟發生了什麼?他掌握了大部分低階環節,卻無法把它們串起來——程式真的直接在 CPU 上執行嗎?系統呼叫如何運作?多個程式如何同時執行?大學之外沒有全面性的系統資源,於是他翻遍品質參差、有時甚至互相矛盾的來源;經過幾週、寫了將近四十頁筆記,他在 17 歲時寫下了他希望當時就能讀到的文章。

標準做法是用教科書層層堆疊抽象:取指執行、行程、虛擬記憶體、系統呼叫。cpu.land 則反其道而行:它在 Linux x86-64 上把一個真實動作從頭到尾走一遍,之所以選擇 Linux,是因為核心是開放原始碼,「只要讀原始碼就超級容易研究」。讀者被要求牢記一個觀念:「看似簡單的一切,其實就是那麼簡單。」第 3 章沿著 execve 追進 do_execveat_common 與 binfmt 處理常式,說明 shebang 是核心功能而非 shell 功能,並用 git blame 解釋 BINPRM_BUF_SIZE 為何從 128 位元組加倍到 256 位元組。

形式與內容同樣重要。各章發布於 cpu.land,附有「Edit on GitHub」連結,位於 Hack Club 組織的儲存庫之下,每章結尾都提出下一章要回答的問題。第 3 章開頭是一句挑戰:「讀完第 3 章,我保證你會學到新東西。」行文保持俏皮——「電腦真是太酷了!」——而程式碼片段始終真實。

發布奏效了。Hacker News 在 2023 年 8 月 9 日給這篇文章 1,337 分與 307 則留言。二十幾歲後段的留言者說他們有一半不知道,一名大學生說他向朋友推薦這份指南,因為它涵蓋了作業系統課程的主題。到 2026 年 9 月的快照,該儲存庫已有 5.6k 顆星、193 次分支與 103 次提交,全文仍位於 cpu.land。

跟著一個真實程式走過實際的核心原始碼,拒絕那些遮蔽路徑的抽象

沿著真實核心原始碼追蹤一條真實路徑,讓每項主張都可查證:讀者能打開指南所引用的相同檔案,因此信任是贏得的,而非宣稱的。

從讀者真正的缺口出發——「我執行這個時會發生什麼?」——讓指南不設先備條件,在路徑需要時才引入每個術語。

以曾經有這個缺口的人、一名 17 歲自學程式設計者的身分書寫,讓行文免於知識詛咒;有經驗的留言者稱這種用心與關注十分罕見。

明確的挑戰——讀第 3 章,你會學到新東西——給了抱持懷疑的專家讀者一個可檢驗的標準,而討論串也證實了這一點。

在 Hack Club 之下發布,搭配開放儲存庫與編輯連結,把一篇文章變成持續維護、不斷累積的資產:三年後有 103 次提交與 5.6k 顆星。

當一個領域的知識零散且品質不均時,寫下你希望當時就存在的連續導覽:把一條真實路徑從頭到尾追一遍,引用實際程式碼,讓可驗證性承擔信任

這份指南於 2023 年 8 月 9 日在 Hacker News 發布,最高達到 1,337 分與 307 則留言,讀者向大學朋友推薦,並把它與作業系統課程連結起來。該儲存庫在 Hack Club 組織之下保持開放並持續累積成果——2026 年 9 月快照中有 193 次分支、103 次提交與 5.6k 顆星——全文仍可在 cpu.land 上閱讀,每一頁仍提供「Edit on GitHub」連結。

追溯依據

參考來源

  1. I'm 17 and wrote this guide on how CPUs run programs | Hacker News Hacker News · news.ycombinator.com ·
  2. hackclub/putting-the-you-in-cpu — Putting the "You" in CPU (GitHub) GitHub · github.com
  3. How to Run a Program — Chapter 3 of Putting the "You" in CPU cpu.land · cpu.land