Linux内核目录文件简介
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux V0.11目录文件简介
●Makefile文件:该文件是编译辅助工具软件make的参数配置文件。
●boot目录:功能是当计算机加电时引导内核启动,将内核代码加载到内存中,并做一些进入入32位保护运行方式前的系统初始化工作。
①Bootsect.s:磁盘引导块程序,驻留磁盘第一个扇区。0x7C00
②Setup.s:读取机器的硬件配置参数,并把内核模块system移动到适当的内存位置处。
③Head.s:被编译连接在system模块的最前部分,主要进行硬件设备的探测设置和内存管理页面的初始设置工作。
●fs目录:文件系统实现程序的目录。
1、file_table.c文件中,目前仅定义了一个文件句柄(描述符)结构数组。
2、ioctl.c文件将引用kernel/chr_dev/tty.c中的函数,实现字符设备的io控制功能。
3、exec.c程序主要包含一个执行程序函数do_execve(),它是所有exec()函数簇中的主要函数。
4、fcntl.c程序用于实现文件i/o控制的系统调用函数。
5、read_write.c程序用于实现文件读/写和定位三个系统调用函数。
6、stat.c程序中实现了两个获取文件状态的系统调用函数。
7、open.c程序主要包含实现修改文件属性和创建与关闭文件的系统调用函数。
8、char_dev.c主要包含字符设备读写函数rw_char()。
9、pipe.c程序中包含管道读写函数和创建管道的系统调用。
10、file_dev.c程序中包含基于i节点和描述符结构的文件读写函数。
11、namei.c程序主要包括文件系统中目录名和文件名的操作函数和系统调用函数。
12、block_dev.c程序包含块数据读和写函数。
13、inode.c程序中包含针对文件系统i节点操作的函数。
14、truncate.c程序用于在删除文件时释放文件所占用的设备数据空间。
15、bitmap.c程序用于处理文件系统中i节点和逻辑数据块的位图。
16、super.c程序中包含对文件系统超级块的处理函数。
17、buffer.c程序主要用于对内存高速缓冲区进行处理。
·虚框中的ll_rw_block是块设备的底层读函数,它并不在fs目录中,而是
kernel/blk_dev/ll_rw_block.c中的块设备读写驱动函数。放在这里只是让我们清楚的看到,文件系统对于块设备中数据的读写,都需要通过高速缓冲区与块设备的驱动程序
(ll_rw_block())来操作来进行,文件系统程序集本身并不直接与块设备的驱动程序打交道。
●include目录:头文件目录。
1、主目录:
①
②
③
④
⑤
⑥
⑦
⑧
⑨
⑩
⑪
⑫
⑬
2、asm目录:体系结构相关头文件子目录。要定义了一些与CPU体系结构密切相关的数据结构、宏函数和变量。
①
②
③
④
3、linux目录:Linux内核专用头文件子目录。
①
②
③
④
⑤
⑥
⑦
⑧
⑨
⑩
4、sys目录:系统专用数据结构子目录。
①
②
③
④
⑤
●init目录:内核初始化程序目录
该目录中仅包含一个文件main.c。用于执行内核所有的初始化工作,然后移到用户模式创建新进程,并在控制台设备上运行shell程序。
●kernel目录:内核程序主目录。
1、主目录:
①asm.s:用于处理系统硬件异常所引起的中断。
②traps.c:对各硬件异常的实际处理程序,在各个中断处理过程中,将分别调用traps.c中相应的C语言处理函数。
③exit.c:程序主要包括用于处理进程终止的系统调用。包含进程释放、会话(进程组)终止和程序退出处理函数以及杀死进程、终止进程、挂起进程等系统调用函数。
④fork.c:程序给出了sys_fork()系统调用中使用了两个C语言函数:
find_empty_process()和copy_process()。
⑤mktime.c:程序包含一个内核使用的时间函数mktime(),用于计算从1970年1月1日0时起到开机当日的秒数,作为开机秒时间。仅在init/main.c中被调用一次。
⑥panic.c:程序包含一个显示内核出错信息并停机的函数panic()。
⑦printk.c:程序包含一个内核专用信息显示函数printk()。
⑧sched.c:程序中包括有关调度的基本函数(sleep_on、wakeup、schedule等)以及一