glibc 知:官方
文章目录
- 1. 官网
- 1.1. What is glibc?什么是glibc
- 1.2. Get started 开始
- 1.3. Get Involved 参与其中
- 1.4. Sources 源码
- 1.5. Documentation 文档
- 1.6. Report a bug 报告缺陷
- 2. 社区wiki
- 2.1. 贡献
- 2.2. 资源
- 2.2.1. 社区资源
- 2.3. 内部文档
- 2.4. 测试
- 2.5. 调试
- 2.6. 技巧和窍门
1. 官网
主页:https://www.gnu.org/software/libc
1.1. What is glibc?什么是glibc
GNU C 库项目为 GNU 系统和 GNU/Linux 系统以及许多其他使用 Linux 作为内核的系统提供核心库。 这些库提供了关键的 API,包括 ISO C11、POSIX.1-2008、BSD、特定于操作系统的 API 等等。 这些 API 包括诸如 open、read、write、malloc、printf、getaddrinfo、dlopen、pthread_create、crypt、login、exit 等基础设施。
GNU C 库旨在成为向后兼容、可移植和高性能的 ISO C 库。 它旨在遵循所有相关标准,包括 ISO C11、POSIX.1-2008 和 IEEE 754-2008。
该项目大约在 1988 年开始,至今已有 30 多年的历史。 您可以在 wiki 上查看完整的项目发布历史。
GNU C 库每 6 个月发布一次。
1.2. Get started 开始
GNU C 库提供了许多由 C 或 C++ 语言编写的程序直接使用的低级别组件。许多编程语言间接使用 GNU C 库,包括 C#、Java、Perl、Python 和 Ruby(这些语言的解释器、VM 或编译代码直接使用 glibc)。
版本可通过源分支检出 ( gitweb ) 和 tarball通过 ftp 获得。
- tags:版本标签。
- heads:分支(包括主线分支、版本分支等)。
构建和测试库可参考:https://sourceware.org/glibc/wiki/Testing/Builds
1.3. Get Involved 参与其中
在这里可以查看master todo checklist(主待办事项清单)和list of bugs(缺陷列表)。
1.4. Sources 源码
在这里可以获取glibc源码(代码仓和压缩包),也可以通过web页面查看代码仓详情。
1.5. Documentation 文档
在这里可以查看:glibc手册、API手册页、wiki、FAQ等。
1.6. Report a bug 报告缺陷
在这里可以提bug和查bug:
glibc的所有缺陷是通过Bugzilla平台进行管理:
评论中有关于该缺陷的描述和修复方法。
2. 社区wiki
主页:https://sourceware.org/glibc/wiki/HomePage
wiki中有大量关于glibc的介绍,用户一定要好好的利用,其中主要分了六个部分,本章主要介绍第五个部分,即 Development(开发)。
2.1. 贡献
这里介绍了:glibc编码规范和约定、贡献和提交者清单、维护者和新架构移植贡献指南等。
请注意,如果您希望为glibc做出贡献,您需要将想法和补丁发送到libc-help@sourceware.org以进行初步审查。也就是说,是通过邮件的方式来贡献代码的,相同于linux内核的贡献方式。
2.2. 资源
2.2.1. 社区资源
主要的社区资源如下:
- 邮件列表
- Glibc Git存储库信息
- 弃用和删除过时的代码
- Glibc语言环境/字符集指南
提供了对语言环境的一般介绍以及关于如何使用语言环境(作为用户和开发人员)以及如何使用 GNU C 库创建和更新实际语言环境定义文件的更详细说明 - API指南
- Linux标准库
- ABI列表
描述了glibc 支持的(架构、ABI)组合。
2.3. 内部文档
- 多线程安全
- 使用errlist-compat
- 动态加载器内部
- 平台特定的标题
- 指针加密
- 符号版本控制
- 如何对结构进行版本控制并创建防更改功能包装器。
- 命名空间控制:
- 保留供将来在每个标准 header 中使用的名称模式的有点过时的列表。
- 何时使用__ 前缀符号
- 条件代码:PIC、SHARED等。
- 插件:使用插件目录
- 对 thread_local 变量的析构函数支持
- 环境变量指南
- 系统调用包装器
- 锁省略实现指南
- NSCD 数据库文件布局
- 改进 libm
- 名称解析器
- 用于查询线程属性(堆栈、tls 等)的 API
- 与其他项目共享的源代码
- 模糊测试库
- Libmvec - 矢量数学库
- POWER 架构 - 循环内调用函数的自动向量化
- Malloc 内部结构
- 可调参数
2.4. 测试
- glibc 测试套件
- 测试 GLIBC 构建
- 针对 Gnulib 的测试套件进行测试
- 查找和修复与 check-localplt 相关的测试套件故障
- 为 glibc 内部编写白盒测试
2.5. 调试
- GLIBC 开发的调试技术。
- GLIBC ‘配置’ 调试(待办事项)。
- GLIBC ‘make’ 调试(待办事项)。
- 调试使用 GLIBC (todo) 的应用程序。
- GDB“漂亮打印机”的使用和开发用于/与 GLIBC。
2.6. 技巧和窍门
- 装载机提示和技巧。
- 为 x32 编译。
- 提供您自己的 FOO 版本。
- 拦截系统调用并提供您自己的 FOO 版本的另一个秘诀(专门针对 Ubuntu Linux 系统的说明)。
- Plash 项目有一些关于 GLIBC 的提示(主要是关于构建问题)。
- rtldi可用于同时安装多个版本的 GLIBC(特别是多个版本的动态链接器,ld.so)。
- 如何使用您自己的自定义 glibc 构建应用程序。
- 如何使用secure_getenv
glibc 知:官方相关推荐
- glibc 知:构建2.34版本
文章目录 获取版本 构建安装 测试 testrun.sh strace 获取版本 主页:https://www.gnu.org/software/libc 这里选择任意一个压缩包下载即可. 构建安装 ...
- glibc 知:测试套件
文章目录 前言 测试套件目标 只测试一项测试 ABI检查 有关 make xcheck 特定测试的详细信息 编写测试用例 使用交叉编译器进行测试 已知的测试套件失败 abi-check bug-ate ...
- glibc 知:手册06:字符集处理
文章目录 1. 前言 2. 字符集处理 2.1. 扩展字符简介 2.2. 字符处理函数概述 2.3. 可重启的多字节转换函数 2.3.1. 选择转换及其属性 2.3.2. 表示转换的状态 2.3.3. ...
- glibc 知:内容
文章目录 1. 前言 2. 内容 2.1. Error Reporting 错误报告 2.2. Virtual Memory Allocation And Paging 虚拟内存分配和分页 2.3. ...
- glibc 知:手册05:字符串和数组
文章目录 1. 前言 2. 字符串和数组实用程序 2.1. 字符串的表示 2.2. 字符串和数组约定 2.3. 字符串长度 2.4. 复制字符串和数组 2.5. 连接字符串 2.6. 复制时截断字符串 ...
- glibc 知:系统调用
文章目录 1. 简介 2. 包装器 2.1. 汇编系统调用 2.2. 宏系统调用 2.3. 定制系统调用 3. 汇编系统调用详解 3.1. syscalls.list 3.2. assembly sy ...
- glibc 知:手册12:输入/输出流
文章目录 1. 前言 2. 输入/输出流 2.1. 流 2.2. 标准流 2.3. 打开流 2.4. 关闭流 2.5. 流和线程 2.6. 国际化应用程序中的流 2.7. 按字符或行的简单输出 2.8 ...
- glibc 知:构建和测试
文章目录 1. 前言 2. 构建 2.1. 只构建不安装 2.2. 构建并安装 3. 测试 3.1. 正常编译应用,在新glibc下运行 3.2. 基于glibc构建树进行编译应用 3.3. 基于gl ...
- glibc 知:ld.so
文章目录 1. 名称 2. 概要 3. 描述 3.1. 动态字符串标记 4. 选项 5. 环境 5.1. 安全执行模式 5.2. 环境变量 5.2.1. LD_ASSUME_KERNEL(自 glib ...
最新文章
- GO语言教程1:Linux--debian/ubuntu下Go语言的安装
- div固定大小文字溢出自动缩小_CSS样式更改——框模型、定位、浮动、溢出
- 虚拟机ubuntu启动代码界面_Windows10下使用虚拟机安装Ubuntu18.04
- Linux下 SpringBoot jar项目后台运行、查看、停用
- 【转】ABAP在表VBAP和VBAK上增加新字段的标准BAPI
- 2019_7_31python
- Ubuntu下安装Pycharm及相关设置
- slideToggle使用
- HarmonyOS 项目实战之通讯录(Java)
- Linux -Spark安装
- 京东被优衣库打脸,阿里:怪我咯?
- ruby中的符号_Ruby中的凡人和不朽符号
- 雷电2接口_雷电3和TYPE-C都是干什么的?一文读懂全部
- LeetCode/LintCode 题解丨一周爆刷双指针:最小范围
- 电脑上怎样下载喜马拉雅里的 Mp3
- 足球比赛中的数据科学
- 从Excel导入数据到数据库
- BBR加速及错误处理
- java 学习网站_Java学习必不可少的十大网站
- Deep Reinforcement Learning with Knowledge Transfer for Online Rides Order Dispatching