linux常用头文件详解
asm/目录下主要用于存放与计算机体系结构密切相关的函数声明或数据结构的头文件。例如Intel CPU 端口IO汇编宏文件io.h、中断描述符设置汇编宏头文件system.h等。linux/目录下是Linux内核程序使用的一些头文件。其中包括调度程序使用的头文件sched.h、内存管理头文件mm.h和终端管理数据结构文件tty.h等。而sys/目录下存放着几个与内核资源相关头文件。不过从0.98版开始,内核目录树下sys/目录中的头文件被全部移到了linux/目录下。
Linux 0.12版内核中共有32个头文件(*.h),其中asm/子目录中含有4个,linux/子目录中含有10个,sys/子目录中含有5个。从下一节开始我们首先描述include/目录下的13个头文件,然后依次说明每个子目录中的文件。说明顺序按照文件名称排序进行。
14.2 a.out.h文件
14.2.1 功能描述
在Linux 内核中,a.out.h文件用于定义被加载的可执行文件结构。主要用于加载程序fs/exec.c中。该文件不属于标准C库,它是内核专用的头文件。但由于与标准库的头文件名没有冲突,因此在Linux系统中一般可以放/usr/include/目录下,以供涉及相关内容的程序使用。该头文件中定义了目标文件的一种a.out(Assembly out)格式。Linux 0.12系统中使用的.o文件和可执行文件就采用了这种目标文件格式。
a.out.h文件包括三个数据结构定义和一些相关的宏定义,因此文件可被相应地分成三个部分:
◆第1~108行给出并描述了目标文件执行头结构和相关的宏定义。
◆第109~185行对符号表项结构的定义和说明。
◆第186~217行对重定位表项结构进行定义和说明。
由于该文件内容比较多,因此对其中三个数据结构以及相关宏定义的详细说明放在程序列表后。