二進制代碼的兼容性 二进制代码兼容性也稱為二进制兼容或目标代码兼容是计算机系统的一种特性意味着它可以运行与另一计算机系统相同的可执行代码通常是通用计算机中央处理器CPU的机器码另一方面源代码兼容性英语Sourcecode compatibility意味着在程序能够在兼容系统上运行之前需要重新编译或解释 对于通用操作系统上的已编译程序二进制兼容性通常不仅意味着两个计算机的CPU指令集是二进制兼容的还意味着操作系统OS和应用程序接口API的接口和行为以及与这些API对应的应用程序二进制接口ABI足够相似即兼容 诸如向下兼容这样的术语通常暗示对象代码兼容这意味着较新的计算机硬件和或软件具有旧版本的所有功能加上额外的能力或性能因此较老的可执行代码将在较新的产品上不变地运行对于直接在OS下CPU上运行的已编译程序二进制兼容操作系统主要意味着与另一个系统具有应用程序二进制接口ABI兼容然而这也常常暗示了应用程序依赖的API无论是直接还是间接例如Windows API都足够相似硬件除了CPU例如图形硬件和外围设备也是完全兼容性的因素尽管许多硬件差异被现代API隐藏了起来这些API部分由OS本身提供部分由特定设备驱动提供 在其他情况下为使非二进制兼容程序工作必须使用软件的一般移植 当开发需要在多个操作系统上运行的计算机程序时二进制兼容性是一个主要优势一些基于Unix的操作系统如FreeBSD或NetBSD为更流行的操作系统如Linux衍生版提供了二进制兼容性因为大多数二进制可执行文件并不常为此类操作系统分发 大多数操作系统在其每个版本中为早期版本构建的大多数二进制文件提供二进制兼容性例如为Windows Windows 或Windows 编译的许多可执行文件也可以在Windows XP或Windows 上运行而许多DOS应用程序则可以在更新版本的Windows上运行最高到Windows 也就是最后一个支持NTVDM英语NTVDM的版本