【问题标题】:Why glibc binary is called libc.so.6 not a libc.so.1 or libc.so.4?为什么 glibc 二进制文件称为 libc.so.6 而不是 libc.so.1 或 libc.so.4?
【发布时间】:2011-09-23 15:51:15
【问题描述】:

现代 glibc 二进制文件在 Linux 中称为 libc.so.6。为什么这里使用“6”?恕我直言,libc.so.1 或 libc.so.8 也可以是好名字。

维基百科在http://en.wikipedia.org/wiki/GNU_C_Library 提供了一些历史,但没有完全解释

在 1990 年代初期,Linux 内核的开发者分叉了 glibc。他们的分支称为“Linux libc”,多年来一直单独维护,并发布了版本 2 到 5。

当 FSF 在 1997 年 1 月发布 glibc 2.0 时,...。此时,Linux 内核开发人员停止了他们的分叉并重新使用 FSF 的 glibc。[6]

最后使用的 Linux libc 版本使用内部名称 (soname) libc.so.5。在此之后,Linux 上的 glibc 2.x 使用 soname libc.so.6

【问题讨论】:

  • 它们是版本号,之前的版本都使用了 1 到 5。
  • glibc 版本号类似于 2.8,而不是 glibc 5 或 glibc 6
  • 还有原始的非 GNU libc 版本。
  • 注意:没有.6的是链接脚本:stackoverflow.com/questions/13790973/…

标签: linux glibc


【解决方案1】:

那些SONAMEs 已经被使用了。由于新版本的库在界面中出现了中断,因此必须为其使用新的主要 SONAME 编号。

【讨论】:

  • 每个新版本都会破坏界面吗?
  • glibc 的?不会。他们只是修改实现或向接口添加新功能。
  • 某个时候会是 libc.so.7 吗?什么时候?
  • 当一个新的 libc 被写成可以与 glibc 并行安装时。
  • 现在他们可以对单个符号进行版本控制,因此不太可能再次需要对 libc 主要版本进行更改,除非它是对整个库的某种彻底检修。
猜你喜欢
  • 2012-11-27
  • 2019-08-10
  • 1970-01-01
  • 1970-01-01
  • 2023-04-11
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 2012-06-01
相关资源
最近更新 更多