此设置最近出现在 Windows 10 家庭版中,作为创意者更新 (1709) 的一部分。
然而,除了一些粗略的信息此内部预览博客和此帮助页面,我找不到任何关于此设置的效果的信息实际上是。
可能对性能产生哪些影响?
可能产生的兼容性影响有哪些?
这能防范 Meltdown 或 Spectre 之类的漏洞吗?
这可能是我的 Google 能力太差,但我能找到的只有那个博客和帮助页面。他们关于内存完整性设置的全部说明如下:
核心隔离通过将计算机进程与操作系统和设备隔离,提供针对恶意软件和其他攻击的额外保护。选择核心隔离详细信息链接可更改核心隔离功能的设置。
内存完整性是核心隔离的一项功能。通过将内存完整性设置设为开启,可以帮助防止恶意代码在发生攻击时访问高安全性进程。
有了内存完整性保护,内核内存页面只有在通过安全运行环境内的代码完整性检查后才可执行,并且可执行页面本身永远不可写
某些驱动程序可能仍然不兼容。这可能会导致设备或软件出现故障
关于这个主题还有很多其他文章,但它们都只是说如何启用该功能,而不是它的作用。
答案1
我自己也不太清楚它到底是做什么的,而且我实际上在 IT 行业工作,所以不要因为找不到太多信息而感到难过,它只是不存在而已。
根据我所知,我相信它实际上做了几件事,即:
- 如果系统具有有效的硬件虚拟化功能(AMD 上的 SVM、Intel 上的 VT-x 或 ARM 上的某些我不记得名字的功能),它会利用它们为每个进程提供更好的虚拟内存区域隔离。
- 如果系统具有硬件级内存加密支持(AMD 上的 SME 或 Intel 上的 SGX),它会利用这一点为每个虚拟内存上下文(通常但并不总是与进程相同)提供自己真正(理论上)的私有内存。
回答您的每一个具体问题:
- 这两个部分的性能影响通常都很低,这是在硬件中执行此操作的优势之一。但它们确实有不同类型的影响。加密部分主要影响原始内存带宽(尽管在我自己对 Linux 上的相同技术进行的测试中,影响并不大,我有时会计算周期来确定性能差异)。但是,虚拟化部分的大部分影响是在上下文切换中(例如,调用各种 WIndows API 或访问硬件)。
- 兼容性方面,除非您使用的软件会做一些非常愚蠢的事情,并且您的 CPU 相对较新,否则您不会看到很多问题。如果您的 CPU 不够新,它将不支持嵌套虚拟化,并且您将无法在系统上正确运行大多数类型的虚拟机(官方说法是,Windows 10 不支持任何 x86 CPU,因为这些 CPU 太旧以至于不会出现问题,但它仍可在这样的系统上运行)。
- 至于它可以防范什么,很难说,除非对其工作原理有任何具体的解释。但我有点怀疑它是否能提供任何针对缓冲区溢出漏洞(如 Heartbleed)的切实保护,因为这些漏洞只能在编程语言中得到妥善保护,而不是在操作系统中。