HackerNews

Linuxにおけるプロセスメモリのフレンドリーなツアー

A Friendly Tour of Process Memory on Linux

https://www.0xkato.xyz/linux-process-memory/


この記事では、Linux上でのプロセスメモリの基本的な構造と動作について解説しています。プログラムが実行されると、Linuxは仮想メモリをページ単位で動的に構築し、見かけ上の連続したメモリ空間を提供します。プロセスはそのアドレス空間を持ち、ページテーブルを使用して仮想アドレスを物理アドレスに変換します。メモリが不足している場合、システムは未使用のページをディスクに移動させて空き容量を確保します。また、/procファイルシステムを通じてプロセスやカーネルの状態を確認できる仕組みも紹介されています。アドレス空間は仮想メモリ領域(VMA)として管理され、mmapやmprotect、munmapといったシステムコールを用いて変更が行われることが説明されています。特に、x86‑64アーキテクチャにおけるメモリ管理の詳細が詳述され、Meltdownからの防衛など現代のカーネルの仕組みも触れられています。