红联Linux门户
Linux帮助

内核函数库与标准C函数库的区别

发布时间:2011-11-24 10:14:21来源:Linux社区作者:linux使用者

  与普通用户程序不同,内核代码不能使用标准C函数库及其他一些函数库。主要原因是由于完整的C函数库很大。因此在内核源代码中有专门一个lib/目录提供内核需要用到的一些函数。内核函数库用于为内核初始化程序init/main.c运行在用户态的进程(进程0、1)提供调用支持。它与普通静态库的实现方法完全一样。读者可从中了解一般libc函数库的基本组成原理。在lib/目录中共有12个C语言文件,除了一个由Tytso编制的 malloc.c程序较长以外,其他的程序很短,有的只有一二行代码,实现了一些系统调用的接口函数。


  这些文件中主要包括退出函数_exit()、关闭文件函数close(fd)、复制文件描述符函数dup()、文件打开函数open()、写文件函数write()、执行程序函数execve()、内存分配函数malloc()、等待子进程状态函数wait()、创建会话系统调用 setsid()以及在include/string.h中实现的所有字符串操作函数。