これ記事によると、Linuxは3段階のページテーブルを使用しています。
しかし本ではプロのLinuxカーネルアーキテクチャ3.3.1章では、Linuxが5レベルのページテーブルを使用していると述べています。
返品、これこの記事では、「一方、4.11-rc2の5段階のページテーブルのマージ(マージウィンドウの外側)はほとんど興味がありませんでした」と述べています。
私の質問は、カーネルが実際にいくつかのページテーブルレベルを使用していることです。履歴が変更された場合、どのバージョンですか?
答え1
問題は、これがカーネルバージョンとプロセッサアーキテクチャによって異なることです(ハードウェアで指定された数のページテーブルをサポートする必要があるため)。 PAEなしの32ビットx86では2レベルです。 PAEを含む32ビットx86には3つのレベルがあります。 64ビットx86では通常4レベルですが、5レベルのサポートは最近マージされました(ただし、実際には最高級のIntelサーバープロセッサのみがこの機能をサポートし、その後は非常に最近のプロセッサのみをサポートします)。 64ビットSPARCでは最初から5レベルだったようですが、64ビットs390とPPCも5レベルを使用しているようですがよくわかりません。
答え2
Linuxカーネルコードをチェックし、Austinの答えと異なるものを得ました。
アーチ/x86/Kconfig
config PGTABLE_LEVELS
int
default 5 if X86_5LEVEL
default 4 if X86_64
default 3 if X86_PAE
default 2