4.4. ユーザー空間用のメモリー保護キー (別名 PKU または PKEYS)
メモリー保護キーは、ページベースの保護を強化するメカニズムを提供しますが、アプリケーションが保護ドメインを変更した時にページテーブルを修正する必要はありません。これは、各ページテーブルエントリーで以前無視されていた 4 ビットを保護キーに割り当て、可能なキーを 16 個提供することで有効となります。
メモリー保護キーは、いくつかの Intel CPU チップセットのハードウェア機能です。プロセッサーがこの機能をサポートしているかどうかは、pku
in /proc/cpuinfo
の存在を確認します。
$ grep pku /proc/cpuinfo
この機能をサポートするために、CPU は各キーに対して 2 つの別々のビット (Access Disable と Write Disable) を持つ、ユーザーがアクセス可能な新しいレジスター (PKRU) を提供します。この新しいレジスターの読み取りおよび書き込み用の新しい命令が 2 つ (RDPKRU と WRPKRU) 存在します。
プログラミングの実例を含む詳しい情報は、kernel-doc
パッケージが提供する /usr/share/doc/kernel-doc-*/Documentation/x86/protection-keys.txt
を参照してください。