可以在 32 位 PC 上安装 64 位操作系统吗?

可以在 32 位 PC 上安装 64 位操作系统吗?

我问过这个问题Unix并建议在这里询问。

我在 Linux Facebook 小组上回答了一个问题,有人问是否可以在 64 位 PC 上安装 32 位操作系统。我的回答是:

在 64 位 PC 上安装 32 位操作系统是完全可能的。但在 32 位 PC 上安装 64 位操作系统是不可能的。

好吧,然后有人回复了我的评论:

这并非不可以,但是这样做是错误的。

所以...在 32 位 PC 上安装 64 位操作系统真的可行吗?

答案1

答案其实非常简单。

从技术上讲,您所说的“32 位”PC 是指其 CPU 支持 32 位计算但不支持不是支持64位计算。

例如,具有 Intel CPU 的 PC 支持IA-32但不支持EM64T或者IA-64将是一台“32 位” PC。实际上,您无法在这样的 PC 上安装 64 位操作系统。

答案2

它不会,也不会通过安装程序 - 至少从我尝试过的一小部分操作系统来看。这些都是在 VirtualBox 中完成的,以便于获得漂亮的屏幕截图。

我尝试使用几个常见的 64 位操作系统 - Windows 10(我有 1511 版本)

在此处输入图片描述 启动现有安装会引发非常相似的失败,要求启用 PAE 的处理器。

和 Windows 7

在此处输入图片描述

也许不仅仅是 Windows。

尝试一下 Ubuntu 16.04 livecd

在此处输入图片描述

对于任何纯 64 位操作系统,您肯定无法通过安装磁盘启动的初始阶段。虽然我没有进行过广泛的测试,但将已安装的 64 位系统切换到 32 位主机也可能会以糟糕的结局收场。

答案3

设法安装它(通过一些黑客手段),但它毫无用处,因为它无法启动。所以从技术上讲你可以这样做,但我不建议这样做,因为大多数人都喜欢有一台可以启动的计算机。

如果您的计算机配备的是 32 位操作系统,并且 64 位操作系统运行良好,那么您应该检查您的实际计算机,因为有时 64 位计算机配备的是 32 位操作系统。

答案4

回复您原始评论的人可能遇到过 64 位操作系统(大概是指使用超出 32 位保护模式的可寻址内存或使用 64 位寄存器的操作系统),该操作系统在限制为 32 位内存的处理器上安装和启动,或使用更宽的硬件寄存器。最后一节给出了在 32 位硬件上安装 64 位操作系统的真实示例。中间几节解释了为什么不仅可以安装这样的操作系统,甚至可以使用它(理论上)。

技术细节

64 位操作系统有两个主要特点。第一个特点是可寻址内存超过 4GiB。由于基于 BIOS 的 64 位计算机启动时进入 16 位(又称实)模式,因此可以编写一个操作系统,在某些操作中跳入和跳出长 64 位内存模式(例如,https://www.codeproject.com/articles/45788/the-real-protected-long-mode-assembly-tutorial-for如何退出 64 位模式)。或者,在单任务环境中,让某些程序进入长模式。32 位 DOS 程序通常通过 DOS 扩展器进入和退出 32 位模式才能运行。科学计算平台也可以做类似的事情来获得运行 32 位代码的性能优势(是的!32 位代码可以比 64 位代码更快!)除非必要。

64 位操作系统中可能期望的第二个功能是 64 位寄存器。但可以轻松保持低位模式,并根据需要切换到高位模式。可以有一个包含 16 位、32 位和 64 位寄存器代码的混合程序。要切换寄存器大小,可以使用操作数大小覆盖前缀(操作码前缀 0x66 和 0x67),尽管最后这个细节通常由编译器处理,大多数程序员都看不到。

理论示例

可以编写一个只在某些部分使用 64 位的操作系统。这样的操作系统很容易想象。将 32 位操作系统移植到 64 位操作系统可能首先只将操作系统的某些部分变为 64 位(从而使其成为 64 位操作系统)。假设音频驱动程序是第一个移植的东西;这样的操作系统可以正常运行,直到播放音频文件。我猜这种情况在业余爱好者操作系统领域经常发生,因为有人想对 64 位进行一些实验,或者希望提高操作系统上特定操作集的速度。

在 32 位机器上安装 64 位操作系统的真实示例

64 位和 32 位代码混合的真实示例是 MacOS(版本 ~10.5-10.7)。在 64 位 Intel Mac 上,这些版本的 MacOS 可以启动到 32 位模式内核并运行 64 位应用程序 64 位用户空间操作系统代码。在 32 位机器上,计算机仍可启动。但是,当尝试运行仅 64 位应用程序时,MacOS 不会使计算机崩溃,而是拒绝运行该应用程序。

请注意,32 位和 64 位 Mac 上安装的是同一个磁盘操作系统。您可以在 32 位 Mac 上安装 MacOS,取出磁盘并将其放入 64 位 Mac 中并启动 64 位内核。当然,Hackintosh 场景证明您可以在通用 32 位机器上安装 MacOS。

相关内容