linux-011内核文件结构图

(4页)

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

9.9 积分

Linux内核文件结构图LinuxI -boot系统引导汇编程序I -bootsect, s磁盘引导程序,编译后会驻留在磁盘的第一扇区中。I -setup, s主要用于读取机器的硬件配置参数,并把内核模块system移动到适当的内存位置处。I -head, s程序会被编译连接在system模块的最前部分,主要进行硬件设备的探测设置和内存管 理页面的初始设置工作。I -fs 文件系统I -bitmap, c用于处理文件系统中i节点和逻辑数据块的位图。I —block_dev. c包含块数据读和写函数。I -buffer, c主要用于对内存高速缓冲区进行处理。I — char_dev. c主要包含字符设备读写函数re_char ()。I —exec, c主要包含一个执行程序函数do_execve (),它是所有exec ()函数簇中的主要函数。I -fcntl.c 用于实现文件I/O控制的系统调用函数。I -file_dev. c 包含基于i节点和描述符结构的文件读写函数。I -file_table.c 定义了一个文件句柄(描述符)结构数组。I —inode, c包含针对文件系统i节点操作的函数。I —ioctl. c 将引用kernel/chr_drv/tty. c中的函数,实现字符设备的io控制功能。I —MakefileI -namei. c主要包括文件系统中目录名和文件名的操作函数和系统调用函数。I -open, c主要包含实现修改文件属性和创建与关闭文件的系统调用函数。I -pipe.c包含管道读写函数和创建管道的系统调用。I —read_write. c用于实现文件读/写和定位三个系统调用函数。I -stat.c实现了两个获取文件状态的系统调用函数。I -super, c包含对文件系统超级块的处理函数。I -truncate, c用于在删除文件时释放文件所占用的设备数据空间。I -include头文件(*.h) 对所有头文件进行了详细说明,基本上对每一个定义、每一个变量或数据结构都进行了详细注释。(主目录下的头文件主要是供内核和用户程序使用)I -asm与CPU体系结构相关的部分(主要用于存放于计算机硬件体系结构密切相关的头文件)。I -io.h 文件中定义了对硬件10端口访问的嵌入式汇编宏函数:outb(), inb()以及。utb_p() 和 inb_p () oI —memory, h 含有一个内存复制嵌入式汇编宏mencpy () I -wait.h 该文件描述了进程等待信息的一些宏,包括符号常数和waitO. waitpidO函数原型1 —a? out? h声明。主要定义了二进制执行文件a. out(Assembley out)的格式。其中包括三个数据结构和一些宏函数。1 —const, h1 —ctype. h1 — errno. h1 —fcntl?h文件含有一些i节点标志的常数定义。文件定义了一些有关字符类型判断和转换的宏,是使用数组(表)进行操作。文件定义了 Linux系统中的一些出错码的常量符号。文件控制选项头文件,主要定义了函数fcnt 1 ()和open ()中用到的一些选项和符号。I -signal, h文件中主要定义了信号符号常量和数据结构sigaction.I -stdarg.h 标准参数头文件。它以宏的形式定义变量参数列表。主要说明了一个类型(va_list)和三个宏(va_start, va_arg 和 va_end),用于 vsprintfx vprintf> vfprintf 函数。I -stddef.h文件是由C标准化组织(X3J11)创建的,其名称含义是标准(std)定义(def),主要用于存放一些“标准定义SI -string, h文件中以内嵌函数的形式定义了所有字符串操作函数,为了提高执行速度使用了内嵌 汇编程序。I —termios. h文件含有终端I/O接口定义,包括termios数据结构和一些对通用重点接口设置的函1 —time ?h数原型,这些函数用来读取或设置终端的属性.线路控制,读取或设置波特率以及读 取或设置终端前度进程的组id.用于涉及处理时间的函数。-unistd.h定义了各种符号常数和类型,并申明了各种函数。1 —utime. h定义了文件访问和修改时间结构utimbuf {}以及utime ()函数原型。I -init内核初始化程序1 —main. c它是内核完成所有初始化工作并进入正常运行的关键。在完成了系统所有的初始化工作 后,创建了用于shell的进程。I -kernel内核进程调度、信号处理.系统调用等程序I ~blk_drv块设备驱动程序主要含有硬盘、软盘等块设备的驱动程序,主要与文件系统和高速换 出去打交道。I -blk. h定义了 3个C程序中共用的块设备结构和数据块请求结构。I -floppy, c主要实现了对软盘数据块的读/写驱动函数。I -hd.c主要实现对硬盘数据块进行读/写的底层驱动函数do_hd_request()等;I -ll.rw^blk. c实现了底层块设备数据读/写函数ll.rw.blockO ,内核中多有程序都是通过该函数对块 设备进行数据读写操作。I —MakefileI —ramdisk, cI -chr_drv字符设备驱动程序 主要涉及串行线路驱动程序,键盘驱动程序和显示器驱动程序,含 有较多与硬件有关的内容。I -console, c主要包含控制台初始化程序和控制台写函数con_write(),用于被tty设备调用,还包含 对显示器和键盘中断的初始化设置函数con_init()。I —keyboard, s主要实现了键盘中断处理过程keyboard_interrupt<>I —MakefileI -rs_os. s用于实现两个串行接口的中断处理程序。该中断处理程序会根据从中断标志寄存器(端口 0x3fa或Oxfa)中取得的4种中断类型分别进行处理,并在处理中断类型为读字符的 代码中调用 do_tty_interrupt ()。I -serial, c用于对异步串行通信芯片UART进行初始化操作,并设置两个通信端口的中断向量。 另外还包括tty用于往串口输出的rs_write()函数。I -tty.io. c包含tty字符设备度函数tty.read0和写函数tty_write(),为文件系统提供了上层访问接 口。另外还包括在串行中断处理过程中调用的C函数do_tty_interrupt(),该函数 将会在中断类型为读字符的处理中被调用。I —tty_ioctl. c实现了 tty的io控制接口函数tty_ioctl ()以及对termio[s]终端io结构的读写 函数,并会在实现系统调用sys.ioctl ()的fs/ioctl. c程序中被调用。I -math数学协处理器仿真处理程序。I —MakefileI —math_emulate. c其中math_emulate ()函数是中断int7的中断处理程序调用的C函数。I -asm. s用于处理系统硬件异常所引起的中断。I -exit.c主要包括用于处理进程终止的系统调用。包含进程释放、会话(进程组)终止和程序退出 处理函数以及杀死进程、终止进程、挂起进程等系统调用函数。I -fork, c给出了进程创建系统调用sys_fork()相关的两个C语言函数。I — Makef 订 eI -mktime.c程序包含一个内核使用的时间函数mktimeO,用于计算从1970年1月1日0时起到开机 当日的时间。作为开机时间(秒)。仅在init/main. c中被调用一次。I —panic, c包含一个显示内核出错信息并停机的函数painc()I —printk. c包含一个内核专用信息显示函数printkO «I —sched. c包括有关调度的基本函数(sleep_on、wakeup> schedule等)以及一些简单的系统调用函 数,及几个与定时相关的软盘操作韩式。I -signal, c包括了有关信号处理的4个系统调用以及一个在对应的中断处理程序中处理信号的函数 do_signal () <>I -sys.c包括很多系统调用函数。其中有些还没有发现。I -system.call.s实现了系统调用(int 0x80)的接口处理过程,实际的处理过程则包含在各系统调 用相应的C语言处理函数中,这些处理函数分布在整个Linux内核代码中。I -traps, c对各硬件异常的实际处理程序,在各个中断处理过程中,将分别调用traps, c中相应的C 语言处理函数。I —vsprintf. cI -lib内核库函数这些库函数文件主要向编译系统等系统程序提供接口函数,阅读这些文件对以后理 解系统软件会有较大的帮助(内核库函数用于初始化程序init/main. c执行在用户态的进程提供调用支持)I —_exit. c 退出函数_exit()I —close, c 关闭文件函数close ()I -ctype. c定义了字符类型,用于判断字符的所属类型,包括控制字符(_C)、大写字符(_U)、小 写字符(_L)等。I —dup. c 复制文件描述符函数dup()I -errno. c该程序仅定义了一个出错号变量errnoo用于在函数调用失败时存放出错号。I —execve. c定义加载并执行子进程(其他程序)函数execve ()I —MakefileI —malloc. c内存分配函数malloc ()I —open, c文件打开函数openOI —setsid. c创建会话系统调用setidOI -string, c实现所有字符串操作函数I -wait, c 等待子进程状态函数wait ()I —write, c 写文件函数 write ()I -mm内存管理程序(主要用于管理程序对主内存区的使用,实现了进程逻辑地址到线程地址以及线性 地址到主内存区中物理内存地址的映射,通过内存的分页管理机制,在进程的虚拟内存页与主内 存区的物理内存页之间建立了对应关系)I —MakefileI —memory, cI —page, sI —tools生产内核image文件的工具程序I 一bu订d.c仅用于将内核中的磁盘引导程序块与其他主要内核模块连接成一个完整的内核映像 (kernel image)文件(将Linux各个目录中被分别编译生成的目标代码连接并合并成一 个可运行的内核映像文件imageo)—Makefiles 关 键 词: linux 011 内核 文件 结构图

 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

linux 内核文件结构,linux-011内核文件结构图相关推荐

  1. 自学Linux 2—Linux 的系统架构之 Linux 内核的主要模块和 Linux 的文件结构

    Linux 的系统架构 Linux 系统从应用角度来看,分为内核空间和用户空间两个部分.        内核空间是 Linux 操作系统的主要部分,但是仅有内核的操作系统是不能完成用户任务的.丰富并且 ...

  2. Linux文件系统:Linux 内核文件描述符表的演变

    我在<Linux 中每个 TCP 连接最少占用多少内存?>一文中绘制了 Linux 内核现在(4.x)使用的文件描述符表(file descriptor table)的数据结构.本篇文章做 ...

  3. linux下poll和epoll内核源代码剖析

    作者:董昊 博客链接http://donghao.org/uii/ poll和epoll的使用应该不用再多说了.当fd很多时,使用epoll比poll效率更高. 我们通过内核源码分析来看看到底是为什么 ...

  4. Linux基础系列—Linux体系结构和Linux内核结构

    Linux体系结构 如下图所示,Linux体系结构,从大的方面可以分为用户空间(User Space)和内核空间(Kernel Space). 用户空间中包含了C库,用户的应用程序.在某些体系结构图中 ...

  5. linux内核剖析---Linux系统调用详解(实现机制分析)

    原文博客 http://blog.csdn.net/gatieme/article/details/50779184 本文介绍了系统调用的一些实现细节.首先分析了系统调用的意义,它们与库函数和应用程序 ...

  6. 十七.linux开发之Kernel移植——内核的启动过程分析

    有道云笔记地址: 详情看这里链接,记录太多,就不一一排版了. http://note.youdao.com/noteshare?id=e68caf68c259bc3491dd7f8c4ac4bb99& ...

  7. 【Linux内核】Linux内核介绍

    Linux学习内核思路 学习过程: Linux内核引导及如何初始化 进程管理.内存管理 内核引导及过程: CPU通电后,首先执行引导程序,引导程序把内核加载到**内存,**然后执行内核,内核初始化完成 ...

  8. 嵌入式Linux设备驱动程序:编写内核设备驱动程序

    嵌入式Linux设备驱动程序:编写内核设备驱动程序 Embedded Linux device drivers: Writing a kernel device driver 编写内核设备驱动程序 最 ...

  9. linux怎样查看内核参数,Linux 实例如何查看和修改 Linux 实例内核参数?

    <操作系统>课程设计报告课程设计题目:操作系统课程设计 设计时间:2016/1/10一. 课程设计目的与要求需要完成的内容:(1) 安装虚拟机:Vmware.Vmware palyer ( ...

最新文章

  1. Python 数据类型:列表
  2. html学习文档-3、HTML元素
  3. 【 D3.js 入门系列 --- 9 】 常见可视化图形
  4. 【惊天】京东任命周伯文担任京东云与AI事业部负责人 全面负责AI、云计算、IoT三大技术领域!
  5. 图论--有向图强连通分量的标记及缩点模板
  6. Amazon.com 和 store.apple.com 哪个的购物体验更好?
  7. AcWing1085.不要62(数位DP)题解
  8. selenium与chromedriver的操作
  9. 进阶必看的 RocketMQ ,就这篇了!
  10. c语言程序100例pdf,经典c程序100例源代码(全).pdf
  11. 第十二周博客作业西北师范大学|李晓婷
  12. C# 利用 OleDb 组件操作 Excel 进行文件读写操作
  13. 店铺差评有什么影响原因有哪些方面,怎么避免差评,被差评了怎么解决
  14. 帆软数据决策系统漏洞_帆软报表漏洞总结
  15. python爬虫精进参考答案_高校邦数据科学创新通识课【Python爬虫】课后习题答案...
  16. SQL高效先进先出算法
  17. java判断车牌号,包含新能源
  18. fruit machine
  19. Flash开启自动运行指引(转载自QQ空间)
  20. 数字电路:硬件描述语言AHDL纵览

热门文章

  1. php验证支付回调,php对微信支付回调处理的方法(合集)
  2. jquery在html中显示文字居中,jquery单击文字或图片内容放大并居中显示
  3. Sqlserver2008相关配置问题
  4. android: 动态加载碎片布局的技巧
  5. 课后作业(因博客源问题,发的邮箱作业,重新提交博客园)
  6. 如何迁移mac电脑上的itunes备份iphone的文件
  7. VB.NET 通常用法使用笔记
  8. C语言学习4(数据的输入与输出)
  9. Persistence4j 1.1发布,Java ORM框架
  10. 深圳 | 腾讯 Robotics X 招聘语义视觉方向实习生和正式员工