解決策
kogniseはコンピュータで多くのことをしてきたが、常に一つのギャップを抱えていた。プログラムを実行すると正確には何が起こるのか。低レベルの知識の大半は持っていたものの、それらをつなげられずにいた——プログラムは本当にCPU上で直接動くのか、システムコールはどう機能するのか、なぜ多数のプログラムが同時に動くのか。大学の外には包括的なシステム解説書がなかったため、彼は品質にばらつきがあり時に矛盾する情報源をふるいにかけた。数週間とほぼ40ページのノートを経て、17歳の彼は自分が欲しかった記事を書いた。
標準的なアプローチは、抽象化を積み重ねる教科書だ。フェッチ・エグゼキュート、プロセス、仮想メモリ、システムコール。cpu.landはそれを逆転させる。Linux x86-64上で一つの実際の動作を端から端までたどる。カーネルがオープンソースで「ソースコードを読むだけで調査するのが超簡単」だからこそ選ばれた。読者は一つの考えを刻み込むよう促される。「単純に見えるものは、実は本当にそのまま単純なのだ」。第3章ではexecveをdo_execveat_commonとbinfmtハンドラを通して追跡し、シバンがシェルではなくカーネルの機能であることを示し、git blameを使ってBINPRM_BUF_SIZEがなぜ128バイトから256バイトに倍増したのかを説明する。
形式は内容と同じだけの働きをする。各章はcpu.landで公開され、「Edit on GitHub」リンクが付き、Hack Club組織のリポジトリの下にある。そして各章は次の章が答える問いで締めくくられる。第3章は挑戦の言葉で始まる。「第3章を読めば、必ず何か新しいことを学べると保証する」。文章は遊び心を保ち——「コンピュータって本当にクール!」——コードスニペットは本物のまま。
ローンチは成功した。Hacker Newsは2023年8月9日にこの投稿に1,337ポイントと307件のコメントを与えた。20代後半のコメンターたちはその半分も知らなかったと述べ、ある大学生はオペレーティングシステムの講義のトピックを網羅しているとして友人に勧めていると述べた。2026年9月のスナップショット時点で、リポジトリは5.6kスター、193フォーク、103コミットを保持し、全文は今もcpu.landにある。
達成したこと
一つの実プログラムを実際のカーネルソースを通して追跡し、その道筋を隠す抽象化を拒否した
うまくいった理由
実際のカーネルソースを通して一つの実経路を追跡することで、すべての主張が検証可能になる。読者はガイドが引用するのと同じファイルを開けるため、信頼は主張されるのではなく獲得される。
読者の実際のギャップ——「これを実行すると何が起こるのか?」——から始めることで、ガイドは前提知識なしに保たれ、各用語は経路が必要とする瞬間に導入される。
そのギャップを抱えていた本人、17歳の独学のコーダーとして書くことで、知識の呪いが文章から排除された。経験豊富なコメンターたちはその丁寧さと注意深さを稀だと評した。
明示的な挑戦——第3章を読めば何か新しいことを学べる——は、懐疑的な専門家の読者に検証可能な基準を与え、スレッドがそれを裏付けた。
Hack Clubの下でオープンなリポジトリと編集リンク付きで公開したことで、一つのエッセイが維持される資産となり、複利的に積み上がり続けた。3年後で103コミットと5.6kスター。
応用できること
ある分野の知識が断片化し不均等なときは、自分が欲しかった連続的なウォークスルーを書くこと。一つの実経路を端から端まで追跡し、実際のコードを引用し、検証可能性に信頼を担わせる
その後
このガイドの2023年8月9日のHacker Newsでのローンチは1,337ポイントと307件のコメントでピークに達し、読者は大学の友人に勧め、オペレーティングシステムの講義と関連づけた。リポジトリはHack Club組織の下でオープンのまま作業を蓄積し続けた——2026年9月のスナップショットで193フォーク、103コミット、5.6kスター——一方、全文はcpu.landで公開され続け、各ページは今も「Edit on GitHub」リンクを提供している。
出典をたどる
出典
- I'm 17 and wrote this guide on how CPUs run programs | Hacker News Hacker News · news.ycombinator.com ·
- hackclub/putting-the-you-in-cpu — Putting the "You" in CPU (GitHub) GitHub · github.com
- How to Run a Program — Chapter 3 of Putting the "You" in CPU cpu.land · cpu.land