libc glibc 是什么

术语“libc”通常作为“标准C库”的简称使用,这是一个包含标准函数的库,可以被所有C程序(有时也被其他语言的程序)使用。由于一些历史原因(见下文),在Linux中使用“libc”一词指代标准C库有些模糊。

linux 上的 standard c library

在这里插入图片描述

glibc

在Linux上最广泛使用的C库是GNU C库(http://www.gnu.org/software/libc/),通常被称为glibc。这是现在所有主要Linux发行版所使用的C库。该库的详细信息也在man-pages项目的相关页面(主要是手册的第3部分)中有所记录。glibc的手册文档也可以通过命令info libc获得。glibc的第一个版本1.0是在1992年9月发布的。(在此之前有0.x的早期版本。)glibc的下一个主要版本是1997年初的2.0。

路径名/lib/libc.so.6(或类似的东西)通常是一个符号链接,指向glibc库的位置,执行这个路径名会使得glibc显示关于安装在系统上的版本的各种信息。

zuanmin.lzm@localhost:~/test/profile$ /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Ubuntu GLIBC 2.27-3ubuntu1.6) stable release version 2.27.
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 7.5.0.
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.

Linux libc

在1990年代初期到中期,有一段时间存在一个名为Linux libc的库,它是glibc 1.x的一个分支,由认为当时的glibc开发不能满足Linux需求的Linux开发者创建。这个库经常(模棱两可地)仅称为“libc”。Linux libc发布了主要版本2、3、4和5,以及这些版本的许多次要版本。Linux libc4是最后一个使用a.out二进制格式的版本,并且是第一个提供(初级)共享库支持的版本。Linux libc5是第一个支持ELF二进制格式的版本;此版本使用共享库soname libc.so.5。一段时间里,Linux libc成为了许多Linux发行版的标准C库。

然而,尽管Linux libc努力的初衷如此,到了1997年glibc 2.0发布时,它明显优于Linux libc,所有使用Linux libc的主要Linux发行版很快就切换回了glibc。为了避免与Linux libc版本混淆,glibc 2.0及之后的版本使用了共享库soname libc.so.6。

由于从Linux libc切换到glibc 2.0已经发生很久了,man-pages不再特别注意记录Linux libc的细节。不过,有关Linux libc的信息残留在少数几个手册页中,尤其是对libc4和libc5的引用仍然可见。

其他C库
还有各种其他不太广泛使用的Linux C库。这些库通常比glibc更小,无论是功能还是内存占用方面,往往旨在构建小型二进制文件,可能针对嵌入式Linux系统的开发。此类库包括uClibc(http://www.uclibc.org/)、dietlibc(http://www.fefe.de/dietlibc/)和musl libc(http://www.musl-libc.org/)。man-pages项目涵盖了这些库的细节,它们在那里被熟知。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值