July 2025
Intermediate to advanced
492 pages
8h 23m
Japanese
カーネル内部、特にメモリ管理は広範囲にわたり、かつ、複雑です。本書では、カーネルのメモリ管理サブシステムの詳細な挙動については扱いません。カーネルやデバイスドライバ開発者に必要十分な情報を提供します。
本章ではLinuxがメモリをどのように管理するかについて説明します。第一に仮想記憶について説明します。ここではプロセスのユーザ、カーネルそれぞれの仮想アドレス空間について述べます。第二に、カーネルが物理メモリを管理する方法について説明します。これらによって、プロセスおよびシステムの仮想、および物理メモリマップを理解できます。
これらの知識は動的なカーネルメモリの効率的な管理に非常に役立ちます。ここではロード可能カーネルモジュールフレームワークを使用したカーネル、デバイスドライバコードを書くために必要な知識に焦点を当てています。動的メモリ管理については次章で実践的な説明をします。
この章では次の領域を扱います。
「4章 プロセスとスレッド」の「4.2 プロセスの仮想アドレス空間の基本を理解する」で述べたように、プロセス仮想アドレス空間はサンドボックスであり、サンドボックスの外は参照できないという重要な特徴があります。図4-2では、プロセス仮想アドレス空間が仮想アドレス0x0から高位アドレスに広がっていることを示しました。アドレスの最大値はアドレス指定に使用されるビット数に依存します。
Read now
Unlock full access