嵌入式Linux的体系结构及其内核分析_第1页
嵌入式Linux的体系结构及其内核分析_第2页
嵌入式Linux的体系结构及其内核分析_第3页
嵌入式Linux的体系结构及其内核分析_第4页
嵌入式Linux的体系结构及其内核分析_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式Linux的体系结构及其内核分析1嵌入式Linux系统的体系结构1.1嵌入式硬件1.2嵌入式软件2 Linux操作系统内核Linux内核的组成Linux内核进程状态分析2.3嵌入式Linux系统内核的裁减和移植1嵌入式Linux系统的体系结构由于Linux的独特优势,使越来越多的企业和科研机构把目光转向嵌入式 Linux的开发和研究上。嵌入式Linux(Embeded Linux)是指对Linux经过小型化 裁剪后,能够固化在容量只有几十万字节或几十亿字节的存储器芯片或单片机 中,应用于特定嵌入式场合的专用Linux操作系统。嵌入式系统主要分为两大部 分:嵌入式硬件和嵌入式软件。嵌入式硬

2、件部分主要由嵌入式处理器、储存器、 I/O端口和外围设备构成,嵌入式软件部分主要由嵌入式操作系统、设备驱动和嵌 入式应用软件构成。嵌入式Linux系统有两层含义,狭义的嵌入式Linux系统指的 是嵌入式Linux操作系统,广义的嵌入式Linux系统指的是基于嵌入式Linux操 作系统构建的嵌入式系统。嵌入式的体系结构如图1所示:嵌入式处理器嵌入式外围设备嵌入式硬件平台图11.1嵌入式硬件嵌入式系统的核心是各种类型的嵌入式处理器,嵌入式处理器与通用处理 器相比,具有很高的效率和可靠性,嵌入式系统趋于小型化。嵌入式处理器可以 分为以下几类:嵌入式微处理器(Embedded Microprocess

3、or Unit, EMU)。嵌入式微处理器 目前主要有ARM, Power PC, MIPS,Am 186/88,386EX, 68000等系列,嵌入式微处 理器的基础是通用计算机中的CPU。将微处理器装配在专门设计的电路板上, 只保留和嵌入式应用有关的母板功能,这样可以大幅度减小系统体积和功耗。嵌入式微控制器(Microcontroller Unit, MCU)。嵌入式微控制器目前主要 有 8051, P51XA, MCS-96/196/296, C166/167,MC68HC05/11/12/16 等系列。嵌入式 微控制器一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RA

4、M、I/O、串口、脉宽调制输出、A/D、D/A,、Flash RAM等各种必要功能和 外设。 DSP处理器(Digital Signal Processor, DSP)。嵌入式DSP处理器比较有代 表性的产品是TI的TMS320系列和Motorola的DSP56000系列。DSP处理器对 系统结构和指令进行了特殊设计,使其适合十执行DSP算法,编译效率较高, 指令执行速度也较高,在数字滤波、FFT、频谱分析等方面得到了大量的应用。嵌入式片上系统(System On Chip)。通用的SOC系列包括Infineon的 TriCore, Motorola 的 M-Core , Echelon 和

5、Motorola 联合研制的 Neuron 芯片等。 嵌入式片上系统指的是在单个芯片上集成一个完整的系统,所谓完整的系统一般 包括中央处理器、存储器、以及外围电路等。嵌入式外围设备是指在一个嵌入硬件系统中,除了中心控制部件 (EMU,MCU,DSP,SOC)以外的完成存储、通讯、保护、调试、显示等辅助功能的 其它部件。根据外围设备的功能主要可分为:存储设备类:静态易失型存储器(BAM, SEAM),动态存储器(DRAM),非易 失型存储器(ROM, EPROM, EEPROM, FLASH)。其中,FLASH容量大,价格便 宜,因而年在各领域都得到了广泛的应用。通信设备类:比较常用的有RS23

6、2接口(串行通信接口)、IrDA接口(红外 线接口)、I2C总线接口(现场总线接口)、USB接口(通用串行总线接口)和Ethernet 接口(以太网接口)。显示设备类:CRT,LCD和触摸屏等外围显示设备。1.2嵌入式软件一般情况下,嵌入式操作系统可以分为两类:一类是面向控制、通信等领域 的实时操作系统,如VxWorks, pSOS, QNX等;另一类是面向个人数字助理(PDA)、 移动电话、机顶盒等消费电子产品的非实时操作系统,如Windows CE、嵌入式 Linux, Palm OS等。嵌入式操作系统与一般操作系统相比,在系统实时高效性、 硬件的相关依赖性、软件固化以及应用的专用性等方面

7、具有较为突出的特点。 Linux操作系统在服务器和台式机上的应用已经有好几年了,并且在服务器操作 系统市场占据了相当的市场份额I、BM、戴尔、惠普、康柏、Oracle以及其他一 些知名的企业都对Linux表现出了信任的态度。但是,桌面系统仍是Windows 的天下,在嵌入式领域,Linux却是飞速地发展用户的操作通过一组标准化的调用执行,设备驱动负责将这些调用映射到作 用于实际硬件设备特有的操作上。嵌入式应用软件和普通应用软件有一定的区别,它不仅要求其准确性、安全 性和稳定性等方面能够满足实际应用的需要,还要尽可能地进行优化,以减少对 系统资源的消耗,降低硬件成本。嵌入式应用软件是针对特定应用

8、领域,基于某 一固定的硬件平台,用来达到用户预期目标的计算机软件。近年来嵌入式应用有 了很大的发展,特别是由于专用嵌入式系统的开发,一些嵌入式OS和中间支撑 软件得到了应用,从而提高了嵌入式应用软件的兼容性,代码的可重用性。2 Linux操作系统内核Linux源代码的开放为修改和更新标准Linux内核代码,开发适合于目标平 台的嵌入式Linux内核以及驱动程序提供了良好的机会,但这一切都必须建立在 熟悉Linux内核结构和工作原理的基础之上。硬件无关的操作系统内核层也就是 Linux内核层,该层发挥操作系统的核心功能,实现文件系统、驱动程序、网络 支持等很多功能。2.1 Linux内核的组成L

9、inux内核按功能划分为5个部分:内存管理、进程管理、网络接口、设备 控制和文件系统。内存管理内存管理模块用于确保所有进程能够安全地共享机器主内存区,同时内存 管理模块还支持虚拟内存,将暂时不用的内存数据块交换到外部存储设备上去, 当需要时再交换回来,这样使得Linux的进程可以使用比实际内存空间更多的内 存容量。内存管理从逻辑上分为硬件无关部分和硬件相关部分。硬件相关的部分 为内存管理硬件提供了虚拟接口;硬件无关部分提供了进程的映射和逻辑内存的 对换。进程管理进程管理模块负责创建和销毁进程,并且采用合适的调度策略对进程进行调 度,控制进程对CPU的访问,使得各个进程能够公平合理的地访问CPU

10、,同时保 证内核能够及时地执行硬件操作。除此之外,进程管理还支持进程间各种通信相 制。 网络接口网络接口提供了对各种网络标准协议的存取和各种网络硬件的支持。网络接 口可分为网络协议和网络驱动程序两部分。网络协议部分负责实现每一种可能的 网络传输协议,网络设备驱动程序负责与硬件设备进行通信,每一种可能的硬件 设备都有相应的设备驱动程序。设备控制几乎每一个系统操作最终都会映射到物理设备上。除了 CPU、内存以及其他 有限的几个对象外,所有设备控制操作都由与被控制相关的代码即驱动程序来完 成。内核通过为系统中的每个外设嵌入相应的驱动程序,来对硬盘驱动器、键盘 和鼠标等设备提供支持。文件系统文件系统管

11、理模块用于管理挂接在系统上的文件系统以及文件。Linux虚拟 文件系统VFS(Virtual File System)通过向所有外部存储设备提供一个通用 的文件接口,隐藏了各种硬件设备的不同细节,从而提供并支持多达数十种不同 的文件系统。2.2 Linux内核进程状态分析Linux是一个多进程的系统,与Windows多线程不同,因此进程各种状态的定 义十分重要,它是进程状态分析的基础。进程各种状态的定义见下表2所示:表2进程状态定义进程状态英文对照状态描述运行态Running进程正在或准备运行。进程被标示为运行态,可能 会被放到可运行进程队列中了。之所以出现这种情 况,是因为Linux中标示和

12、入列并非原了操作。可 以认为进程处于随时可以运行的(准备)就绪状态。可唤醒阻塞态Interruptible进程处于等待队列中,待资源有效时被激活,也可 由其他进程通过发送信号或者由定时器中断唤醒后 进入就绪队列。不可唤醒阻塞态Uninterruptible进程处于等待队列中,待资源有效时被激活,不可 由其它信号或定时器中断唤醒。僵死状态Zombie进程己经结束运行且释放大部分资源,但尚未释放进程控制块。停滞状态Stopped进行运行停止,通常是由进程接收到一个信号所致。当某个进程处于调试状态时也可能被暂停运行。进程状态变化是十分复杂的,进程状态转移情况见下面的分析:无到创建:一个新的进程被创建

13、用于执行一个程序。创建到就绪:当操作系统可以执行其它进程时,它会首先将以前创建的 进程转为(准备)就绪状态。大多数操作系统都会对存在的进程数或者给它们分配 的虚拟内存空的大小有某些限制,以确保系统性能不至于降低。:(3)就绪到运行:当轮到某个处于(准备)就绪状态的进程运行时,操作系统 会将其状态转换为运行态。究竟哪个进程被选择运行,需要依据一定的控制算法。运行到退出:当某个进程已经完成自身的任务或者因为某种原因终止了 的话,操作系统会将其状态从运行状态转换为退出状态。运行到就绪:事实上在现代操作系统中,尤其是在单处理器系统中,系 统并非是在一直执行某个进程,而是往往分配给每个进程一个处理器时间

14、片,在 这个时间片里,进程完全占有处理器。这样,在大多数情况下,一个处十运行状 态的进程往往是因为操作系统分配给自己的时间片己经耗尽,需要从运行状态退 出,一般的处理方法是按照超时处理将其状态转换为(准备)就绪状态。运行到阻塞:当一个正在运行中的进程需要某个事件发生后才能继续运行 时,操作系统将其状态从运行状态转换为阻塞状态。这样操作系统可以运行其它 进程。阻塞到就绪:当某个处于阻塞状态的进程被告知它所等待事件已经发生 之后,其状态就会被操作系统从阻塞状态转换为(准备)就绪状态,以便其下次继 续运行。其Linux状态转移图3如下:图3 Linux状态转移图2.3嵌入式Linux系统内核的裁减和

15、移植Linux内核的代码是高度模块化的,内核的许多功能和成分都可以通过条件 编译加以取舍和裁剪,有些成分还可以独立编译成可以动态安装的“可安装模 块”。经修改过和扩充的各种嵌入式Linux保留了这个特点,所以从同一个修补 版,还可以再根据具体的需要裁剪、编译出许多不同的可执行映像。标准Linux 内核功能十分强大,但对于针对特定应用并且资源受限的嵌入式系统来说过于庞 大,因此,需要将标准Linux内核根据目标平台的情况进行裁减和移植,使其成 为适合目标平台的嵌入式Linux内核。Linux内核当前支持三种配置方式:基于命令行的问答式。此配置方式通过make config命令启动,针对每一个 内

16、核配置选项会有一个提问,用户可以根据需求来给出答案,Y代表在内核中包 含此项内核特性,m代表此项内核特性作为模块编译(编译但不链入到内核镜像 中),n代表不对该特性提供支持。基于字符的菜单式。此配置方式通过make menuconfig命令启动,用户可以 通过一个字符配置菜单对内核进行配置。基于图形的菜单式。此配置方式通过make menuconfig命令启动,操作方式 与第二种方式相似,界面更加友好,但需要X windows系统的支持。课题采用的是第二种内核配置方式,根据硬件设备的具体情况进行的关键配 置有:对系统类型(System Type)的配置时,选中ARM920T-base选项和 S3C2410-base选项;对存储设备(Memory Technology Devices)配置时,选择支持 MTD驱动以及NAND FLASH驱动;对文件系统(File System)配置时,选中对 CRAMFS文件系统的支持。当根据系统需求配置好内核,退出配置菜单时,系统会询问是否需要保存修 改后的内核配置。若选择不保存,则进行的所有配置

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论