为什么我们不能在 32 位 CPU 上使用 64 位操作系统?

为什么我们不能在 32 位 CPU 上使用 64 位操作系统?

为什么 64 位操作系统无法在 32 位 CPU 上运行,而 32 位操作系统却可以在 64 位 CPU 上运行?

答案1

我假设我们这里讨论的是标准个人电脑。

大多数 64 位处理器(尤其是英特尔和 AMD 的处理器)都具有完整的 32 位指令集以及 64 位扩展,因此它们可以运行 32 位软件。

但是 32 位处理器没有 64 位指令集。许多处理器甚至在 64 位指令集定义之前就已制造,因此它们不可能正确实现它,甚至无法进行模拟。它们只是不理解那种语言。

答案2

64 位 CPU 支持最大 64 位的字长,因此理论上任何 8、16、32 或 64 位操作系统都可以在其上运行。32 位 CPU 不支持 64 位字长,因此只能运行 <=32 位软件(包括 32 位操作系统)。

答案3

为什么你不能在旧的 Atari 上运行 Windows?硬件和处理器不兼容。

x86-64 应该被视为与 x86 完全不同,因为从内核和机器代码的角度来看,它们有很大不同。它们唯一真正共同点是引导代码(从 16 位启动,要达到 64 位,您必须 [通常] 先转到 32 位)和 32 位兼容模式以及常见的 CPU 扩展,如 SSE。除此之外,处理器在如何用机器代码编写应用程序方面确实完全不同。

答案4

64 位操作系统在编程时会考虑 64 位寄存器。32 位 CPU 仅有 32 位寄存器。

除了寄存器之外,还有很多其他原因。

相关内容