OSの設計と実装に関して勉強した際のメモ。テキストにはLinuxカーネル2.6解読室を主に使用。Operating Systems Design and Implementationも時々読んだ。本稿は特にプロセスやメモリに関連するメモである。前提として,タネンバアム先生のモダンオペレーティングシステムやパタヘネ関係の知識が必要。 仮想メモリ UNIX系OSでは,各プロセスに実際のメモリ(物理メモリ)を仮想化した仮想メモリを提供する。物理メモリがシステムで唯一の存在であるのに対し,仮想メモリはプロセス分だけ存在する。例えば伝統的な32ビットアーキテクチャ用のUNIX系OSでは,メモリアドレスが32ビット長であり,プロセスは4GBのメモリ空間(0から232-1の範囲のアドレス)を利用できる。しかし,実際にあるプロセスのアドレス0x00402310と,別のプロセスのアドレス0x00402310