ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

是否有任何Linux发行版专注于二进制向后兼容?

2019-08-13 02:53:54  阅读:230  来源: 互联网

标签:linux compatibility distribution-choice


如果您构建可在当前版本的Windows上运行的可执行文件,那么该可执行文件可能会在较新版本的Windows上运行多年. Microsoft非常努力地确保这一点.

对于Linux,我们期望您拥有正在使用的软件的源代码,因此只要您保持源兼容性,就可以打破二进制兼容性.这导致发行版逐步淘汰旧库版本并定期破坏以前工作的东西.

对于使用Linux作为游戏平台的人来说,这是一个问题,因为游戏往往只以二进制形式分发.它使Linux端口在中断时看起来很糟糕,但我觉得一般来说尝试解决这个问题会更有效率,而不是希望每个人都更新他们的端口.

是否存在任何试图保持二进制兼容性的发行版,不一定是保留所有旧版本,但至少保留旧的sonames,以便与发行版n一起使用的二进制文件也应该与发行版n 1一起使用?

我能找到的最接近的东西是Valve的“Steam Runtime”,它是一个二进制兼容层,仅适用于通过Steam分发的程序.

解决方法:

基本上这归结为:你不能保持二进制兼容性并引入新功能,因为这些东西在大多数方面都直接相互对立.如果您引入主要的新功能,您最终必须更改ABI(通常在API更改后不久).现在,您可以使用版本化符号(例如Glibc有),但是这会使库的大小增加(并且在将二进制文件加载到内存时也可能会导致性能损失)并且开发人员当然不希望保留它库(遗留代码包含没有人有兴趣修复的错误).

在分销方面解决这个问题的通常方法有两个:

>不要更改版本 – 这对于像(按字母顺序)RedHat和SUSE以及其他一些(Debian,Slackware,Ubunty LTS以及可能是他们的克隆)的企业级发行版来说是典型的.
>允许同时安装各种版本的库.

在应用程序分发器上,这与Windows上的处理方式相同:将所需的所有内容放入分发包中.是的,这是它经常在Windows上完成的方式 – 这也是典型Windows系统通常比具有相同功能的Linux具有几倍更高磁盘空间要求的原因之一 – 应用程序只是在它们之间共享很少在某处有自己的副本.您可以将其视为每个带有自己的GTK / Qt堆栈的GTK / Qt应用程序.它可以有一些优点但缺点也很多.例如,从安全角度来看,它在TechnicolorTM中是一场噩梦.如果二进制文件是静态链接的,它甚至可以在FullHD中.

标签:linux,compatibility,distribution-choice
来源: https://codeday.me/bug/20190813/1646278.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有