题 为什么系统默认在BIOS设置中禁用虚拟化?


我还没有看到一个系统,其默认配置支持MMU和定向I / O虚拟化。通常这需要重新启动并进入BIOS以启用它(如果需要),例如,对VM的64位支持。

如果打开并且您没有使用虚拟化,是否会出现某种实质性的处理器开销?如果没有,那么它默认关闭的原因是什么?


73
2018-05-17 13:16






答案:


有一些概念验证的rootkit像Blue Pill一样,可以拥有一个VT开启的系统。在这一发现之后,大多数供应商开始将其禁用VT的设备作为一般安全预防措施运送。


48
2018-05-17 13:27



+1在桌面/笔记本电脑上使用VT的人是个例外。该机器易受病毒感染是常规。 - Chris S
我突然想起了我构建的这个闪亮的新功能开发机器,它运行了一堆启用了硬件虚拟化的虚拟机。我不 需要 虚拟化,但我认为从长远来看,它可以节省我的时间,而不必每隔几个月就重新进行一次。这有多大问题? - Paperjam
实际上不存在(截至本评论)。 Blue Pill是一个概念证明。在野外,我没有意识到这样的事情。 - MDMarra
以下是Microsoft对安全问题的评估,包括在客户端角色系统上默认关闭VT的建议: msdn.microsoft.com/en-us/windows/hardware/gg463498.aspx - Jpsy
微软的论文已不再在他们的网站上提供,但你可以在网站上阅读 互联网档案 如果你想。 - Josh Kelley


我们购买的所有刀片都默认启用虚拟化,因为我猜我们的供应商做出了商业决定,以节省这么多支持电话。

由于处理器命中,它没有被禁用,但取决于它的用途,默认情况下它可能关闭的原因是启用这些功能会影响外设访问。


5
2018-05-17 13:24



这会影响哪些外设访问?我以前从未听说过。 - MDMarra
当你提到外设访问时,你在谈论VT-d吗? - Zoredache
不,这是MMU ......我记得最近有人在喋喋不休。与Rasberry Pi有关。 - Sirch


请注意,根据这个其他线程,它似乎也对性能有一些影响 https://superuser.com/questions/545101/why-does-hp-recommend-that-i-keep-hardware-virtualization-off

这似乎与我相关,因为减少的指令集更有效。我根本不会想到更改BIOS选项会直接影响到这一点。

我不知道影响是否显着,但考虑到这个和安全潜在的缺陷,默认情况下禁用这种很少使用的功能看起来对我来说是个不错的选择。


2
2017-07-22 09:52



链接答案的效率角度毫无意义。指令高速缓存保存软件程序的指令。如果程序不使用虚拟化指令,则对该缓存没有影响。此外,没有报告说有一个单独的执行单元可以处理虚拟化,也没有可以绕过的指令解码器的一部分,所以两种方式都不应存在效率差异。 - Nimrod


另一个原因是大多数用户内核函数(如gettimeofday)都在VDSO中移动。

有时在虚拟化下,无法启用此快速路径。

所以系统不能:

获得这些功能的快速执行

避免昂贵的从用户域切换到内核并返回


1
2017-08-27 12:36



bert-hubert.blogspot.com/2017/03/... - Massimo