openwrt内核和应用层使用的库文件
一、应用层使用的标准库
1、musl库
是一个全新为 Linux 基本系统实现的标准库。特点是轻量级、快速、简单、免费、标准兼容和安全。
openwrt使用的是musl-1.1.18
openwrt\build_dir\toolchain-arm_cortex-a7+neon-vfpv4_gcc-5.5.0_musl_eabi\musl-1.1.18
2、glibc库
glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。在 GNU/Linux 系统中,其C函式库发展史点出了GNU/Linux 演进的几个重要里程碑,用 glibc 作为系统的C函式库,是GNU/Linux演进的一个重要里程碑。
glibc是一种按照LGPL许可协议发布的,自由的,公开源代码的,方便从网络下载的C的编译程序。GNU C运行期库,是一种C函数库,是程序运行时使用到的一些API集合,它们一般是已预先编译好,以二进制代码形式存在Linux类系统中,GNU C运行期库通常作为GNU C编译程序的一个部分发布。
二、内核使用的库函数
openwrt\build_dir\target-arm_cortex-a7+neon-vfpv4_musl_eabi\linux-sunxi_cortexa7\linux-4.14.25\include\linux
内核的编写并不依赖于C标准库。这一点我之前是有所混乱的,后来想通了。而且C标准库里面的一些函数是封装了Linux的系统调用的。所以不可能依赖C标准库。而所谓的POSIX标准,是规定操作系统要提供哪些接口,但没有规定具体的实现。POSIX标准包含了C标准规定的头文件和另外一些提供系统服务的头文件。通过POSIX接口,我们可以进行系统编程。