为什么 OS X 应用程序依赖于处理器,而 Windows 程序却不依赖处理器?

为什么 OS X 应用程序依赖于处理器,而 Windows 程序却不依赖处理器?

如果需要支持两种处理器,则需要为 PowerPC 和 Intel 构建 OS X 应用程序。

然而,我不认为 Windows 程序存在这种情况。为什么?

答案1

在消费系统上,Windows 仅在其 x86 处理器变体上可用已有十多年(Windows 95 和 Windows 2000 仅适用于 x86 系统,不确定早期版本是否如此)。但有些 Windows 版本可以在安腾架构,微软宣布Windows 8将支持ARM处理器。

但所有 Windows 桌面系统都有相同的基本 x86 CPU 架构。


直到 2006 年初,Mac OS X 都是 PowerPC 处理器的专属,Apple 在其 Mac 系统中使用了这种处理器。随后,Apple 在接下来的一年中逐渐将其计算机产品线改为使用 Intel x86 处理器。Mac OS X 10.4(2005 年初为 PowerPC 发布,2006 年初为 Intel 发布)是第一个同时适用于 PowerPC 和 Intel/x86 版本的版本。

他们提供了一个兼容层,罗塞塔允许在(较新的)Intel 处理器上执行(较旧的)PowerPC 程序,并且许多(较简单的)程序可以通过使用 Apple 的开发工具重新编译而同时适用于这两种处理器。使用其他开发工具(如 Code Warrior)或一些大型软件产品(如 Adob​​e)创建的其他程序需要一段时间才能在 Intel 系统上原生使用。

Mac OS X 10.6(2009 年末)是第一个放弃 PowerPC 支持的版本。Mac OS X 10.7(2011 年中)放弃了对 Rosetta 的支持,因此也放弃了对 PowerPC 程序的支持。

Mac 计算机架构的这种转变也是现在可以在 Mac 上直接或通过虚拟化运行 Windows 的原因。


虽然 Windows 基本上只能在 x86 系统上运行,但 2006 年 Mac 产品线发生了重大转变。由于这是最近才发生的,许多软件开发商继续支持这些系统,而 Apple 则逐渐放弃了对为其编写的硬件和程序的支持。

答案2

这是由于不同的架构造成的,如果它们做了类似的事情,那情况也会与窗户相同。

实际上,IBM 的 POWER 架构仍然存在并且为相当多的服务器提供支持,这些服务器需要与 x86(-64)Intel 架构不同的编译操作系统。

答案3

Windows 确实需要考虑目标架构。看看 Visual Studio 中的选项 - Windows 目前需要针对 64 位和 32 位架构构建不同的版本。ARM 也是如此(即将推出)。在 Windows 95 的早期,他们还必须考虑 16 位/32 位差异。甚至更早,Windows 3 在 80 年代就必须处理 8088 系统。归根结底,对于不同的指令集,发送到可执行文件中的机器代码必须有所不同。

这两个系列都有针对旧版操作系统的选项。事情在变化,编译器也必须随之改变,我们也都希望获得旧版支持。

相关内容