mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.2 KiB
56 lines
2.2 KiB
.. SPDX-License-Identifier: GPL-2.0 |
|
|
|
:Original: Documentation/mm/page_table_check.rst |
|
|
|
:翻译: |
|
|
|
司延腾 Yanteng Si <[email protected]> |
|
|
|
:校译: |
|
|
|
|
|
======== |
|
页表检查 |
|
======== |
|
|
|
概述 |
|
==== |
|
|
|
页表检查允许通过确保防止某些类型的内存损坏来强化内核。 |
|
|
|
当新的页面可以从用户空间访问时,页表检查通过将它们的页表项(PTEs PMD等)添加到页表中来执行额外 |
|
的验证。 |
|
|
|
在检测到损坏的情况下,内核会被崩溃。页表检查有一个小的性能和内存开销。因此,它在默认情况下是禁用 |
|
的,但是在额外的加固超过性能成本的系统上,可以选择启用。另外,由于页表检查是同步的,它可以帮助调 |
|
试双映射内存损坏问题,在错误的映射发生时崩溃内核,而不是在内存损坏错误发生后内核崩溃。 |
|
|
|
双重映射检测逻辑 |
|
================ |
|
|
|
+-------------------+-------------------+-------------------+------------------+ |
|
| Current Mapping | New mapping | Permissions | Rule | |
|
+===================+===================+===================+==================+ |
|
| Anonymous | Anonymous | Read | Allow | |
|
+-------------------+-------------------+-------------------+------------------+ |
|
| Anonymous | Anonymous | Read / Write | Prohibit | |
|
+-------------------+-------------------+-------------------+------------------+ |
|
| Anonymous | Named | Any | Prohibit | |
|
+-------------------+-------------------+-------------------+------------------+ |
|
| Named | Anonymous | Any | Prohibit | |
|
+-------------------+-------------------+-------------------+------------------+ |
|
| Named | Named | Any | Allow | |
|
+-------------------+-------------------+-------------------+------------------+ |
|
|
|
启用页表检查 |
|
============ |
|
|
|
用以下方法构建内核: |
|
|
|
- PAGE_TABLE_CHECK=y |
|
注意,它只能在ARCH_SUPPORTS_PAGE_TABLE_CHECK可用的平台上启用。 |
|
|
|
- 使用 "page_table_check=on" 内核参数启动。 |
|
|
|
可以选择用PAGE_TABLE_CHECK_ENFORCED来构建内核,以便在没有额外的内核参数的情况下获得页表 |
|
支持。
|
|
|