
ファイルシステムの仕組み 徹底解説 - inode・ジャーナリング・ページキャッシュ
約63分
ファイルを開いて書き込んで閉じるまでにカーネルとディスクで何が起きているのかを、VFS・inode・ディレクトリエントリ・エクステント・ページキャッシュ・ext4のジャーナリング・CoWファイルシステムまで順に追います。man7.orgとkernel.orgの一次情報に加え、実機のext4とmacOSで測った出力例を添えて解説します。

ファイルを開いて書き込んで閉じるまでにカーネルとディスクで何が起きているのかを、VFS・inode・ディレクトリエントリ・エクステント・ページキャッシュ・ext4のジャーナリング・CoWファイルシステムまで順に追います。man7.orgとkernel.orgの一次情報に加え、実機のext4とmacOSで測った出力例を添えて解説します。

glibc malloc(ptmalloc2)のチャンク構造・bin・tcache・アリーナ・mmap閾値から、内部/外部の断片化、jemalloc・tcmalloc・mimallocの設計思想、カーネルのSLUB、massifやheaptrackでの計測方法まで、glibcソースなどの一次情報と手元の実測値をもとに解説します。

CPUキャッシュとメモリ階層の仕組みを、キャッシュライン・参照の局所性・マッピング方式・書き込みポリシーから、配列の走査順やAoS/SoA、false sharing、perfやInstrumentsでの計測まで、一次情報と実測値をもとに解説します。

仮想メモリとページングの仕組みを、アドレス変換・ページテーブル・TLB・ページフォルト・スワップ・コピーオンライトまで図解でやさしく解説します。

ハッシュテーブル(連想配列・ハッシュマップ)が平均O(1)で読み書きできる仕組みを、ハッシュ関数とバケット、衝突解決(チェイン法・オープンアドレス法)、負荷率とリハッシュの順で整理します。Python・Java・Go・C++・Rustの実装の違いや、ハッシュ衝突を悪用したDoSとSipHashによる緩和まで、公式ドキュメントを一次ソースにまとめます。