向下兼容

科技工作者之家 2020-11-17

计算机术语,又称向后兼容(Backwards compatibility)

又称向后兼容(Backwards compatibility),计算机术语。向下兼容常常是相对于向上兼容而言的,两者在兼容的方向性上是相反的,因此这两个概念是不同的。向下兼容(Downward Compatibility),又称作向后兼容(Backward Compatibility)。在计算机中指在一个程序或者类库更新到较新的版本后,用旧的版本程序创建的文档或系统仍能被正常操作或使用,或在旧版本的类库的基础上开发的程序仍能正常编译运行的情况。例如较高档的计算机或较高版本的软件平台可以运行较为低档计算机或早期的软件平台所开发的程序,如基于Pentium微处理器的PC兼容机可以运行早期在486上运行的全部软件。向下兼容可以使用户在进行软件或硬件升级时,厂商不必为新设备或新平台从头开始编制应用程序,以前的程序在新的环境中任然有效。

基本信息向下兼容(Downward Compatible)

在文件系统中,ext4文件系统的设计就是向后兼容的,ext3的文件系统可以被当作ext4文件系统挂载。

对于软件来说,向下兼容的意思是,较高版本的程序能顺利处理较低版本程序的数据。拿著名的动画制作软件 Flash的两个版本 Flash 5 与 Flash MX 2004 来说,这两个版本虽然保存出来的文件都是 .fla,可是文件内容的结构有所不同。尽管如此,Flash MX 2004 仍然能处理 Flash 5.0 保存的 fla 文件,我们就说 Flash MX 2004 是向下兼容的。

通常更新一个软件时,应该为向下兼容性做出一定的考虑,这往往能给用户带来方便并更好地留住用户。Microsoft特别强调维持软件的向下兼容性。为了实现此一目标,有时微软甚至不惜支持使用了非官方乃至误用的 API 的软件。1

软件在文件系统中,ext4文件系统的设计就是向后兼容的,ext3的文件系统可以被当作ext4文件系统挂载。

通常更新一个软件时,应该为向下兼容性做出一定的考虑,这往往能给用户带来方便并更好地留住用户。Microsoft特别强调维持软件的向下兼容性。为了实现此一目标,有时微软甚至不惜支持使用了非官方乃至误用的 API 的软件。

但情况并不总是这样,有时为了考虑向下兼容会带来一些累赘,甚至增加开发的成本,尤其是进行过较多升级后。Python3.0 便是放弃向下兼容的一个例子。

如果一个软件的旧的版本保存的文档不能被新版本读取,即使厂商提供了额外工具对旧文档进行不可逆转的转换,这也不能称作向下兼容。这可能是软件厂商的一种市场战略,强迫用户购买升级软件,随着升级用户逐渐增加,逐渐地使得旧软件能读取的文档越来越少。2

硬件以广为使用的通用串行总线(USB)为例,从1998年的1.1版到2015年时的3.1版,A型的插头与插座均可跨版本互相使用,仅新版本所支持的较大传输速率与一些新特性无法为旧版所使用。

蓝光光盘驱动器通常可向后兼容读取DVD、CD。

此外还有微软公司推出的Xbox One游戏机对Xbox 360,和任天堂推出的Wii U对Wii的旧版本游戏在新版本硬件中提供支持。但是索尼计算机娱乐推出的PS4游戏机则不向后兼容PS3的游戏。1

相关内容向下兼容的负面影响

但情况并不总是这样,有时为了考虑向下兼容会带来一些累赘,尤其是进行过较多升级后。Python 3.0便是放弃向下兼容的一个例子。

不能称为向下兼容的情况

如果一个软件的旧的版本保存的文档不能被新版本读取,即使厂商提供了额外工具对旧文档进行不可逆转的转换,这也不能称作向下兼容。这可能是软件厂商的一种市场战略,强迫用户购买升级软件,随着升级用户逐渐增加,逐渐地使得旧软件能读取的文档越来越少。2

本词条内容贡献者为:

曹慧慧 - 副教授 - 中国矿业大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。