版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LINUX 内核源文件介绍以及头文件介绍LINUX 内核源文件介绍以及头文件介绍 .txt 两人之间的感情就像织毛衣,建立的时候一针一线,小心而漫长,拆除的时候只要轻轻一拉。*LINUX(0.11)源文件介绍*1、内核源文件放置目录:| boot系统引导汇编程序目录| fs文件系统目录| include头文件目录| init内核初始化程序目录| kernel内存进程调度、信号处理、系统调用等程序的目录| lib内核库函数目录| mm内存管理程序目录| tools生成内核Image文件的工具程序目录Makefile 文件2、引导启动程序目录boot包含 3 个汇编语言文件,是内核源文件中最先被编
2、译的程序。功能: 当计算机家电时引导内核启动, 将内核代码加载到内存中, 并完成系统初始化工作。boot| bootsect.s磁盘引导块程序,编译后会驻留在磁盘的第一个扇区中|setup.s 读取机器的硬件配置参数,并把内核模式system移动到适当的内存位置处|head.s会被编译连接在system模块的最前部分,主要进行硬件设备的探测配置和内存管理页面的配置工作 |3、文件系统目录fs包含17个C语言程序fs | buffer.c 管理高速缓冲区 | file_table.c 在 0.11 仅定义了一个文件句柄(描述符)结构数组| ioctl.c将引用 kernel/chr_dev/tt
3、y.c 中的函数,实现字符设备的 IO控制功能| exec.c 主要包含一个执行程序函数do_execve()| fcntl.c 实现文件 I/O 控制的系统调用函数| read_write.c 实现文件读/ 写和定位的三个系统调用函数| stat.c 实现了两个获取文件状态的系统调用函数 | open.c主要包含实现修改文件属性和创建与关闭文件的系统调用函数| char_dev.c 主要包含字符设备读写函数rw_char()| pipe.c包含管道读写函数和创建管道的系统调用函数| file_dev.c 包含基于 i 节点和描述符结构的文件读写函数。| namei.c主要包括文件系统中目录名
4、和文件名的操作函数和系统调用函数| block_dev.c包含块数据读和写函数| inode.c包含针对文件系统i 节点操作的函数| truncate.c 用于在删除文件时释放文件所占用的设备数据空间| bitmap.c 用于处理文件系统中 i 节点和逻辑数据块的位图包含对文件系统超级块的处理函数super.c4、头文件主目录include有32个.h文件,其中主目录下有13个,sam 子目录中有4 个, sys 子目录中有5 个, linux 子目录中有 10 个include| a.out.h a.out 头文件,定义了 a.out 执行文件格式和一些宏| const.h 常数符号头文件,
5、 目前仅定义了 i 节点中 i_mode 字段的各标志位| ctype.h 字符类型头文件。定义了一些有关字符类型判断和转换的宏| errno.h错误号头文件。包含系统中各种出错号| fcntl.h文件控制头文件。用于文件及其描述符的操作控制常数符号的定义| signal.h 信号头文件。定义信号符号常量,信号结构以及信号操作函数原型| stdarg.h 标准参数头文件。以宏的形式定义变量参数列表。定义了一个类型(va_list)和三个宏(va_start,va_arg和 va_end),用于 vsprintf、vprintf、 vfprintf 函数| stddef.h 标准定义头文件。定义
6、了NULL, offsetof(TYPE,MEMBER)| string.h字符串头文件。主要定义了一些有关字符串操作的嵌入函数| termios.h终端输入输出函数头文件。主要定义控制异步通信口的终端接口| time.h 时间类型头文件。最主要定义了 tm 结构和一些有关时间的函数原形| unistd.h Linux 标准头文件。定义了各种符号常数和类型,并申明了各种函数,如_LIBRARY_则还包括系统调用号和内嵌汇编 _syscall(痔| utime.h 用户时间头文件。定义了访问和修改时间结构以及utime() 原| asm主要定义了一些与CPU体系结构密切相关的数据结构、宏函数和变
7、量| asm/io.h义对 io 端口操作的函数| asm/memory.h汇编宏函数| asm/segment.h嵌入式汇编函数| asm/system.h构以及utime() 原型| linux|linux/config.h(HD_TYPE可选项|linux/fdreg.h义|linux/fs.h|linux/hdreg.h口,状态码,分区表等信息|linux/head.h和几个选择符常量|linux/kernek.h定义|linux/io 头文件。 以宏的嵌入汇编程序形式定内存拷贝头文件。包含 memcpy ()嵌入式段操作头文件。 定义了有关段寄存器操作的用户时间头文件。 定义了访问和
8、修改时间结内核配置头文件。定义键盘语言和硬盘类型软驱头文件。含有软盘控制器参数的一些定文件系统头文件。定义文件表结构硬盘参数头文件。定义访问硬盘寄存器端head 头文件。 定义了段描述符的简单结构,内核头文件。 含有一些内核常用函数的原形mm.h 内存管理头文件。 含有页面大小定义和一些页面释放函数原型| linux/sched.h 调度程序头文件,定义了任务结构task_struct、初始任务0的数据,还有一些有关描述参数设置和获取的嵌入式汇编函数宏语句|linux/sys.h函数处理程序,以$丫$_?头|linux/tty.h方面的参数、常数| sys| sys/stat.h态结构stat
9、和常量|sys/times.h函数原型|sys/types.h|sys/utsname.h| sys/wait.hwaitpid()及相关常数符号|系统调用头文件。含有72 个系统调用Ctty 头文件,定义了有关tty_io ,串行通信文件状态头文件。含有文件或文件系统状定义了进程中运行时间结构 tms 以及 times()类型头文件。定义了基本的系统数据类型系统名称结构头文件等待调用头文件。定义系统调用 wait() 核5、内核初始化程序目录init该目录下仅包含一个文件main.c。 用于执行内核所有的初始化工作, 然后移到用户模式创建新进程,并在控制台设备上运行shell程序。6、内核程
10、序主目录kernel包含了 12个代码文件和一个 Make巾le文件,另外还有3个子目录blk_dev、chr_dev、 math。kernel | asm.s 用于处理系统硬件异常所引起的中断,对各硬件异常的实际处理程序则是在traps.c文件中,在各个中断处理程序中,将分别调用traps.c中相应的C语言处理函数| exit.c 主要包括用于处理进程终止的系统调用,包括进程释放、会话(进程组)终止和程序退出处理函数以及杀死进程、终止进程、挂起进程等系 统调用函数。 |fork.c给出了 sys_fork()系统调用中使用了两个C语言函数:find_empty_process(刖 copy_
11、process(> | mktime.c 包含一个内核使用的时间函数mktime() ,用于计算机从1970年 1 月 1 日 0 时起到开机当日的秒数,作为开机描述。仅在inti/main.c 中被调用一次| pani.c 包含一个显示内核出错信息并停机的函数panic()| printk.c 包含一个内核专用信息显示函数printk()|sched.c包含有关调度的基本函数 (sleep_on、wakeup、schedule等)以及一些简单的系统调用函数,另外还有几个与定时相关的软盘操作函数| signal.c 包含了有关信号处理的 4 个系统调用以及一个在对应的中断处理程序中处理信
12、号的函数do_signal()| sys.c包含了很多系统调用函数,其中有些还没有实现|system_call.s实现了 Linux系统调用(int 0x80)的接口处理过程,实际的处理过程则包含在个系统调用相应的 C 语言处理函数中,这些处理函数分布在整个Linux 内核代码中。| vsprintf.c 实现了现在已经归入标准库函数中的字符串格式化函数| blk_dev 子目录块设备驱动程序| hd.c 实现对硬盘数据块进行读/ 写的底层驱动函数,主要是do_hd_request()函数| floppy.c 主要实现了对软盘数据块的读/ 写驱动函数,主要是do_fd_request()函数。
13、| ll_rw_blk.c 实现了低层块设备数据读/ 写函数ll_rw_block() , 内核中所有其他程序都是通过该函数对块设备进行数据读写操作。| chr_dev子目录 字符设备驱动程序子目录| tty_io.c 包含 tty 字符设备读函数tty_read() 和写函数tty_write() ,为文件系统提供了上层访问接口。另外还包括在串行中中断处理过程中调用的 C 函数 do_tty_interrupt() ,该函数将会在中断类型为读字符的处理中 被调用。| console.c 主要 包含 控 制台 初 始化 程 序和 控制台 写 函 数con_write() ,用于被 tty 设备
14、调用。还包含对显示器和键盘中断的初始化设置程序 con_init() 。| rs_io.s 由于实现两个串行接口的中断处理程序。该中断处理程序会根据从中断标识寄存器中取得的 4 种中断类型分别进行处理, 并在处理中断类型为读字符的代码中调用 do_tty_interrupt().| serial.c 用于对异步串行通信芯片 UART进行初始化操作,并设置两个通信端口的中断向量。另外还包括tty 用于往串口输出的 rs_write ()函数。| tty_ioctl.c 实现了 tty 的 io 控制接口函数tty_ioctl() 以及对termio(s)终端Io结构的读写函数,并会在实现系统调用
15、sys_ioctl()的fs/ioctl.c程序中被调用| keyboard.s 主要实现了键盘中断处理过程keyboard_interrupt.| | math 子目录协处理器仿真和操作程序子目录| math_emulate.c 是中断 int7 的中断处理程序调用的 C 函数。| lib 子目录 内核库函数目录 lib 主要用于用户编程调用,是编译系统标准库 的接口函数之一。|Makefile 文件exit.c包含内核使用的程序终止函数void _exit(intexit_code)close.cctype.cdup.cerrno.cexecve.c malloc.copen.csetsid.c string.cwait.cwrite.c7、内存管理程序目录mmI|page.s包括内存页面异常中断(int 14)处理程序,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CRRA 0301-2023绿色再生塑料 产销监管链
- T/TMAC 231-2025电子器件用金刚石热沉片
- T/GDLC 022-2024温室气体 产品碳足迹 量化方法与要求 凝胶糖果
- T/CI 479-2024区域复合水灾害特征变异识别规程
- T/CABC 13-2024产品数字护照 动力蓄电池唯一编码
- T/CRHA 088-2024病理免疫组织化学检测质控品要求
- 2025~2026学年黑龙江齐齐哈尔市龙江县人教版上册第一次学情自测教学质量抽测六年级数学试卷【附答案】
- 2025-2026学年吉林省榆树市初中政治八年级期末上册自测高频题(附答案)
- 2027届江苏省南通市田家炳中学七年级数学第一学期期末检测模拟试题含解析
- 前台接待访客登记、引导与通知流程方案
- 2026年皖豫天一大联考高三10月英语试题(含答案)
- 2026-2027学年四年级上学期统编版语文单元练习卷 第一单元-1(含答案)
- 【应用方案】2026智慧农业农业机器人智能感知与精准作业一体化设计方案
- CSCO非小细胞肺癌诊疗指南(2026版)
- 压缩空气储能地下洞库施工方案
- T∕CCEAS008-2026 建设工程造价咨询成果文件质量标准
- (2026年)护理查对制度课件
- 班主任基本功大赛-情景答辩23题(中学组)
- 食品研发工程师的工作绩效考核表
- 第六章 社会工作服务的专业理论及其应用 社会工作综合能力(中级)
- 澳门宠物行业发展分析报告
评论
0/150
提交评论