カーネル ソースの引用:「カーネル ポインターには冗長な情報があるため、同じ戻り値でエラー コードまたは [...] ポインターを返すことができるスキームを使用できます。 」
値 -1..-4095 (32 ビット モードでは 0xfffff000–0xffffffff にマッピング) は、カーネル レベルの errno 値用に予約されています。 0xffffe000 ~ 0xffffefff の残りの 4KB は、vsyscall vdso マジック ページ用に解放されますが、vdso ページは多くの月から再配置可能であるため、この領域は潜在的に未実装のままです。つまり、[stack]
/proc/*/maps
のエントリ [vdso] が 0xffffe000 または他の場所にマップされているかどうかに関係なく、常に 0xffffdfff で終了します。
一部のカーネル メモリは、アプリケーションのユーザー空間のアドレス空間内にあり、PROT_NONE
で一種の mmap 化されている場合があります。 .その後、一部のアドレス空間が使用されますが、プログラムからアクセスすることはできません (したがって、破損の可能性はありません)。