什么是 glibc
glibc(GNU C Library)是一个用户空间库,它不是直接位于Linux内核中,而是作为一个独立的软件包存在于Linux系统中。
Linux内核本身提供了操作系统的核心功能,如进程管理、文件系统、设备驱动等。而glibc是一个用户空间库,为应用程序提供与操作系统的交互接口。它包含了标准的C库函数实现,如内存管理、文件操作、网络通信等。
当应用程序需要与操作系统进行交互时,它们会使用glibc提供的函数和接口来调用相应的系统功能。这些函数和接口封装了与操作系统内核的交互细节,使应用程序能够方便地使用操作系统提供的功能。
所以可以说,glibc是作为Linux系统的一部分存在的,但它不是内核的一部分。它提供了用户空间的标准C库功能,是应用程序与Linux操作系统之间的重要桥梁。
如何查看 glibc 的版本
要查看Ubuntu 20.04上正在使用的glibc版本,可以使用以下命令:
ldd --version
这个命令将显示ldd工具的版本信息,ldd是用于查看动态链接库依赖关系的工具,它使用系统上安装的glibc版本。
另外,你还可以使用以下命令来查看glibc的版本号:
strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_
这个命令将在libc.so.6文件中查找以"GLIBC_"开头的字符串,其后的字符串表示glibc的版本号。
请注意,这些命令需要在具有适当权限的终端或shell中运行。
如何查看 glibc 的安装路径
要查看glibc(GNU C Library)的安装路径,可以使用以下命令:
ldconfig -p | grep libc.so
这个命令会列出系统中所有已安装的动态链接库,并通过筛选查找包含 "libc.so" 的行,其中就包括glibc的路径。
请注意,为了执行上述命令,你需要具有适当的权限。
libc.so.6 和 libc.so 是什么关系?
libc.so
是一个指向 libc.so.6
的符号链接(symbolic link)。在Linux系统中,libc.so.6
是GNU C库(glibc)的主要共享对象文件。它包含了操作系统所需的标准C库函数和符号,供应用程序调用和链接。
由于libc.so.6
是glibc的版本特定文件,为了确保向后兼容性和升级方便,系统会创建一个 libc.so
的符号链接,指向当前正在使用的 libc.so.6
文件。这样做可以使旧的应用程序能够继续链接到最新的glibc版本,而不需要修改其链接路径。
因此,libc.so
和 libc.so.6
在功能上是等价的,它们代表了同一个共享对象文件(glibc)。应用程序可以使用其中任何一个来链接到系统的标准C库。libc.so
作为一个通用的符号链接,可以用于向后兼容和简化链接的过程。而 libc.so.6
是实际的共享对象文件,包含了glibc的具体实现和功能。
需要注意的是,不同的Linux发行版和版本可能会在文件路径和命名方面略有不同,但是 libc.so
和 libc.so.6
的关系原理是相同的。
glibc 版本和 linux 发行版本的对应关系
下表是主流Linux发行版Ubuntu/CentOS/Debian系统默认的glic版本
Ubuntu | Debian | CentOS | Glibc |
---|---|---|---|
22.04 | - | - | 2.34 |
20.04 | 11 | - | 2.31 |
- | 10 | 8 | 2.28 |
18.04 | - | - | 2.27 |
- | 9 | - | 2.24 |
16.04 | - | - | 2.23 |
14.04 | 8 | - | 2.19 |
13.04 | - | 7 | 2.17 |
12.04 | - | - | 2.15 |
- | 7 | - | 2.13 |
- | - | 6 | 2.12 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。