Linux内核开发框架的学习资料说明

网络整理 2020-11-24 18:22:18 0评

资料大小:0.40 MB

所需积分:0

下载次数:0

  一、常见linux内核文件的区别

  1、vmlinux

  编译出来的最原始的内核文件,未压缩。

  2、zImage

  vmlinux 经过gzip 压缩后的文件。

  3、bzImage

  bz 表示“ big zImage”,不是用bzip2 压缩的。两者的不同之处在于, zImage 解压缩内核到低端内存(第一个640K),bzImage 解压缩内核到高端内存(1M 以上)。如果内核比较小,那么采用zImage 或bzImage 都行,如果比较大应该用bzImage。

  4、uImageU-boot 专用的映像文件,它是在zImage 之前加上一个长度为0x40 的tag。

  5、vmlinuzbzImage/zImage 文件的拷贝或指向bzImage/zImage 的链接。

  6、initrd

  “ initial ramdisk ”的简写。一般被用来临时的引导硬件到实际内核vmlinuz 能够接管并继续引导的状态。

  二、linux 内核源码目录结构

  1、arch 目录

  包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux 支持的体系结构, 例如i386 就是Intel CPU 及与之相兼容体系结构的子目录。PC机一般都基于此目录。

  2、include 目录包括编译核心所需要的大部分头文件, 例如与平台无关的头文件在include/linux 子目录下。

  3、init 目录包含核心的初始化代码(不是系统的引导代码) ,有main.c 和Version.c 两个文件。这是研究核心如何工作的好起点。

  4、mm 目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。

  5、drivers 目录是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动, 每一种有对应的子目录,如声卡的驱动对应于drivers/sound 。

  6、ipc 目录包含了核心进程间的通信代码。

  7、modules 目录存放了已建好的、可动态加载的模块。

  8、fs 目录存放Linux 支持的文件系统代码。不同的文件系统有不同的子目录对应, 如ext3 文件系统对应的就是ext3 子目录。

  9、Kernel 内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch/*/kernel 目录下。

  10、net 目录里面是核心的网络部分代码,其每个子目录对应于网络的一个方面。

  11、lib 目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/ 目录下。

  12、scripts 目录包含用于配置核心的脚本文件。

  13、documentation 目录该目录是对其它每个目录作用的具体说明。

相关文章

0个回复

我要评论

热门标签