欢迎来到天天文库
浏览记录
ID:58801427
大小:1.68 MB
页数:120页
时间:2020-10-02
《嵌入式Linux操作系统第3章课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式Linux操作系统第3章基于Linux的嵌入式软件开发嵌入式软件结构1嵌入式软件开发流程2嵌入式linux开发环境3嵌入式系统引导代码4第3章基于Linux的嵌入式软件开发linux内核结构及移植5嵌入式文件系统及移植6linux设备驱动概述7设备驱动程序接口8linux设备驱动开发流程9linux内核结构及移植linux内核结构linux内核结构及移植Linux内核可以进一步划分成3层。最上面是系统调用接口,它实现了一些基本的功能,例如read和write。系统调用接口之下是内核代码,可以更精确地定义为独立于体系结构的内核代码。这些代码是Linux所支持
2、的所有处理器体系结构所通用的。在这些代码之下是依赖于体系结构的代码,构成了通常称为BSP(BoardSupportPackage)的部分。这些代码用作给定体系结构的处理器和特定于平台的代码。linux内核结构及移植Linux内核的主要子系统linux内核结构及移植Linux内核的主要子系统1.进程调度2.进程间通信3.内存管理4.虚拟文件系统5.网络堆栈6.设备驱动程序7.依赖体系结构的代码linux内核结构及移植进程调度SCI层提供了某些机制执行从用户空间到内核的函数调用。SCI实际上是一个非常有用的函数调用多路复用和多路分解服务。在./linux/kerne
3、l中您可以找到SCI的实现,并在./linux/arch中找到依赖于体系结构的部分。进程间通信支持进程间各种通信机制,包括管道、FIFO、共享内存、信号、消息队列、套接字等。linux内核结构及移植内存管理内核所管理的另外一个重要资源是内存。为了提高效率,如果由硬件管理虚拟内存,内存是按照所谓的内存页方式进行管理的(对于大部分体系结构来说都是4KB)。Linux包括了管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。linux内核结构及移植虚拟文件系统(VFS)VFS是Linux内核中非常有用的一个方面,因为它为文件系统提供了一个通用的接口抽象。VFS在S
4、CI和内核所支持的文件系统之间提供了一个交换层linux内核结构及移植网络堆栈网络堆栈在设计上遵循模拟协议本身的分层体系结构。回想一下,InternetProtocol(IP)是传输协议(通常称为传输控制协议或TCP)下面的核心网络层协议。TCP上面是socket层,它是通过SCI进行调用的linux内核结构及移植设备驱动程序Linux内核中有大量代码都在设备驱动程序中,它们能够运转特定的硬件设备。Linux源码树提供了一个驱动程序子目录,这个目录又进一步划分为各种支持设备,例如Bluetooth、I2C、serial等。设备驱动程序的代码可以在./linux/
5、drivers中找到linux内核结构及移植依赖体系结构的代码尽管Linux很大程度上独立于所运行的体系结构,但是有些元素则必须考虑体系结构才能正常操作并实现更高效率。./linux/arch子目录定义了内核源代码中依赖于体系结构的部分,其中包含了各种特定于体系结构的子目录(共同组成了BSPlinux内核结构及移植Linux内核的技术特点Linux内核最注重实用和效率:Linux内核被设计成分层的微内核,所以效率高,紧凑性强。Linux内核纯粹是一种被动调用服务对象。所谓被动是指Linux内核为用户进程服务的唯一方式是用户进程通过系统调用来请求在内核空间运行某个
6、函数。内核本身是一种函数和数据结构的集合,不存在运行的内核进程为用户进程服务。虽然Linux的确存在一种被称为内核线程的进程,但它并不是用来服务于用户进程的,仅仅作为系统自身的服务目的。linux内核结构及移植Linux内核的技术特点Linux内核采用虚拟内存技术,每个进程的虚拟内存空间为4GB。其中0-3G属于用户空间,称为用户段,3G-4G属于内核空间,称为内核段Linux最新的一个增强是可以用作其他操作系统的操作系统(称为系统管理程序)linux内核结构及移植linux的源代码结构linux内核结构及移植1.linux目录:该是源代码的主目录,在该主目录中
7、包括所有的子目录,还含有唯一的一个Makefile文件。该文件是编译辅助工具软件make的参数配置文件。make工具软件的主要用途是通过识别哪些文件已被修改过,从而自动地决定在一个含有多个源程序文件的程序系统中哪些文件需要被重新编译。因此,make工具软件是程序项目的管理软件。linux目录下的这个Makefile文件还嵌套地调用了所有子目录中包含的Makefile文件。这样,当linux目录(包括子目录)下的任何文件被修改过时,make都会对其进行重新编译。因此为了编译整个内核所有的源代码文件,只要在linux目录下运行一次make软件即可。linux内核结构
8、及移植2.arch目录:
此文档下载收益归作者所有