没有合适的资源?快使用搜索试试~ 我知道了~
Linux2.6内核的定制.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 69 浏览量
2022-06-25
10:49:21
上传
评论
收藏 1.68MB DOC 举报
温馨提示
试读
26页
Linux2.6内核的定制.doc
资源推荐
资源详情
资源评论
一 内核结构
内核主要有五个子系统组成:进程调度,内存管理,虚拟文件
系统,网络接口,进程间通信。
进程调度(): 内核推出了一种内嵌 调度算
法的调度器,该算法在进程间切换时有恒定的时间复杂度 。该调度器
在进程调度性能、实时性、内核可抢占中发挥了极大的作用,迎合了嵌入
式的要求。
内存管理(): 操作系统支持虚拟内存,允许多个进程共
享内存区域,而 版本又引进了基于页的反向映射技术,显著地
改善了虚拟内存在一定负载下的性能。该技术提供了一个发现哪些进程正
在使用给定的内存物理页的机制。
虚拟文件系统()虚拟文件系统使 安
装和支持不同类型的文件系统成为可能。它对 的每个文件系统的所
有细节进行了抽象,使得不同的文件系统在 内核及其进程看来都是
相同的。
网络接口( !)网络向来都是 引以自傲的强项,它提供了对
各种网络标准的存取和各种网络硬件的支持。
进程间通信("#) 不但支持单个计算机进程间的通信,而且支
持基于 $%& 的进程间通信
这五个子系统除了各自完成自己的功能外,还是相互依赖功能完成
内核应有的义务。在多道程序环境下,程序要运行必须要进程调度 ,
而进程调度的第一件事就是通过内存管理为程序和数据分配内存;进程间
通信中的共享内存通信机制则需要内存管理的协助;虚拟文件系统是在网
络接口的基础上来支持网络文件系统( )。 内核个子系统及其
依赖关系开用图 '(' 来表示。
图 '(') 内核子系统及其以来关系
内存管理
虚拟文件系统
文件系统 进程调度 进程间通信
网络接口
二 内核源码目录结构分析
在 的内核源码一般都安装在 **%* 目录下,在安装
发行版本,如 +,)、- 等过程中我们可以选择是否安装
内核源码。对 内核的研究,当然首先要对其源码目录结构了解
一下。不同版本的 内核其源码组织结构没有多大的差别,都是以树
形结构组织的,但本次分析以 . 为例。 内核源码的结构
目录(简单的树形结构图见附录 /)如下:
%0 目录
此目录下包括了所有与体系结构有关的核心代码,其下的每一个子目
录都代表一种体系结构。 支持众多的处理器体系结构,主流的有
1 系列处理器、 系列的处理器、2 体系结构处理器。这些体系
结构在本目录下都有其对应的子目录。每一个子目录下又至少包含三个子
目录:&,存放支持体系结构特有的诸如信号处理和 # 之类特征的
实现;-,存放高速的体系结构特有的诸如 和 %2 之类的通
用函数的实现;,存放了体系结构特有的内存管理程序的实现。除此
之外,大部分的体系结构子目录还包含了供附加特性或改进组织使用的其
他子目录。
#3" 4 文件
该文件中是 4# 版权声明。
5 ,$%$ 目录
这个目录下没有内核源码,是一些内核相关的文档,但是这些文档只
是对内核部分源码的解释和描述,有些内核模块该目录中并没有相应的文
档。
( ,6 目录
在这个目录中是系统所有的设备驱动程序。 又将这些驱动程序
分成不同的种类,每个种类存在不同的子目录中,如 %0 主要是字符设
备驱动程序,-$%& 主要是快设备的驱动程序,% 是 % 设备的驱动目
录, 是网络设备的驱动程序目录等等。而这些驱动目录有些是和处理
器体系结构相关的,如 7$$ 总线只是 89 特有,2% 也只是针对部分
平台的。
: ; 目录
该目录存放了 支持的文件系统代码和各种类型的文件操作代码。
其中的每一个子目录代表了一种文件系统,其中有 5 子目录存放 5
文件系统代码,; 目录存放了网络文件系统( )的代码。要指出的
是,在 ; 子目录中的网络文件系统代码是依赖于 ,6 目录下的
子目录中的网络驱动程序的。
%, 目录
该目录包含了编译内核所需要的大部分头文件。在建立交叉编译环境
时也用得到该目录下的文件。其下的子目录中的代码部分是与体系结构有
关的,而部分则是无关的。
<'=>格式的子目录是与体系结构有关的,它们每一个都对应 %0
目录下的一个子目录。每个子目录下的文件支持给定体系结构所必须的预
处理宏和短小的内联函数。这些内联函数全部或是部分的使用汇编编写,
而且在 或者汇编代码中都会用到这些文件。当我们编译内核时,系统将
建立一个 %,* 到给定体系结构特有的子目录的符号链接。
子目录中的文件多数是与体系结构无关的。其中包含了内核和
用户应用程序请求内核服务时所需要的常量和数据结构。在安装内核时,
这些头文件将被复制或链接到**%* 下,这样用户就可以很方便
的通过?%, 来实现内核服务的调用。
还有一些子目录也是与体系结构无关的,但其只是对内核来说是必须
的,对用户的应用程序没有必要。如 子目录(与网络子系统有关的头
文 件 ) , % 子 目 录 ( 与 " 控 制 器 和 " 设 备 有 关 的 头 文 件 ),
6,$ 子目录(与显卡和帧缓冲有关的头文件)。
@ 目录
包含了内核的初始化代码。其用来实现内核运行前的初始化工作。
1 2% 目录
该目录包含了内存共享、信号量及其它进程间通信的代码
. & 目录
该目录包含了 内核中最重要的部分。主要包括了进程调度
(%0,%)、进程创建( ;$&%)和进程销毁(%)等。这些代码
大多 是与体 系 结构无关 的,而 与体系结 构有关 的相关 代 码在 %0*=*
& 中可以找到。
- 目录
其下文件主要有两部份。其中 A% 文件中的函数能够在系统启动
时展开经过压缩的内核。其余的文件中是些对所有的内核代码都通用的函
数。有字符串和内存操作方面的函数等等。这些都是体系结构无关的代码。
与体系结构有关的相关代码在 %0*=*- 下可找到。
8" !8" + 目录
该目录存放了对当前版本 内核做出贡献的的人员列表。
&B 文件
顶层的 &B 文件是整个内核编译、配置的总体控制文件;位于
%0*=*下的 &B 文件是针对相应的体系结构的 &B 文件;位于
其他子目录下的 &B 文件则负责自己当前目录下的代码编译。
5C-, 文件
该文件在内核的编译时要用到。其中预定义了一些变量和目标,使内
核的编译和扩展很方便。
( 目录
该目录包含了所有的与体系结构无关的内存管理代码,如页式存储管
理、内存的分配和释放等。另外,与 新增的基于页的内存反向映
射技术的实现代码也在该目录下。在目录 %0*=* 目录下存放了和体
系结构相关的内存管理代码。
: 目录
该目录下是部分的网络相关代码,主要是高层的网络代码。这个层次
的代码可以根据数据包将数据传递给用户层的应用程序,或是丢弃数据,
或是在内核中使用。其下的子目录 %$ 中包含了大部分的网络协议都用到
的代码。特定的网络协议代码在相应的 子目录下如在 26( 子目录下
可以找到版本 ( 的 "# 代码,在 -$$0 子目录下可以找到有关蓝牙的代
码。
+8 文件
此文件中主要是内核及其编译配置方法简单介绍。
@+#+!" 4'/D4 文件
其内部是些有关报告 -9 的一些内容。
1%2 目录
其下包含了用于配置内核的脚本文件。
.%$ 目录
该目录下包含了一些内核本身加密所用到的加密 8#"。其中包括
(、: 等加密算法。
% 目录
该目录下主要是不同 安全模型的代码。
$, 目录
该目录下放的是声卡驱动和其他与声音相关的代码。
目录
此目录下的代码用于构建包含 $$ 文件系统映像的 %2$ 格式的归
档文件,用于早期用户空间。
在 内核源码目录中,与体系结构有关的源码,大多存放在 %0
目录下,但在 %, 目录下也有部分与体系结构有关的代码。虽说
. 内 核 源 码 的 大 小 达 之 多 , 但 是 ,6 目 录 就 有
,在 ,6 目录中的驱动代码很大一部分是不用而且没有必要编
译进内核的,只是在需要时编译或着是以模块的方式加载进内核。而且在
其它目录中实现的内核代码也并不是都要编译进内核的,由于 内核
的可定制、裁剪性,其实最后编译进内核的代码部分很少的。其代码之所
以这么大,也是为了支持更多的体系结构和硬件设备,为了提供更多、更
好的功能供内核用户定制、选择。
剩余25页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3650
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功