本文共 296 字,大约阅读时间需要 1 分钟。
《linux内核设计与实现》第二章15-16页:
刚开始看的时候对上面所说的“内核不能链接使用标准c函数库”有些困惑,下面对其说明:
首先:
linux内核目录树中的include目录下的内容是内核头文件,我们看到内核源码中使用的都是这些头文件,它们不是标准c函数库的头文件,而是在内核中重新编写的c库函数;
而我们在编译器环境(比如gcc)下include的是glicb库,这个是GNU所提供的c运行库,当然自己也可以添加自己的库,库函数是一种API,用来封装系统调用,所谓的系统调用是内核提供的,也就是罗列在内核源码树的\include\linux\Syscalls.h中一系列函数声明;