当前位置: 首页 > news >正文

C语言:Linux libc和glibc的历史

相关阅读

C语言https://blog.csdn.net/weixin_45791458/category_12423166.html?spm=1001.2014.3001.5482


        libc用通常被用来指代标准C库的简称,即满足C语言标准的库,可供其他程序使用。但由于一些历史原因,它的概念出现了一些模糊,本文旨在帮助读者厘清这些概念。

glibc

        在目前的Linux系统中,最广泛使用的标准C库是由GNU项目开发的实现(http://www.gnu.org/software/libc/),它的第一个正式版本(1.0)诞生于1992年9月(在此之前还存在非正式版本),目前最新的版本是2025年1月发布的2.41。

        /lib/目录下存在一个libc.so.6文件,通常是指向libc-2.x.so文件的符号链接,这被称为SONAME,用来管理共享库的依赖关系,其中6意思是主版本号为6,可是之前谈到glibc最新的主版本为2.41,为什么会出现这种情况呢?这时就需要谈到Linux libc了。

Linux libc

        在glibc的第一个正式版本推出后,Linux社区觉得glibc的开发进度太慢,无法满足Linux的需求,于是对glib的1.x版本分支出了Linux libc,并发布了它的2、3、4、5版本,在一段时间内,Linux libc是许多Linux发行版的标准C库。但当glibc 2.0发布时(1997年1月),它在各方面都显著优于Linux libc,所有曾使用Linux libc的Linux发行版很快都重新切换回了glibc。

        当时的Linux libc 5的命名类似libc.so.5.4.38,由于主版本号为5,其对应的SONAME是libc.so.5。而glibc 2.0推出时并没有使用常见的命名方式如glibc.so.2.x.x而是使用libc-2.x.so,但其对应的SONAME却为了和之前Linux libc保持一致而使用了libc.so.6。换句话说,如果未来推出了glibc 3.0,则其对应的SONAME应该是libc.so.7(为了ABI兼容,glibc的主版本已经二十多年没有升级了)。

http://www.dtcms.com/a/251391.html

相关文章:

  • 1. NVIDIA驱动安装
  • SpringCloud框架全面学习指南
  • AC耦合与DC耦合
  • 本地访问远程vps中的sqlite数据库中的内容之(一)建立并访问ftp服务器
  • Linux进程间通信(上)
  • 思科基本理论
  • 第2讲、LangChain应用架构与核心组件:构建LLM应用的基石
  • SpringBoot电脑商城项目--用户注册功能
  • ‘str‘ object does not support item assignment
  • centos7 安装 docker
  • DP刷题练习(二)
  • router.push()
  • 【Java】网络编程基础与聊天室架构分析
  • 七 医学影像云平台-影像检验互联互认平台建设中遇到的问题
  • to avoid naming wrong index webpage for one website
  • 安卓9.0系统修改定制化____安卓9.0系统精简 了解系统app组件构成 系统app释义 常识篇 一
  • 前端api中使用data传参源码解释
  • InnoDB的undo日志的数据结构
  • 跨域问题之前后端解决办法
  • 中介者模式Mediator Pattern
  • NISP-PTE基础实操——SQL注入
  • Vue3 Pinia Store 生命周期管理
  • Mysql基础入门\期末速成
  • 5G NR PDCCH之CORESET交织映射
  • 25年泰康保险养老社招入职统一测评(心理、认知、潜质)北森真题题库、高分攻略
  • 【系统分析师】第4章-基础知识:计算机网络与分布式系统(核心总结)
  • 从0开始学习语言模型--Day02-如何最大化利用硬件
  • 什么是装饰器?
  • 紧急救援!Ubuntu崩溃修复大赛
  • 三次贝塞尔曲线,二次贝塞尔曲线有什么区别