第12讲_Linux内核结构与移植.pptVIP

  • 8
  • 0
  • 约3.71千字
  • 约 52页
  • 2020-03-25 发布于浙江
  • 举报
第十二讲 Linux内核结构及移植;Linux内核结构及移植;Linux内核结构及移植;Linux内核结构;Linux 内核可以划分成三层。 系统调用接口(SCI):实现了一些基本的调用功能,例如 read 和 write等。 内核代码:独立于体系结构的内核代码。这些代码是 Linux 所支持的所有处理器体系结构所通用的。 依赖于体系结构的代码,构成了通常称为 BSP(Board Support Package)的部分。这些代码用作给定体系结构的处理器和特定于平台的代码。; Linux内核的主要子系统;1)进程调度 2)进程间通信 3)内存管理 4)虚拟文件系统 5)网络堆栈 6)设备驱动程序 7)依赖体系结构的代码 ;内核通过系统调用接口SCI层提供API来创建一个新进程,停止进程,并在进程间进行通信和同步; 进程调度还包括处理活动进程间共享CPU的需求; 内核进程管理的源代码在“./linux-2.6.x/kernel”中; 依赖于体系结构的源代码在“./linux-2.6.x/arch”中。;支持进程间各种通信机制,包括管道、FIFO、共享内存、信号、消息队列、套接字等。 ;为了提高效率,如果由硬件管理虚拟内存,内存是按照所谓的内存页方式进行管理的(对于大部分体系结构来说都是4KB)。 Linux包括了管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。 内存管理模式使用4KB缓冲区为基数,从中分配结构,并跟踪内存页使用情况,根据系统需要动态调整内存使用。 内存管理的源代码在“./linux-2.6.x/mm”中。;虚拟文件系统(VFS)为文件系统提供了一个通用的接口抽象。VFS 在 SCI 和内核所支持的文件系统之间提供了一个交换层。 文件系统的源代码在“./linux-2.6.x/fs”中。 文件系统层之下的缓冲区可优化对物理设备的访问;缓冲区之下设备驱动程序接口。;网络堆栈在设计上遵循模拟协议本身的分层体系结构。Internet Protocol (IP) 是传输协议(通常称为传输控制协议 TCP)下面的核心网络层协议。TCP 上面是 socket 层,它是通过 SCI 进行调用的。 Socket层是网络子系统的标准API,为各种网络协议提供用户接口。从原始帧访问到IP协议数据单元(PDU),再到TCP和用户数据报协议UDP,socket层提供了一种标准化的方法来管理连接,并在各个终点之间移动数据。 内核中网络源代码在“./linux-2.6.x/net”中。;Linux 内核中有大量代码都在设备驱动程序中,它们能够支持特定硬件设备的运转。 Linux 源码树提供了一个驱动程序子目录,这个目录又进一步划分为各种支持设备,例如 DMA、I2C、USB 等。 设备驱动程序的代码可以在 “./linux-2.6.x/drivers”中。;尽管 Linux 很大程度上独立于所运行的体系结构,但是有些元素则必须考虑体系结构才能正常操作并实现更高效率。 ./linux-2.6.x/arch 子目录中定义了内核源代码中依赖于体系结构的部分,其中包含了各种特定于体系结构的子目录(共同组成了 BSP)。 ; Linux 内核的技术特点;Linux内核结构及移植;;Linux内核目录结构;arm;Linux源代码结构;linux-2.6.39:该主目录中包括所有的子目录,还含有唯一的一个Makefile文件。主要用途是通过识别哪些文件已被修改过,从而自动地决定在一个含有多个源程序文件的程序系统中哪些文件需要被重新编译。 linux-2.6.39目录下的这个Makefile文件还嵌套地调用了所有子目录中包含的Makefile文件。这样,当linux目录(包括子目录)下的任何文件被修改过时,make都会对其进行重新编译。 因此为了编译整个内核所有的源代码文件,只要在linux目录下运行一次make软件即可。 ;arch目录:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。在这个目录下,针对不同体系结构所移植的版本都有三个子目录:kernel、lib和mm。 kernel子目录包含依赖于体系结构实现的一般内核功能,如信号处理、时钟处理等; lib子目录包含库函数的本地实现,如果从依赖于体系结构的源码编译,则运行更快; mm子目录包含存储管理实现的代码。 ;3)block目录:存放部分块设备驱动程序。 4)crypto目录:存放常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。 5)Documentation目录:存放关于内核各部分的通用解释和注释。 6)drivers目录:存放设备驱动程序,每个不同的驱动占用一个子目录,如声卡的驱动对应于drivers/sound。这个目录拥有50%以上的内核源码,系统

文档评论(0)

1亿VIP精品文档

相关文档