基于Linux嵌入式操作系统的研究
基于Linux系统中嵌入式GUI的研究与分析
个 能够移植到多 种硬件平 台上的嵌入 式 G 系统 , UI 应
用 至 少抽 象 出 两类 设 备 : 于 图形 显 示 设 备 ( VG 卡 ) 图 基 如 A 的 形抽象层G AL( a hcA src L y r , 于 输 入 设 备 ( Grp i b tat a e) 基 如键
1 嵌入式G UI的系统 架构
1 1 基 于嵌 入 式 Ln x的 G . iu UI系统 底 层 实 现 基 础
一
者 函数库 ) 一般作 为其他 高级 图形 或者 图形应 用程 序的基本
函数 库 。 些 系 统 ( 者 函 数 库 ) 要 包 括 :V 这 或 主 S GAl 、 iGGI i Lb b 、 Xwid 、 rmeb f r , 述 如 下 : n o F a uf 等 详 e
122 S _ . VGAl i b
盘, 触摸层 等) 的输入抽 象层 I Ip tAbtatL yr , AI(n u s c a e ) 如 r
图1 示 : 所
抽 象 层 的 概 念 类 似 Liu 内 核 虚 拟 文 件 系 统 的 概 念 , nx 定
引 言
近年 来 , 入 式 系 统 取 得 了迅 猛 的 发 展 , 消 费 类 电 子 产 嵌 在
接 口。AI 层则 需要实现对于各类 不同输 入设备的控 制操作 , I
提供 统 一 的 调 用 接 口。GAL层 与 I 层 的 设 计 概 念 , 以 极 AL 可 大 程 度 地 提 高 嵌 入 式 GUI 可 移植 性 。而 用 于 实 现 这 一 抽 象 的
F a u fr等 。 r meb fe
G 应 具 备 高 度 可 移 植 性 与 可裁 减 性 、 层 接 口与 硬 件 无 关 、 UI 上
嵌入式Linux操作系统通信管理机的设计研究
操作 系统也在不断 的更新换代 ,以及进行技术
改进 ,在不断的改 进和更新 发展中 ,L i n u x操 作 系统具有这些特点 :
4 小 结
嵌入式 L i n u x操作 系统在通信管理机 中的 面我们 就研 究基于嵌入式 L i n u x操作系统的通 使用 ,体现了它的优势,保证 通信管理机 的整 信管理机 的设计 。 ( 1 )L i n u x 操 作系 统具 有 开放 性。该 操 体稳定运行 ,可以满足用户的各项需 求,为 自 作系统必须坚持的一个原则就是开放性 ,要保 3嵌入式L i n u x 操作系统通 信管理机 的设 动化控制系统的安全运行提供 了很好 的技术保
在信 息技术的不断 发展 中 ,嵌入式 L i n u x
理机接 口丰富 ,而且很容易进行扩展 ,其 中兼 L i n u x 操作系统 的基 础上对其 内核 的文件系统 容的总线可以对众多设备进行管理 ,并有很多 进行制定和删减 ,通信管理机 的上层软件则是 的接 口,实现通信管理机和 外部设备之 间的连 实 现 通 信 口协 议 的 解 释 ,通 过 动态 的链 接 库 , 接 ,保 证 通 信 管 理机 可 以 同 时进 行 网络 下 载 和 对通信管理机的各种标准通信规约程序进行集 系统的调试。 成。 以嵌入式 L i n u x操作系统为基础 的通信管 通信 管理机 的 硬件平 台是 P C1 0 4总 线, 理机在 支持多种通信方式时 ,还可以对通信协 P C 1 0 4总线为 用户提供数据 、地址 以及控制总 议进行独立编制 ,不需要对通信组件的核心程 线 ,而通信管理机的外围模 块设计 采用的 3片 序进行 修改,为用户提供 了很大的开放性。通 T L1 6 C 5 5 4 A,进而实现 了多 串口扩展芯片、控 信管理机在应用 系统 中担任着重要的角色 ,有 制器等的通信功能。通信管理机采用的是大屏 很多的功 能作用 ,可 以根据实 际的工作需求 , 幕液 晶显示和小键盘操作 ,所以可 以实现对系 进行各 种系统之 间的搭建 组合 [ 3 ] 。所 以嵌入 统参数 的随时查看和修改 ,通信管理机的所有 式L i n u x操作 系统可以实现通信管理机的各项 通信 口都设置 了光 电隔离措施和防雷电措施, 具有 很高 的电磁兼容性 [ 2 ] 。但是 通信管理 机 只有硬件是不 能工作 的,他必须有一个吃撑它 的软件 ,才可 以完成整个嵌入式完成产品。下
基于ARM—Linux的嵌入式系统开发平台教学实验研究
从事的行业具有较高 的行业幸福感 。作为 向社会输送 人才 的各大高校 ,也紧跟I 技术发展潮流 ,面 向市场 T 需求,相继开设 了嵌入式系统开发课程 ,并积极 引导 学生参加各种形式 的嵌入式设计大赛等活动,提 高学
生 的综 合 能力 ,提 升 学 生 的 培 养质 量 ,增 强 学生 的就 业竞 争 力 。
的 平 台 可 以 选 用 ¥ C 4 0 S C 4 0 理 器 。 由于 3 4 B 或 3 2 l处
工程个人情况 、嵌入式行业 公司的基本情况 、嵌入式 工程师对职业生涯的看法、嵌入式 工程师对参加培训 的看法等几个方面进行 了调查研 究,结果表 明,嵌入 式公司行业分布广泛 ,嵌入式工程 师具有很 高的 自我
子板形式的G R 模块 电路和G S P S P 模块 电路等 ,同时, 该平 台也提供 了丰富的接 口,包 括1 0M以太 网接 口,
US 接 口电路 ,2 'S 3 串行 口,I 音频 信 号 接 口, B - R 22  ̄ I S 2 C N接 口, 1 ̄D 硬 盘 接 口, l' C 扩 展 插槽 和 1 个 A )IE dP I  ̄ 个P 2 口,C 存 储 卡 接 口 ,S 卡 接 口等 。 同时 , 开 S接 F D
关键 词 :AR —iu ;嵌 入 式 系 统 ;实 验 教 学 M L nx
Te c n x e i e t e e r h o mb d e yse e e o me t a f r b s d o a hi g e p rm n s a c fe e d d s tm d v l p n to m a e nARM - n x r pl Li u
2 1年 第1期 02 1 总第1 7 4 期
中 砚代 装 国 孝 备
基于Linux的嵌入式系统设计与实现
L 2 07 0 是一种 基 于A M体 系结构 的 ,用于 高端 嵌 7 0/2 5 R
入式设备硬 件平 台。采用AR 70为 中央处理器 ,具 有 自己 M 2 的数 字协处理 器 ,D MA数据通道 ,彩 色L D显示器 ,调 制 C
解 调器 ,lMB可擦 写内存 。除 了存储器 ,几乎与现代P 6 C结
Ln x 一个和Unx iu 是 i相似 、以 内核为基 础 的、具 有完 全
有特殊 的需求 。LLnx 南京 大学与美 国LnU 公 司、 中 -i 是 u i p k 国海 信 集 团3 家合 作 的科 研 项 目。希 望在 Ln Up L 2 0 ik 的 7 0 ,
L 2 5 发 系统上 ,类 似Wi o E功能 ,构 建一个 完 整 70开 n ws C d
Lnx i 的嵌入式操作系统及其 上层GUI u 环境。 关键词 :嵌入式系统 ;Ln x iu ;图形 用户界 面
De i n & I l m e t to f n Em b d d O S Ba e n Li u sg mp e n a i n 0 a e e s d0 n x
构 完全相同。
L 2 07 0 支持 的嵌 入式 操作 系统 包括 Wid w E 7 0 /2 5 no sC 。
高端嵌入式系统要求许多诸如 图形 用户界而和 网络支持之 类 的功能 ,大多数 原始 的软 件 支撑 平 台不 具备这个 功能 。微 软 的Wid w E已有此类功 能 ,但 不具备 大多数嵌 入式 系 no s C 统要求 的实时性 能 。嵌 入式Ln x iu 操作 系统 以价格低 廉、 功
r q r m e f h i u W eas s h s e hnqu st m pe n n e b d d os a d ishi e e . e uie nto t e L n x. lou et e et c i e oi lme ta m e de n t ghlv l UI
天津科技大学嵌入式操作系统---第3章 基于linux的嵌入式软件开发
18:19
4
3.1.1 嵌入式软件体系结构
18:19
5
1. 设备驱动层
设备驱动层是嵌入式系统中必不可少的重 要部分,使用任何外部设备都需要有相应 驱动程序的支持,它为上层软件提供了设 备的操作接口。 上层软件不用理会设备的具体内部操作, 只需调用驱动层程序提供的接口即可。 驱动层一般包括硬件抽象层HAL、板级支 持包BSP和设备驱动程序。
18
3.2.2 基于开发板的二次开发
所谓二次开发是利用现成的开发板进行开发,不同于通用 计算机和工作站上的软件开发工程,一个嵌入式软件的开 发过程具有很多特点和不确定性。其中最重要的一点是软 件跟硬件的紧密耦合特性。 由于嵌入式系统的灵活性和多样性,这样就给软件设计人 员带来了极大地困难。第一,在软件设计过程中过多地考 虑硬件,给开发和调试都带来了很多不便;第二,如果所 有的软件工作都需要在硬件平台就绪之后进行,自然就延 长了整个的系统开发周期。这些都是应该从方法上加以改 进和避免的问题。 为了解决这个问题,通常的做法是基于某种开发板做二次 开发,从这个角度看,硬件开发所占的比重不到20%,而 软件开发的比重占到了80%。
3.1 嵌入式软件结构 3.2 嵌入式软件开发流程 3.3 嵌入式linux开发环境 3.4 嵌入式系统引导代码 3.5 linux内核结构及移植 3.6 嵌入式文件系统及移植 3.7 linux设备驱动概述 3.8 设备驱动程序接口 3.9 linux设备驱动开发流程
18:19 3
3.1 嵌入式软件结构
?在嵌入式开发中经常要面对设备驱动程序的开发嵌入式系统通常有许多设备用于与用户交互象触摸屏小键盘滚动轮传感器在嵌入式开发中经常要面对设备驱动程序的开发嵌入式系统通常有许多设备用于与用户交互象触摸屏小键盘滚动轮传感器rs232接口lcd等等
嵌入式Linux系统的研究与应用
入 式
广
L 系统的研究与应用 iu nx
R s a c n p 1 c t n f E b d e i U y t m e e r h a d A p a i o m e d d L f X S s e i o l
肖 红
Xa o gi o H n
了要求 , 这使得嵌入式设 备不再是孤 立的 。它们要 通过互联
网 、 线或是其他 的方式 实现相 互连接 , 无 同时它 们也是 软件
生态系统 (o t a e e o y t m 的~部 分。 初的嵌入 式设 s f w r c s s e ) 最
泛的应用, 出现 了数量可观的嵌入式 L 并 i
系统 。其 中有
一
足 1B并且 同样稳定 。 M, 另外, 它与多数 Ui 系统兼容 , nx 应用 程序 的开发和移植相 当容易 。同时, 由于具有 良好的可移植 性, F X{  ̄成功使 Lnx运行于数百种硬件平 台之上 嘲 J iu 。
然而, i u L n x并非 专门为实时性应用而设计, 因此 如果 想 在对实 时性 要求较高 的嵌人 式系统 中运 行 L n x 就必须 iu , 为之添加实时软 件模块 。 些模 块运行 的内核 空间正是 操作 这 系统 实现进程调度 、 中断处理和程 序执行 的部分 , 因此错误 的代码可能会破坏操 作系统, 进而影 响整个 系统的可靠性和
s t t hn og an i tr uce t e ed d ys em ec ol y d n od d he mb de Li x ese rc an th us ge nu r a h d e a
.
Ke wo d E b d e ; Li u ; O e a i g S s e y r s: m e d d nx p r t n y tm
嵌入式Linux操作系统的研究
嵌入式Linux操作系统的研究作者:陈国强来源:《计算机光盘软件与应用》2014年第01期摘要:随着当前计算机技术的不断发展,嵌入式系统应用领域越来越广泛,尤其是Linux 操作系统在产业发展中起着举足轻重的作用。
Linux操作系统内核具备进程管理、文件管理、储存管理以及内核调度等功能,同时基于Linux应用环境前提下,在不同系统芯片硬件平台上,嵌入式Linux操作系统能够实现运行,通过进程调度以及文件设计等模块满足不同开发板与应用需求。
本文主要通过介绍嵌入式Linux操作系统的基本功能,从而具体阐述嵌入式Linux操作系统的设计。
关键词:操作系统;Linux;嵌入式操作系统中图分类号:TP316嵌入式操作系统作为嵌入式系统的关键内容,通过控制系统资源,提供开发应用程序,体现了嵌入式系统的外在功能。
笔者综合自身多年来的实践经验,结合嵌入式Linux操作系统的功能以及机理,详细研究与分析其在嵌入式领域应用的完善方法。
1 嵌入式Linux操作系统概述1.1 嵌入式系统内涵。
嵌入式系统在发展初期主要是以微处理器的形式而存在的,随着科学技术的不断发展,嵌入式系统已经渗透到了人们的工作、生活以及娱乐等方方面面。
从本质上来讲,嵌入式系统将复杂的软件与硬件进行紧密耦合,从而形成一个全新的计算机系统。
“嵌入式”即在各个完整的系统中吸纳一部分优越系统,将这些系统进行整合。
而就这些嵌入的系统本身而言,一般存在多种嵌入式系统。
在现阶段,随着微处理器制造技术的深入发展,嵌入式处理器制造取得了巨大的发展。
在系统硬件上,主要考虑价格、性能以及能耗等因素,其关键部分是应用软件与系统软件。
但是由于储存空间存在局限性,因此嵌入式系统对实时性要求越来越严格。
1.2 嵌入式Linux操作系统。
Linux主要是指开放源代码,一般包括四个方面:一是内核,二是系统工具,三是开发环境,四是Unix类操作系统。
Linux作为一个现代操作系统,其性能可靠、稳定,主要具备七个特征:第一,满足国际通用标准规范;第二,具有可移植性,灵活性强;第三,整个系统性能卓越;第四,在某种程度上动态链接能力强;第五,系统网络特征鲜明;第六,兼容性强大;第七,系统能够包容大容量用户,任务能力优越。
嵌入式Linux系统开发教程实验报告
嵌入式实验报告:学号:学院:日期:实验一熟悉嵌入式系统开发环境一、实验目的熟悉Linux 开发环境,学会基于S3C2410 的Linux 开发环境的配置和使用。
使用Linux的armv4l-unknown-linux-gcc 编译,使用基于NFS 方式的下载调试,了解嵌入式开发的基本过程。
二、实验容本次实验使用Redhat Linux 9.0 操作系统环境,安装ARM-Linux 的开发库及编译器。
创建一个新目录,并在其中编写hello.c 和Makefile 文件。
学习在Linux 下的编程和编译过程,以及ARM 开发板的使用和开发环境的设置。
下载已经编译好的文件到目标开发板上运行。
三、实验设备及工具硬件::UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。
软件:PC 机操作系统REDHAT LINUX 9.0+超级终端(或X-shell)+AMR-LINUX 开发环境。
四、实验步骤1、建立工作目录[rootlocalhost root]# mkdir hello[rootlocalhost root]# cd hello2、编写程序源代码我们可以是用下面的命令来编写hello.c的源代码,进入hello目录使用vi命令来编辑代码:[rootlocalhost hello]# vi hello.c按“i”或者“a”进入编辑模式,将上面的代码录入进去,完成后按Esc 键进入命令状态,再用命令“:wq!”保存并退出。
这样我们便在当前目录下建立了一个名为hello.c的文件。
hello.c源程序:#include <stdio.h>int main() {char name[20];scanf(“%s”,name);printf(“hello %s”,name);return 0;}3、编写Makefile要使上面的hello.c程序能够运行,我们必须要编写一个Makefile文件,Makefile文件定义了一系列的规则,它指明了哪些文件需要编译,哪些文件需要先编译,哪些文件需要重新编译等等更为复杂的命令。
嵌入式Linux操作系统实时性的分析与研究
2 Lnx 实时性方面的局限 i 在 u
Ln x 然 已经 被 成 功 的 应 用到 了 掌 上 电 iu 虽 脑 , 动电话 , 移 音频 娱乐等 设备 。但是 在对 实 时性要 求较高 的领域如航 空 , 医疗 汽车 , 业 工 控制等领域还是 无法直 接应 用。目前的 Ln x iu 虽然提供 了一些实时处 理的功 能 , 包括 P I OS X 中的实时 功能 , 支持多任务 多线程 , 有丰富 也 的通信机制 。也 提出了实时 调度策略 , 并且 在 最近的 L n x . i u 2 6版本 中, i u L n x内核可以被 抢 占。即 使这样 , 对于要求较 高的实时 性来说 还 有 一 些 差 距 。作 为一 个 实时 操 作 系 统 , Ln x仍然存在如下局限 : iu () 1在定时器方面 , 有下列 儿方面缺陷 : 第 L n x的周期模式定时器频率仅为l 0 z iu H , 0 远 不能满 足多种实时应 用的要求。第 一 , 二 软定 时 由时钟定时 器完成 , 当软定 时器较 多时 , 势 必 引起 共享时钟 定时 器的冲突 。第三 , i u Ln x 中断句柄不 可调度 , 在实时 系统中 , 望能 但 期 在一 个可 调度整体内处理这些 中断句柄 , 从而 能更有效 的区分不同实时任务 的紧迫 度 , 分配 不同的优先级 。因此 , 单纯缩短 时间片在对实 时性能 严格要 求的场合是不受欢迎 的。 第四 , 增加系统负荷。 () iu 2Ln x进程采用 多级轮 转调度算法 , 该
维普资讯
Q ! Q Q :
Sc en and i ce Techn og I nova i Her I ol y n t on ad
T 技 术
嵌入式 I n x操作 系统实时性 的分析与研 究 _ u i
嵌入式Linux操作系统实时性的研究
、
引言
或 间接 唤起 的 ,它是进程调度 的重要依据 。Ln x的周期模 iu
式 定 时 器 频 率 仅 为 10 ,使得 其 时 间 粒 度 过 大 ,加 大 了任 0 Hz 务 响应 延迟 ,远不能满足 实时应用的要求 。 3 iu .Ln x采用对 临界区操作 时屏蔽 中断的方式 ,在 中 断 处理 中是不允许进行任 务调度的 , 从而 抑制 了系统及时响 应 外部操作 的能力 。 4 .缺 乏有 效的实时任务调度机 制和调度算法 。 5 iu .Ln x虽然给 实时进程提供 了较 高的优先 级 ,但是 没有加 入时间 限制 。例如 :完成 的最 后期限 、应在多长时 间
响。
常要求 在一个特定 的时刻进行 任务切换 , 计时的错 误将导致 背 离计 划的调度 ,引起任务释放抖 动。标 准 Ln x系统 时钟 iu 精度太 过粗糙 ,时钟 中断周期为 1 ms 0 ,不能满足特定嵌入 式应用 领域 中对于 响应 时间精度的要求 。 因此 , 实时 Ln x 在 iu 应用 中,需要细化其 时钟粒 度 , 具体有 两种 方式可 以解决时 钟粒度 问题 : ( )通过直接修 改内核定时参数 Hz的初 值来细化时钟 1 粒度 ,如将 标准 L n x中内核定时参数 H iu z改为 10 0 0 0 ,则
时 钟 粒 度 可 以达 到 10 s 0  ̄ ,这 种 方 式 虽 然 会 增 加 一 些 系 统 开
三 、L n x 在 实 时 应 用 中的 技 术 障碍 iu 尽管 Ln x本 身提 供了一些支持 实时性 的机制 , iu 但是 由 于其最初的设计 目标为通用 分时操作系统 , 并且 Ln x系统 iu 是 以高的吞吐量和 公平 性为追求 目标 , 基本上没有考虑 实时 应用所要满足 的时 间约束 , 它只是提供 了一 些相对简单 的任 务调度策略 。因此 ,实时性 问题是将 Ln x应用于嵌入式系 iu 统 开 发 的 一 大 障 碍 , 法 在 硬 实 时 系 统 中 得 到应 用 , 为 ~ 无 作 个实时操作系统 ,Ln x仍然存在 如下缺陷 : iu 1 iu .Ln x的内核是不可抢 占的。Ln x分 为用户态和核 iu
基于Linux2.6嵌入式系统实时性研究
Ke wo ds y r :Emb d e ;Re l i e o a c ;Ken l edd a—t me P r r n e f m r e
1概 述
的, 内核就可以在任何 时间抢 占正在执行 的任务 。在 L x. i 2 6系
(调 ) 与 随着计算机 、 通信等技术 的迅速发展 , 工业 自动化的水平 也 统 中最显著 的特点就 是引入 了内嵌 0 1 度算 法 的调 度器 , 24调 度 器 相 比 , 论 是 在 调 度 性 能 、 时 性 . 核 抢 占 , 是 . 不 实 、 内 还 越来越高 。嵌入式系统 的应用在其 中起到 了举足轻重的作用 , 同
嵌入式Linux操作系统教学模式探讨及创新课题实践
系统 的教 学特 点和 实 践教 学模 式依 然处 于探 索阶 段 。
一
、
嵌 入式 Lnx操 作 系统课 程特 点 i u
嵌 入式 Ln x 操 作系 统 是一 门综合 性 很高 的 电气 类专 业 课 iu
学 的 目的是想 帮助 异地 的表 妹 学习数 学 , 在 自己的衣帽 问用 雅 他
参 考文 献 :
[] 奕标 . 息技 术何 以未 能有 效 变 革教 育的 框 架分 析 [ . 1t 信 J教 ] 育 学人 大复 印报 刊 资料 , 1 , 2 25 0
[】 治 文 . 远 程 教 育 中 的 心 理 距 离 因素 【 . 国 远 程 教 2王 论 J中 ] 育, 0, 2 51 0 2 [] 国远 程教 育 网.t: w . yeutm 3中 hp/ wc cd . t 1 w n o [] 动 百科 . 汗学 院.t:w wh dn . m 4互 可 hp/ w . ogc t / u o
案 并实 现 。然 而随着 市场 上 试验 平 台的 日益丰 富和 完善 ,很 多需 在 L D 的显示 屏上 。 C
要 学 生 自己动 手 才 能 实现 的 功 能 ,都 能 找 到相 对 应 的模 块 来代
替 ,学 生只 需 要根据 模块 的说 明来操 作 ,就可 以轻松 达 到实 验要
生 了 “ 汗学 院 ” 可 。
系 统 ,在 解 放学 生 时 间 、空 间的 同时 如 还能 有效 地 控 制学 生 的学 习进度 、保证 学 习效果 必会 潜 力 巨大 ,影 响 深远 ,甚 至会 对 整个
社会 的教育 变 革产 生极大 的促 进作 用 。
嵌入式linux实验报告
嵌入式操作系统Linux实验报告专业:计算机科学与技术班级:13419011学号:1341901124姓名:武易组员:朱清宇实验一Linux下进程的创建一实验目的1.掌握Linux下进程的创建及退出操作2.了解fork、execl、wait、waitpid及之间的关系二实验内容创建进程,利用fork函数创建子进程,使其调用execl函数,退出进程后调用wait或waitpid清理进程。
三实验过程1.进程的创建许多进程可以并发的运行同一程序,这些进程共享内存中程序正文的单一副本,但每个进程有自己的单独的数据和堆栈区。
一个进程可以在任何时刻可以执行新的程序,并且在它的生命周期中可以运行几个程序;又如,只要用户输入一条命令,shell进程就创建一个新进程。
fork函数用于在进程中创建一个新进程,新进程是子进程。
原型如下:#include<sys/types.h> /* 提供类型pid_t的定义 */#include<unistd.h> /* 提供函数的定义 */pid_t fork(void);使用fork函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个进程的地址空间fork系统调用为父子进程返回不同的值,fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值:在父进程中,fork返回新创建子进程的进程ID;✓在子进程中,fork返回0;✓如果出现错误,fork返回一个负值;用fork创建子进程后执行的是和父进程相同的程序,子进程可以通过调用exec函数以执行另一个程序。
当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程(例如其m a i n函数)开始执行。
调用e x e c并不创建新进程,进程I D并未改变,只是用另一个新程序替换了当前进程的正文、数据、堆和栈段。
e x e c函数原型execl,execlp,execle,execv,execve和execvp2.进程的退出一个进程正常终止有三种方式:由main()函数返回;调用exit()函数;调用_exit()或_Exit()函数。
基于嵌入式LINUX安全操作系统的研究
0 引言
L n x作 为 一 种 操 作 系统 广 为 流 行 .不 仅 因 iu
I P传输进 行保 护 。 E P协议 与 AH协 议 支持两 种模 式的使 用 :隧 S 道 模 式 与传 输 模 式。 使 用 传 输 模 式 ,协 议 主 要提 供 对 高 层 协 议 的保 护 ,而 在 隧道 模 式 下 ,对 整个 I 包进 行 保 护 和 隧 道传 输 。隧道 在 两 点 或 两端 P信 间建 立 通 信 ,在 点 到 点 隧 道 中 ,隧 道 由远 程 用 户 的P C延 伸到 企业 内网 中的服 务器 ,两边 的设 备 负
1 相关 技术概 述
I S c协 议 的 目的 是 为 了对 I 传 输 提 供 各 Pe P层 种 安 全 服 务 ,其 安 全 协 议 主 要 由 E P协 议 与 AH S
地 通 过 公 用 网络 这 一 廉 价 的 媒 体 ,建 立 自己 的 虚
拟 专用 网 。
使 用 隧道 模 式 的安 全 网关 组 成 了 虚 拟 专 用 网 VP N,左 侧及 右 侧 的本地 It n l ne e 上传 输 的是 普通 r I 包 ,在 安 全 网 关 上 进 行 I S c处 理 后 , 安全 P信 Pe
和可 靠性 都有 较大 提高 。
而 在 计 算 机 的 操 作 系 统 中 ,虚 拟 专 用 网 络 (iu l r a e r ,VP 的 操 作 性 和 适 用 vr a pi t n t k t v e wo N) 性 很 强 ,如 果 能 够 将 VP N技 术 模 块 成 功 移 植 到 Ln x系统 中也 是 有 着很 大 的适 用前 景 的 ,首 先能 iu 够 利 用 V N 技 术模 块 灵 活而 区域 覆盖 广 泛 的特 点 P 对 传统 的技 术 进行 修正 ,并 且能 够在 Ln x系统 中 iu 很 大 的抵 御住 安 全 隐 患 的 入侵 ,相 对 来 说 安 全 性 大大提 高 ,所 以这 种移植 很 有研 究 的前景 。
关于Linux的嵌入式操作系统的探讨
的 , 于 Lnx的源 代 码 公 布 在 互 联 网上 , 以 免 费 得 到 , 此 由 iu 可 因 网络 上 Lnx的 开 发成 为 一 些 高 手 热 衷 的项 目 .世 界 各 地 的 高 i u 手 们 将 自己对 Lnx 内核 需 要做 的 改 动 交 给 Ln s 组 . 由他 iu iu 小 们 进 行 统 一控 制 .随 时 对 内核 进 行 更 新 升 级 从 而 保 证 其 开发 的 质 量 .这 种 模 式 使得 Ln x在 短 期 内就 成 长 为 了一 个 稳 定 成 熟 iu 的操 作 系 统 Ln x为嵌 入 操 作 系 统 提 供 了 一个 相 当 有 吸 引 力 的选 择 . iu 它 是 一 个 和 U i 似 、 核 心 为 基 础 的 、 全 内存 保 护 、 任 务 多 n x相 以 完 多 进 程 的 操 作 系 统 。 支 持 广 泛 的 计 算 机 硬 件 ,包 括 X 6、 lh 8 |Ap a S a 、 IS 弭,、 R N C、 T R L 等 现 有 的 大 部 分 芯 p r M P 、 C A M、 E MO O O A e 片 程 式 源码 全 部 公 开 ,任何 人 可 以 修 改 并 在 通 用 公 共 许 可 证 (N e ea P bi Lcne下 发行. G U G nrl u l ies) c 这样 , 开发人员可以对操作 系 统 进 行 定 制 .再 也 不 必 担 心 类 似 M idw 操 作 系 统 中” Swn o s 后 门” 的威 胁 。 同时 由于 有 G L的控 制, 家 开 发 的东 西 大 都 相 互 P 大 兼 容 .不 会走 向分 裂 之 路 。Lnx用 户 遇 到 问 题 时 可 以通 过 I. iu I 1 tnt e e 向成 千 上 万 的 Ln x开 发 者 请 教 .即使 最 困难 的 问题 也 有 r iu 望 得 到 解 决 。 u 带 有 U i 用 户 熟 悉 的完 善 的 开发 工 具 , “n 】 【 nx 目前 几 乎 所 有 的 U i 统 的 应 用 软 件都 已 移 植 到 了 Lnx上 。 iu n x系 iu Ln x 还 提 供 了 强 大 的 网络 功 能 .有 多 种 可 选 择 窗 口管 理 器 ( i. X wn dw ) o s。其 强 大 的语 言 编译 器 gc g + 也 可 以 很 容 易得 到 。 c 、+ 等 2嵌入 式 操 作 系 统概 述 . 嵌 入 式 操 作 系统 是 支 持 嵌 入 式 系统 应 用 的操 作 系 统 软 件 。 它 是 嵌入 式系 统 极 为 重 要 的组 成 部 分 。通 常 包 括 与 硬 件 相 关 的 底 层 驱 动 软 件 、 统 内核 、 备 驱 动 接 口 、 信 协 议 、 形 界 面 、 系 设 通 图
嵌入式LINUX系统的构建研究
C U。在 应 用 中 , 微 处 理 器 装 配 在 专 门 的 电路 板 P 将
上 , 保 留和嵌 入 式应 用 有 关 的 功能 , 样 可 以大 幅 只 这
第 2 卷第 6 6 期
Vo . 6 NO. I2 6
萍 乡高等 专科 学校 学报
J u n l f n x a g Colg o r a o Pi g in l e e
20 0 9年 1 2月
D e 20 9 c. 0
嵌 入 式 LI U X 系 统 的 构 建 研 究 N
面详 细讨论 构 建嵌 入式 I n x系统 的方 法 。 u i
3嵌 入 式 硬 件 平 台 3 1嵌 入 式 处 理 器 .
3 1 1嵌 入式 微处 理 器 ( MP .. E U) 嵌 入 式 微 处 理 器 的 基 础 是 通 用 计 算 机 中 的
之一 L n o推出 , 根 据嵌 入式 应 用 系统 的 特点重 新 ie 是
度减 小 系统 体积 和功 耗 。 了满足 嵌人 式应 用 的特殊 为
收 稿 日期 : 0 9 O — 2 20一 9 9 课 题 研 究 : 论 文 系 萍 乡 高 等 专 科 学校 校 级课 题 ( 号 :9 XK - O ) 阶段 成果 此 编 0 P Y- 4 的
作 者 简 介 : 新 华 (9 5 ) 男 , 西 萍 乡人 , 师 , 士 , 要 从 事 计 算 机 应 用 方 面的 研 究 。 吴 17一 , 江 讲 硕 主
嵌 入 式 系 统 中用 于 完成 存 储 、 信 、 通 调试 和显 示 等功
嵌入式linux操作系统任务性能测试研究
1 前 言
致 系统不 能 够 在 真 实 环 境 下 运 行 , 响 到 系 统 的性 能 。 影 在实 时系统 中直接会 导致 系统错 误 。纯硬 件 的测试 工具
所谓 实时性 , 即必 须 满 足 时 间约 束 的特 性 。实 时 软
件 的处理速 度并 不一 定 非 常快 , 要 的是 需要 准 时 和及 重 时, 实时软 件 的时 间约 束 主要 表 现 为软 件 或其 中 的进程 的时 间约束 。进 程也 叫做任 务 , 在多进 程 的操 作 系统 中 , 进程 调度是 一个 全局 性 、 关键 性 的 问题 , 它对 系统 的总体 设计 、 系统 的实 现 、 能设 置 以及 各个方 面 的性 能都 有着 功 决 定性 的影 响 。任务性 能测试 的对 象是 操作 系统 中任 务 上下文 切换 时间 、 务 切 换 时 间 、 任 任务 抢 占时 间 、 中断 延
嵌入式 软件 测试 中 , 常 要 在基 于 目标 机 的测试 和 常 基 于 宿主机 的测 试之 间做 出折衷 。基 于 目标 机 的测 试要 消耗较 多 的经费 和时 间 , 于 宿主机 的测试 代价较 小 , 而基
但毕竟平 台上完 成有 很大 优势 , 级别越 高 , 层越依 赖 基 于 目标 环境 。确认 测 试最 终 也 必 须在 目标 环境 中进 行 ,
因为系统 的确认 必 须 在真 实 系 统 之下 完成 , 能在 宿 主 不
般用在系统的硬件开发阶段 , 例如逻辑分析仪和仿真 器 。逻辑 分析 仪是基 于 总 线 信号 采 样 的 方式 , 并且 只能 工作在关闭缓存的状态下 , 否则代码可能只送到缓存 , 而 并 没有 被命 中 。纯硬 件 工 具 的采 样 方 式 造成 数 据 丢 失 , 而且 几乎 无法 进行覆 盖率 等分 析 。 汲取纯 软件插 桩 技 术 的代 码 膨 胀 问题 , 纯硬 件 测 和 试工 具 的数 据采集 方 式 。我们 可 以采用 硬件 插桩 技术 进 行测 试数据 的分 析 。硬件 插 桩 技 术 , 是利 用 纯 软 件 的 就 插桩 技术 给源代码 做影 响系统 最小 的数 据标记 , LL I 22 数 据采 集 . 硬 件辅 助的数据 采 集 , 通 过 在 系统 的物 理 地址 空 是 间预先 定义好 一个 空 闲的地址 。源代 码 的硬件 插桩 就是 在程序运 行 到标 记 点 的 时候 , 向指定 的这 个 物 理 地址 发 送 这一标 记数 据 。数 据采 集部 件只 当做是 目标 系统 的外 部只写设备。当数据发送到总线上 的时候 , 有写信号 电 平 去触发 采集设 备 。 目标 系统 只 完 成 数据 的发 送 , 不 而 用判断发送 的状态。数据采集部件会 自动实时进行采 集 。如 图 1 示 : 所
浅析嵌入式linux教学系统的构建
统在嵌入式系统 中一般设置为可读, 需要用m c a f 等工具生 krms
启动ln x i u 系统. 要求熟悉l n x i u 的常用命令, 类 ̄w n o i d w 下的 他程序。 在应用前 , 必须要修改根 文件系统的启动脚本 , 它的位 sa, 根文件系 2 深入了 o to d r 解b os a e并移植成功, l 开发板可 以正常 动装挂系统配置的ft b 会 随着系统的不同而不同。
环境 。
关键 词: 入 式 1n x 教学; 嵌 u; i 实践
随着后P 时代 的到来 , c 嵌入 式系统技 术已经 成为了一 个万
Lnx i u 内核 的配 置 系统 由三个 部分组 成 : 是 用分布 在 一)
众瞩 目的焦点。目前, 国嵌入式 复合型人才基数小, 我 队伍不稳 Lnx ̄ iu P核源代码中的 M kfl, a eie 定义 L nx 内核的编译规 iu 定 , 口较 大。 缺 对此 新技术 的高速 发展 , 高校也 纷纷 开展嵌 入 则; 配置文件 ( o f gi , K o f g : 二) c n i.n c n i ) 给用户提 供配置选 三 配置工具: 包括配置命令解释器, 配置内核 可以 式教学 , 但由于习惯 多年 以 讲述原理 , 论为主, 理 旨在培养学生 择 的功能; ) 基 础, 使之和 市场 需求有所脱节, 没有 工作经验 的应 届毕业生 根据需要与爱好 使用下面命令中的一个: 将成为受害者。 为了弥补这一缺憾, 本文将探索l n x u 教学系统 i 的构建 , 希望起着抛砖引玉 的作用 。 # a e o f g( m k c n i 基于文本的最为传统的配置界面, 不推荐
基于Linux的嵌入式应用浅析
应 用问题主要集 中在操作系统实时性要求上。
1 l u 内核 实时性方 面的不足 x i n
Lnx iu试图提供 一种 “ 公平分 配” ,使得所有 的进程都能均 衡 的使用C U P 资源 ,使得 系统有 较高的吞吐量 。 ( ) i x 内核 态和用 户态 两种 模式 。进程运 行在 用户 态 1 Ln 分 u 时.实时进程 具有较 高的优先级 ,能进行进程抢 占,故可以较好的 完成任务 。当进程运行在 内核态时 ,如 系 调用 ,实时进 程不能抢 统 占该进程 凶此 ,本质上 ,Lnx i 内核是非抢占式 的 u f 定 时 器方 面 ,L u的 周 期模 式 定 时 器 的频 率 只 有 J在 2 ix n 10 z 0H ,远 不能满足很 多实时性应 用的要求 。软定时 由时钟定 时器 完成,当软定时较多时 . 会带来共享定时器的冲突 。 f )Lnx 程采用多级轮 转调度算 法 ,该算法仅 能获得秒级 iu进 3 的响应时问 ,一个实时进程在—个时间片内不能完成 ,其优 先级将 降低 ,从 而使得实时进程可能无法在要求的时『内完成 H J f ) iu虽然赋 予实时进程较 高的优 先级 , 是并 没有加入 Lnx 4 但 时间限制 。例如完成任务的最后限期 ,应在多长的时问内完成 , 执 行 周期 等 等。同时 ,大 量的非实时进 程也可能 对实时进 程造成 阻 塞 。实时进程互斥的请求共享资源时 ,容易引起优先级倒置 。
2 当前 Ln x在 实时 内核 方 面 的 发展 . 2 i u
题 作 深八 分析
关键词
嵌入式 系统 是以应 用为中心 ,以计算机技术为基础适 应应用系 统 对功能 ,可靠性 ,成本 、 积 、 耗要求严 格的专 用计算机 系 体 功 统 。Ln x i 源代码 的, 放性 为嵌入式 操作系统应 用提 供了 非常 广阔 u r 的前景 ,与U i相类似 ,Lnx n x i 以内核 为基础 ,完 全的内存 保护 , u 多任务 多进程 ,使得它适合 嵌入式系统中比较复杂的应用。支持广
基于嵌入式技术的Linux网络服务器设计与研究
【 关键词】 嵌入式 网络服 务器
1 弓言 .I
嵌入 式 系 统 是 指 操 作 系 统 和 功 能 软件 集成 于 计算 机 硬 件 系 统之 中 。 简 单 的 说就 是 系 统 的 应 用 软 件 与 系 统 的硬 件 一 体 化 ,类 似 与 B O IS的 工 作 方
图 l 嵌 入 式 W b系 统 图 e
2 目 . 标方法及开发环境
本 系统 整 体 采 用 AM L n x体 系 结 构 。 R+iu 嵌 入式 处 理 器 是 嵌 入 式 系 统 的“ 核 ”处 理 器 的选 择 将 对 整 个 嵌 入 式 硬 , 系 统 的 成本 和 性 能 产 生 很 大 的 影 响 。A M处 理 器 本 身 是 3 R 2位 设 计 , 也 配 但 备 l 指 令 集 。 系 统 选 用 以 A M 2 T为核 心 的 ¥ C 4 0微 处 理 器 , 处 6位 本 R90 32 1 该 理器 集 成 了 LD控 制 器 、S H s 、S Sa eN N C U B o t U B lv 、A D控 制 器 、 断 控 制 、 中
C I应用 程序 , 理来 自客户端 的协 同工作数据 , G 处 完成 客户端与服 务器 的 动态交互 , 从而实现静 态 H M T L网页无 法实现 的功 能, 如表单数 据处理 、 数 据库查询等 。SL t Q i e是选用的一个嵌入 式数 据库管理系统 , 小, 较 运行时 占用 内存 不 到 2 0 , 合 嵌 入 式 使 用 。 5k适 .
功率控制 、A T 等丰富的资源。 UR 、 操 作 系 统 是 嵌 入 式 系 统 的 “ 核 ” 目前 较 为 流 行 的嵌 入 式 操 作 系 统 软 。 有 :x o k 、i dw C 、 iu V W r s W n o s E L nx等 。 相 对 其 他 操 作 系 统 , iu L n x存 在 许 多 现 实 的 优 势 , 广 泛 的硬 件 支 持 、 如 良好 的 可 伸 缩 性 、 高 的 可 靠 性 和 开 放 的 极 AI P 。从 成 本 方 面 讲 , 缴版 税 、 费或 者 廉 价 的 软 件 组 建 以及 免 费 的源 代 免 免 码, 都会在降低产品成本和 提高产 品灵活度上得 到很大 的优势 。 从 整 体 来 讲 , 入式 系 统 同 P 嵌 c机 一 样 可 分 为 硬 件 和 软 件 两 大 部 分 。 本系统涉及到的系统硬件主要包 括两个部分 :嵌入式 W b核心模 块、 e 外围设备及扩 展模快 。嵌入式 W b核心模 块基于 ¥C 4 0A M ) e 3 2 1 (R 9 芯片.在 其 上 运 行 嵌入 式 L n x W b S r e iu 、e e v r及 相 应 监 控 程 序 。 围 设备 及 扩 展 模 外 块要完成相关设备地址译 码、 口并实现相应扩展 , 接 以备 系 统 扩 展 升 级 的 需要。 其需要实现: 网络接 口、 串行接 口等, 通过 R 一 3 S 2 2接 口模块通信完成 与 家 电 与其 他 联 网设 各 的信 息 交 换 , 过 C 8 0 A网络 芯 片 接 口完 成 嵌 入 通 S90 式 W b与 以太 网的通信 。 e 硬件结构框 图如 图 2所示: 系统软件主要分为两层: 层驱动程序和 上层应用 程序 。 底 再分的细点 , 可 以分 为 四层 : 层 驱 动 : 底 以太 网 、S一 2 2 F a h L D等 外 围 设 备 驱 动 : R 3 、 l s 、C 系统: 嵌入式 L n x内核 ; 议栈 :C /I 协 议 、R iu 协 TP P A P协议 、C P协议 : IM 应 用层 :e S r e 、 W b e v r 系统监 控模块及 C I G 程序 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Linux 嵌入式操作系统的研究李红卫1,潘瑜1,王树亮2,薛小锋1(1.江苏技术师范学院计算机科学与工程学院,江苏常州213001;2.江苏技术师范学院图书馆,江苏常州213001)摘要:从Linux内核实时性、实时调度策略以及时钟细粒度定时器三个方面,对Linux嵌入式实时化技术进行了探讨。
在内核中插入抢占点或采用双内核系统,改善Linux的实时性能;通过动态优先级提高实时任务的调度性能;通过增加时钟中断频率或采用实时时钟一次性模式,实现时钟细粒度。
关键词:Linux;嵌入式系统;实时性;进程调度中图分类号:TP316.2文献标识码:A0引言嵌入式系统是集软硬件于一体可独立工作的计算机系统,它通常是更大系统中一个完整的部分[1]。
在早期的嵌入式系统设计中一般不包含操作系统,但当系统越来越复杂、应用范围越来越广泛时,没有操作系统已成为系统开发的最大障碍;因此,在嵌入式系统的发展中,出现了各种各样的商用嵌入式操作系统。
嵌入式操作系统的出现改变了以往嵌入式软件设计只能针对具体的应用从头做起,使嵌入式系统的开发方法更具科学性;同时,采用嵌入式操作系统提高了系统的开发效率,减少了开发的工作量,增强了软件的可移植性。
操作系统成为嵌入式系统的核心,是一个时代的特征,也是嵌入式系统从简单的单片机、微处理器走向愈来愈复杂的嵌入式SOC和CPU的自然体现[2]。
开源Linux操作系统的出现,给嵌入式操作系统的发展带来生机,将Linux应用于嵌入式系统开发环境中已十分广泛;但就目前而言,嵌入式Linux的研究成果与市场的真正需求仍有一段差距,还需要在嵌入式Linux系统的实时性、进程调度等方面对其进行不断的改进和完善。
1改造Linux为嵌入式操作系统的分析实时系统最重要的特征是实时性,实时性是指系统对外部事件的响应和处理要在一个给定的时间内完成,即计算必须在到达死线(deadline)前完成[1]。
根据丢失死线的容忍程度可将实时系统分为硬实时系统和软实时系统:硬实时系统必须保证任务在到达死线之前完成,丢失死线将会引发灾难;软实时系统能保证任务在死线之前完成,但死线的丢失并不会带来致命的错误。
在大多数嵌入式系统应用中往往要求系统具有实时性。
虽然Linux是一个分时操作系统,但其符合POSIX1003.1b关于实时扩展部分的标准,尤其Linux2.6的推出给嵌入式系统以及实时系统的应用带来生机。
将Linux改造为嵌入式实时操作系统具有(1)Linux功能强大、(2)开放源码、(3)支持多种硬件平台、(4)收稿日期:2006-02-21;修回日期:2006-04-03基金项目:江苏技术师范学院科研基金资助项目(KYY04001)作者简介:李红卫(1966-),男,山西阳城人,江苏技术师范学院计算机科学与工程学院副教授。
JOURNALOFJIANGSUTEACHERSUNIVERSITYOFTECHNOLOGY江苏技术师范学院学报Apr.,Vol.12,No.220062006年4月第12卷第2期模块化设计、(5)函数接口符合国际和工业标准等优点[3],但同时也存在一些缺点;Linux毕竟是一个分时系统,在实时性方面无法与商用实时操作系统相比,仍然存在很大差距。
(1)Linux提供的是一种软实时调度算法[4],它对实时任务的调度不做任何保证。
在实现调度算法时,Linux注重的是公平、合理的调度策略,对实时进程采用了基于优先级的先进先出算法和基于优先级时间片轮转算法,这两种调度算法均按静态优先级对实时进程进行调度。
(2)Linux2.6采用了内核可抢占式调度方式,但它的实现仅仅是在内核中增加了抢占点,抢占点设在中断处理程序即将结束时或系统调用即将结束时。
对于强实时系统来说,一旦高优先级的任务进入就绪队列,应立即获得处理机,而调度程序schedule()通常是在中断处理程序结束或系统调用结束时,才有机会运行。
如果中断处理时间过长(中断嵌套)或系统调用占用时间过长,都会延误实时任务的执行;只有保证中断处理程序和系统调用执行时间在一个可控的范围内,才能保证实时任务的正确执行。
(3)时钟粒度粗糙。
时钟中断是驱动操作系统运作的最基本的动力源,系统用它来维持系统时间,监督进程运行,引起进程调度。
进程状态的转变在很多情况下也是由时钟中断直接或间接引起的。
虽然Linux2.6在i386体系结构中时钟粒度定义为1ms,但在其他大多数体系结构(比如ARM)中,时钟粒度仍然定义为10ms,而实时应用一般都需要微秒级的响应精度,10ms的时钟粒度远不能满足实时应用的要求。
综上所述,改造Linux为嵌入式操作系统,可从实时性、进程调度程序、时钟粒度着手进行研究与实现。
2Linux嵌入式操作系统的实时化2.1双内核结构实时化Linux可有多种实现方案,许多研究项目都在进行Linux方面的实时化改造。
采用双内核结构是实时化Linux常用的方案,它是在原有的Linux和硬件之间设计一个专门用于处理实时进程的实时内核,Linux作为此内核的一个优先级最低的任务运行,实时任务在实时内核上运行,非实时任务则在Linux内核上运行。
该方案的结构如图1所示。
这类方案的优点是对Linux内核的改动较小,实现了硬实时和内核可抢占。
采用这种结构的有NewMexicoInstituteofTechnogy的RT-Linux、意大利的RTAI、我国信息产业部基金资助的SOPCA[5]等。
其中RT-Linux开创了Linux硬实时支持的先河。
RTAI的设计更科学,它在硬件与实时内核之间增加了一层实时硬件抽象层RTHAL(real-timehardwareabstractionlayer)。
RTHAL将RTAI需要在Linux中修改的部分定义成一组程序界面,RTAI只使用这组界面与Linux沟通,这样,可以把对内核源码的改动降低到可以控制的程度,使内核移植更便捷。
特别是在最新版本的RTAI中采用了ADEOS(adaptivedomainenvironmentforoperatingsystems)超微内核(ADEOSnanokernel)技术[6],极大地提高了系统的可靠性,也为嵌入式应用方面提供了可抢占的、可伸缩的实时服务。
采用双内核结构支持实时系统的设计方案同样也存在一些缺点[3],所有实时任务都必须用内核模块的格式编写,从而导致实时应用的开发变得非常复杂,要求用户必须熟悉Linux内核和设备驱动程序的设计。
另外一个重要隐患就是,由于实时任务在核心态中运行,没有对内存进行保护,不当的编程可能会导致内核的崩溃;同时,实时程序的调试也很困难。
2.2直接修改Linux内核这类方案的共同点是直接修改内核,主要方法是对它的数据结构、调度函数、中断方式等进行修改,提供适应于实时系统的调度策略、提供细粒度的定时器和增加内核抢占点等,使其能处理实时进程。
典型实例是MontaVista公司的MontaVistaLinux、CELF组织的CELinux和加州大学Irvine分校开发的RED-Linux。
MontaVistaLinux采用标准Linux内核,针对嵌入式设备定制专用的嵌入式操作系统,根据应非实时任务实时任务计算机硬件实时内核Linux内核图1双内核结构Fig.1StructureofTwoKemels江苏技术师范学院学报52第12卷用需求及嵌入式系统资源有限的情况,对内核进行裁减、配置,保证系统稳定,性能突出。
在实时性能方面,它提供一个基于优先级的实时调度器。
对于无实时需求的进程,仍按Linux原有进程调度策略进行调度;对于实时进程,则按照优先级驱动的原则进行调度,实现了一定的抢占式内核。
RED-Linux是在Linux内核的很多函数中插入了抢占点,使得进程在内核态时可以被抢占,从而减小内核的抢占延迟。
另外,RED-Linux的调度器被分为两个构件:分派器(dispatcher)和分配器(allocator)。
分配器是一个由用户创建的用户实时进程,在用户态执行,它负责将应用程序的资源请求转换成内核可以理解的形式。
分派器作为一个内核模块存在,可动态加载并在内核态执行。
实时任务先在分配器中注册自己的调度函数参数,再由分派器调度。
用这种方法,调度策略易于修改。
采用直接修改Linux内核方案的优点是能够充分利用Linux本身所提供的各种功能和服务,系统结构清晰,能够支持众多硬件平台,可以很好地将嵌入式与实时性结合。
它的缺点是实时性能不及双内核方式高,另外直接修改Linux内核源代码进行实时化的工作量大,还可能影响系统的稳定性。
采用该方案的大多数嵌入式Linux内核是不可完全被抢占的,所以只能作为一种软实时方案。
3Linux嵌入式调度算法的优化进程调度的研究是整个操作系统理论的核心[7],在嵌入式操作系统中也不例外。
实时调度算法大致可分为三种:基于优先级的调度算法、基于时间驱动的调度算法和基于比例共享的调度算法[8]。
在Linux内核中调度算法是以优先级驱动的,即调度原则是按优先级的大小决定,并实现了三种调度策略,其中SCHED_FIFO和SCHED_RR应用于实时任务,SCHED_NORMAL应用于非实时任务,实时任务的优先级高于非实时任务的优先级。
SCHED_FIFO指当优先级相同时,按先进先出算法进行调度,它不使用时间片,适合于时间性要求比较强、但每次运行所需时间比较短的进程,采用该策略的进程获得CPU后,除非有更高优先级进程申请运行外,否则该进程将保持运行至退出或自愿放弃CPU;SCHED_RR指优先级相同时按时间片轮转算法进行调度;SCHED_NORMAL是基于优先级按时间片轮转算法进行调度,与SCHED_RR调度策略相似,所不同的是SCHED_RR采用静态优先级对实时任务进行调度,SCHED_NORMAL采用动态优先级对非实时任务进行调度。
因为,实时任务的优先级在运行过程中保持不变,非实时任务的优先级随进程的运行时间、等待时间、是否为交互式进程而动态改变。
在实时系统中,往往要求系统对外部事件的响应和处理要在一个给定的时间内完成,系统输出的正确性不仅依赖于计算的逻辑结果而且依赖于结果产生的时间。
随着时间的变化,实时任务的紧迫程度也在变化。
在基于优先级的调度算法中,实时进程的优先级如果能随着时间的变化而动态地改变,就能客观地反映出实时任务的紧迫程度。
显然,Linux对实时任务按静态优先级进行调度的策略在满足实时性要求时存在瑕疵。
在实时操作系统中,常常面临的另一个问题是优先级反转[9],可描述如下:当高优先级的任务获得运行资格后,发现它所需要的共享资源被某低优先级的任务占用,则该高优先级任务被阻塞;而该低优先级的任务又被中等优先级的任务强占而无法运行,致使高优先级的任务在有效时间内无法获得被低优先级任务所占用的共享资源而迟迟不能运行。