我知道:
- 官方支持的CPU列表
- TPM 2.0 的要求
- 安全启动的要求
我相信很多人都知道,可以绕过上述要求,让 Windows 11 在官方“不兼容”的硬件上运行。
较新的处理器的指令集中是否包含附加指令?
但是对于该支持列表中的 CPU,它们的指令集中是否有可供微软开发人员在未来的 Windows 11 版本中使用的附加指令?
我想知道此类指令是否会出现在 Windows 某些部分的低级汇编代码中,或者由所使用的 C/C++ 编译器在软件的其他地方以机器语言生成。如果是这样的话,那么一旦发布包含这些处理器指令代码的更新,延长运行 Windows 11 的非兼容硬件使用寿命*的前景最终将突然终结:没有这些指令的处理器将无法识别它们,软件可能会出现故障、不可靠或不安全。
如果这些新处理器不引入新的处理器指令,那么现有“不兼容”硬件的前景就更加乐观。那么挑战可能仍然是如何消除对硬件外围设备(如 TPM 2.0)以及安装环境(如 SecureBoot)的依赖。
x86-64 永远是 x86-64?
除了 x86 32 位 amd x84-64 或 amd64 64 位指令集(后者仅受 Windows 11 支持)之间的区别之外,我不知道新处理器仅支持任何其他变体。
虚拟化可以拯救你吗?
如果兼容处理器中存在此类附加指令(将来可能会在 Windows 11 中使用),则“不兼容”硬件的另一种选择可能是虚拟化层(可能由该行业的知名第三方供应商提供),该虚拟化层会动态地将新指令转换为旧 CPU 可以支持的内容,而旧 CPU 支持的大多数其他指令只是通过,因此总体而言,性能与完全原生的性能相似。我们在几种情况下看到了这种虚拟化和转换:在 ARM 上的 Windows 上模拟的 x86-64 应用程序,在 M1 上运行的 Apple Rosetta 以支持 Apple Intel 编译的应用程序。
用户体验 - 使虚拟化无缝衔接,就像机器从启动时就拥有了更新的 CPU
我认为,对于此类虚拟化的制造商来说,确保 Windows 11 能够在较旧的硬件上运行的挑战可能是用户体验。理想情况下,它应该在启动后出现,以便 Windows 11 从虚拟化启动时运行。而不是启动到 Windows 10,然后运行虚拟化应用程序(如 VirtualBox、VMware 或 Parallels 来启动 Windows 11 映像)。这是额外的步骤,笨重且性能可能不高。所以在我看来,虚拟机管理程序软件可能是在较旧的硬件上启动时从一开始就运行 Windows 11 的方法。也欢迎大家在这里提出想法。
当然是 Linux
*在任何人提到它之前,我很清楚 Linux 和各种发行版可能仍会在这种“较旧”的“不兼容”硬件上运行。我知道,因为我每天都使用 Linux,以及 Windows 和 macOS。抱歉,我在这里不是为了讨论哪个平台比另一个平台更好。
答案1
为了回答我自己的问题并根据评论贡献(谢谢),我倾向于得出结论:
回答
目前,答案似乎介于以下两个之间:
否。Windows 11 支持的 CPU 列表中没有特定指令,这些指令由不在该列表中的 Windows 11 可执行文件使用
不。尚不清楚Windows 11 支持的 CPU 列表中有一些特定指令,这些指令不在该列表中,但 Windows 11 可执行文件会使用这些指令
不是,但应用专门针对 Windows 11 的程序可能会使用这些受支持的 CPU 中的指令,因此无法在装有不受支持的处理器的 Windows 11 机器上运行。如果供应商也支持,则解决方法是不使用 Windows 商店程序,而是使用其独立下载的等效程序,并使用兼容模式功能在早期版本的 Windows 中运行该应用程序。此处假设的结果是运行备用可执行文件和/或代码选择中的条件与所选早期版本的 Windows 上运行的所有 CPU 兼容的代码。
我当然希望它是“1”。假设x86-64 的定义仍然成立,并且 Windows 11 在相同定义的 x86-64 硬件上运行。
但这可能会引出一个更尖锐的问题:Windows 11 支持的 CPU 的具体标准是什么?如果不是 x86-64,那是什么?(我可能会单独提出这个问题)。
进一步可能的问题包括:Windows 11 如何检测支持的 CPU 型号?