golang/go
6 articles
前提知識
- ›Go の基本的な文法とツールへの慣れ
- ›コンパイラツールチェーンが何であるかの理解
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 ネットワークポーラー、ランタイム同期プリミティブ、そしてコンパイラディレクティブ