32 位操作系统上配备 64 位 CPU 的 64 位应用程序

32 位操作系统上配备 64 位 CPU 的 64 位应用程序

这个问题有点愚蠢,但我想知道。我想在虚拟机中安装 32 位 Windows,因为它占用的空间更少,运行速度更快。在运行 32 位 Windows 和 64 位 CPU 的虚拟机中运行 64 位应用程序是否可行(我的电脑有 64 位 CPU)?

谢谢

答案1

不,这不会发生。要运行 64 位应用程序,您需要 64 位操作系统。这是因为 32 位和 64 位世界基本上是分开的。32 位内核无法运行 64 位应用程序。CPU 处于不同的模式

如果我们不局限于 Windows,还有更多奇特的组合。在 Linux 上,您可以轻松地在 64 位内核上运行全 32 位用户空间的系统。即使内核是 64 位的,您仍然无法运行(大多数)64 位应用程序,因为它们需要 64 位库,而这些库并不在那里。

不过,您可以使用不同的解决方案:如果 CPU 可以,与主机上的 32 位 Windows 操作系统兼容的 VirtualBox 和 VMware Workstation(或 Player)版本仍可以运行 64 位客户机。这可以通过硬件虚拟化(VT-x 或 AMD-V)来实现。

另外,请重新考虑:当然,64 位软件中的指针大小是原来的两倍。但是,软件不仅仅由指针组成。现代 CPU 上的 64 位模式可以解锁更强大的指令和更宽的寄存器。确实有一些开销,但除非您的物理内存严重不足(4 GiB 或更少),否则您不应该使用 32 位操作系统!

此外,以虚拟机客户机身份运行 32 位操作系统可以让你没有什么。相反,同时运行两个操作系统会浪费大量资源。

答案2

简短的回答:不。

长答案:为 64 位架构编译的应用程序无法在 32 位架构上运行。使用的指令完全不同,因为 32 位使用 32 位来分配内存地址,这限制了大约 3.5 GB,而 64 位则高得多。

即使您的处理器是 64 位的,一切也必须是 64 位的才能正常工作。这意味着,处理器、操作系统和程序也必须针对 64 位进行编译。

如果您拥有该应用程序的 32 位版本,则您可以安装 32 位操作系统并使用该应用程序的 32 位版本。

相关内容