![64位软件可以在32位操作系统上运行吗?](https://linux22.com/image/1312969/64%E4%BD%8D%E8%BD%AF%E4%BB%B6%E5%8F%AF%E4%BB%A5%E5%9C%A832%E4%BD%8D%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%B8%8A%E8%BF%90%E8%A1%8C%E5%90%97%EF%BC%9F.png)
我有一台 64 位计算机,其中安装了 Windows 7 32 位和 Ubuntu 32 位,作为双启动设置。我可以在这些 32 位操作系统上运行 64 位软件吗?或者它们是限制底层硬件真正功能的“瓶颈”?
答案1
从理论上来说我认为不是。
但一种解决方法是在托管于 32 位操作系统的 64 位虚拟机中运行该软件,因为您提到您的机器本身是 64 位的。
答案2
操作系统是您与底层硬件的接口。现代操作系统中的应用程序无法直接访问硬件,只能通过内核的系统调用来使用它。
因此,如果您的内核(操作系统)仅支持 32 位操作,则使用 64 位的应用程序将无法运行。
至于虚拟机,你的硬件不必是 64 位的,就可以在 32 位操作系统中模拟 64 位环境。下面是一个例子运行 32 位 Linux 内核的 8 位 AVR 微控制器使用模拟器。无论如何,模拟都会花费大量时间,因此该芯片的约 24Mhz 会降低到千赫兹范围内的某个值(实际上是 10kHz)。
所以,无论在什么硬件上,在 32 位操作系统(在虚拟机内)中运行 64 位软件都会造成瓶颈。如果您有硬件,最好安装 64 位操作系统。