Read OSS

golang/go

6 articles

前提知識

01

Go リポジトリを読み解く:ディレクトリ構成、ブートストラップ、ビルドパイプライン

golang/go リポジトリの入門ガイド — ディレクトリ構成、セルフホスティングのブートストラッププロセス、ツールチェーンのビルドパイプラインを解説します

02

`go` コマンドの内側:サブコマンド、モジュールロード、ビルドオーケストレーション

go コマンドのサブコマンドディスパッチ、MVS によるモジュール解決、並列ビルドアクショングラフを深掘りする

03

Goコンパイラのパイプライン:ソースコードからSSA、機械語へ

cmd/compile におけるパース、型チェック、エスケープ解析、SSA最適化パイプラインを通じてGoソースコードを追う

04

Go ランタイムの内部構造:プロセス起動と G-M-P スケジューラ

最初のアセンブリ命令から rt0_go を経て G-M-P スケジューラへ:goroutine の状態遷移、ワークスティーリング、プリエンプション

05

Goのメモリ管理:アロケータ階層と並行ガベージコレクタ

tcmalloc にインスパイアされたアロケータ(mcache → mcentral → mheap)と、ペーサーチューニングを備えた並行三色マーク&スイープ GC

06

チャネル、ネットワークポーラー、そしてランタイムを貫く横断的な仕組み

チャネルの内部実装(hchan/sudog)、epoll/kqueue ネットワークポーラー、ランタイム同期プリミティブ、そしてコンパイラディレクティブ