首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有ABI兼容性保证的情况下,如何在任何版本上运行为特定Linux版本编译的应用程序?

问在没有ABI兼容性保证的情况下,如何在任何版本上运行为特定Linux版本编译的应用程序?
EN

Unix & Linux用户
提问于 2020-10-04 14:58:38
回答 1查看 447关注 0票数 -2

假设有一个应用程序JDK,它是针对某些linux版本编译的,比如4.18,可供下载。如何在不同的linux版本(比如3.10 )上运行相同的应用程序?当主要版本之间没有由Linux保证的ABI兼容性时。只有当用户程序和内核的二进制文件生成的内核版本相同时,ABI兼容性才能得到保证,如下图所示-

如果我对linux版本之间ABI不兼容的理解是正确的,那么为什么应用程序开发人员不提及生成二进制文件的linux版本。就像硬件架构-- x86、x64、ARM,他们提到了与其兼容的应用程序。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-10-04 18:45:45

内核ABI暴露在用户空间应该是稳定的中,也就是说,如果一个在给定内核上工作的程序停止在以后的内核上工作,那就被认为是一个严重的错误,并且通常会被修复。如果bug影响到稳定的内核系列中的任何版本,那么它的修复也将被支持。

当您看到对RHEL内核ABI的引用,并支持该旧内核时,这超出了上游内核开发人员“承诺”的内核ABI稳定性。

对于应用程序来说,库比内核更重要,而且不同的发行版对库的支持也不尽相同。例如,请参见RHEL 7兼容性指南 (请注意,它没有提到内核)。这就是LSB最关心的问题:它列出了应用程序可以依赖的库(与LSB兼容的发行版)以及它们的子项。

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/612864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档