Bru*_*uce 3 cpu operating-systems 64-bit 32-bit
为什么 64 位操作系统不能在 32 位 CPU 上运行,而 32 位操作系统可以在 64 位 CPU 上运行?
小智 19
我假设我们在这里谈论的是标准 PC。
大多数 64 位处理器——尤其是来自 Intel 和 AMD 的处理器——具有完整的 32 位指令集以及 64 位扩展,因此它们可以运行 32 位软件。
32 位处理器虽然没有 64 位指令集。许多甚至在定义 64 位指令集之前就已经制作好了,所以他们不可能正确地实现它,甚至无法模拟。他们只是不懂那种语言。
64 位 CPU 支持最多 64 位的任何字长,因此理论上,任何 8、16、32 或 64 位操作系统都可以在它们上运行。32 位 CPU 不支持 64 位字长,因此只能在其上运行 <= 32 位软件(包括 32 位操作系统)。
为什么不能在旧的 Atari 上运行 Windows?不兼容的硬件和处理器。
x86-64 应该被认为与 x86 完全不同,因为它从内核和机器代码的角度来看有很大的不同。它们唯一真正共有的是引导代码(从 16 位启动,要达到 64 位,你必须[通常] 首先转到 32 位)和 32 位兼容模式和常见的 CPU 扩展,如 SSE。除此之外,处理器在机器代码中如何创建应用程序方面确实完全不同。