binutils、gcc 和 glibc 是 GNU 工具链里三个重要的组成部分。
binutils 是一系列的二进制工具,最重要的两个工具是:as(汇编器)和 ld(链接器)。as 将 gcc 生成的汇编代码转换为二进制代码,ld 将多个目标文件代码转换为一个库文件或者一个可执行程序。除了 as 和 ld,binutils 还包括 ar、nm、objcopy、objdump、readelf 等工具。
gcc 是工具链中的编译器套装,目前不仅支持 C 语言,还支持 C++, Java, Fortran, Objective-C 和 Ada 等语言。同时,gcc 也支持很多种体系结构。
glibc 实现了传统的 POSIX API 接口,它通过系统调用和内核进行通信,以及为用户态程序提供更高级的服务。借助它,可以方便的开发用户态程序。
参考资料: