《嵌入式操作系统uClinux和eCos的比较.pdf》由会员分享,可在线阅读,更多相关《嵌入式操作系统uClinux和eCos的比较.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 paper 2006年第8期 icrocontrollers Embedded Syste ms 15 嵌入式操作系统uc li nux和ecos的比较回东华理工学院 戴晟晖 张良清 摘 要uc linuX和ecos操作系统是两种性能优良!源码公开且被广泛应用的免费嵌入式操作系统本文通过对uc linuX和ecos的对比#分析和总结了嵌入式操作系统应用中的若干重要问题#归纳出嵌入式系统开发中操作系统的选型依据 关键词嵌入式 操作系统 ecos uc linuX1 两种开源嵌入式操作系统介绍uc linuX是一种优秀的嵌入式LinuX版本 uc linuX是m icro-conrol-linu
2、X的缩写 与标准LinuX相比 它集成了标准LinuX操作系统的稳定性 强大网络功能和出色的文件系统等主要优点 但是由于没有U 故其多任务的实现需要一定技巧 ecos 即嵌入式可配置操作系统 是Red at的产品 但ecos并不是LinuX或LinuX的派生 ecos弥补了LinuX在嵌入式应用领域的不足 是一个源码开放的可配置 可移植 无版税 面向深嵌入式应用的实时操作系统 ecos的核心部分是由不同的组件组成的 包括内核c语言库和底层运行包等 每个组件能提供大量的可配置选项 利用ecos提供的配置工具可以很方便地进行配置 通过不同的配置使得ecos能够满足不同的嵌入式应用 对于以上两种源码
3、公开的实时操作系统 主要从以下几个方面进行比较 通过比较 能够为大家选择适合自己系统的RTOS提供参考 2 基本操作性能的比较2.1 应用程序的运算能力在LinuX和uc linuX操作系统启动的时候 都会有这样一句话-calibrating delay loop.ok一XXX Bogo ips 这一过程叫作Bogo ips Linus Torvalds引入Bogo ips主要有两个目的:给用户一个大概的系统运算能力的概念3由于系统中有许多代码需要精确的软件延时 通过Bogo ips来获得软件延时每个周期消耗的时间 Bogo ips的过程就是一个简单计数循环 看1 s可 以 循 环 多 少 次
4、 然 后 除 以500 000就 得 到 了Bogo ips的数值 表1是分别在目标硬件平台上运行ecos和uc linuX下的Bogo ips应用程序得到的结果 我们使用了不同的测试条件 激活和非激活AT76c120的存储器缓冲控制器 表1 eCOs和uC li nux的BO9Omi Ps比较单位:Bogo ips OS操作 ecosuc linuX打开存储器缓冲控制器30.5621.96关闭存储器缓冲控制器25.3319.78从表1可知 打开缓冲存储器 对ecos的应用程序性能影响较uc linuX的大3 反之 关闭缓冲 ecos的应用程序的性能就下降很多 2.2 存储器访问能力采用一种同
5、时能够测试缓冲控制器和标准存储器访问函数的测试方法来测试存储器访问能力 在这里 选用田纳西大学的Philip J.ucci等人提出的cacheBench方法 其工作原理是 重复顺序读/写一定长度的存储器块的数据 记录重复1次所用的时间 用总的读/写数据除以耗时 得到读/写每一字节所用的时间3 同时 通过调整数据块的长度和不同的读写方法 获得不同条件对存储器读/写的影响 在实验中 对于每一种测试模式使用4种不同的块长度 以观察不同的块长度对存储器访问性能的影响 表2是实验的结果:横向比较 ecos的存储器访问性能从总体上都优于uc linuX3纵向比较 5种模式下性能关系大致为缓冲读缓冲读/改写
6、/写缓冲写me mset me mcpy 在同一种测试模16 2006年第8期adv 广告专用)式下 对于缓冲读 越大的块长度 其表现的存储器访问性能越好;而其他模式下 存储器访问性能基本与块长度无关 表2 eCOs和uC li nux的cachebeach测试结果操 作块长度/字节ecos B/s)uc linuX B/s)缓冲读25625.419.851225.820.1102425.920.5204825.720.2缓冲写25616.513.251216.713.4102416.613.2204816.513.1缓冲读/改写/写25617.515.851217.415.7102417.3
7、15.9204817.415.6me mset25616.110.051216.210.2102416.210.0204816.110.1me mcpy25615.59.251215.49.4102415.69.3204815.39.2基于以上结果的分析如下:造成ecos存储器访问能力优于uc linuX的原因是 ecos的应用程序获得的处理器时间较长;造成读缓冲模式下 存储器访问性能随块长 度 增 长 而 变 好 而 其 他 模 式 下 不 变 的 原 因 是 与AT76c120的 缓 冲 控 制 器 的 回 写 模 式 有 关 由 于AT76c120的缓冲控制器采用了直接回写的缓冲回写模式
8、 缓冲控制器对存储器写操作没有任何缓冲作用 因此当处理器写存储器时基本不会享受到由缓冲控制器带来的好处 相当于直接访问外部存储器 2.3 驱动程序性能测试为了测试系统的驱动程序性能 选择cF卡驱动程序作为测试对象 我们的测试方法简单 就是在应用程序中打开一个大文件 10 B)然后调用fread读文件 每次读512字节到缓冲中 直至将文件读完 表3是测试结果:uc linuX的性能优于ecos 这主要是由于uc linuX的块驱动有一个叫集簇的功能 它可以将对块设备的多个请求归并在一起执行 这样对于像磁盘这样反应较慢的设备可以提高整体的读/写速度 表3 eCOs和uC li nux的磁盘读测试结
9、果 OS结果 ecosuc linuX读时间/s10.48.2读速度/B s-10.9611.223 综合应用性能比较我们知道 一个图像压缩和解压缩的程序往往需要大块的存储器访问操作 密集的数学运算和大量的磁盘访问 由于现在手持的嵌入式设备大多需要有这方面的应用需求 因此一个图像压缩和解压缩的应用程序既符合理论研究的要求 又符合实际应用的需求 为此我们选择gif图片的编解码的程序作为综合性能测试的测试程序 测试结果如表4所列 表4 eCOs和uC li nux的9if图片解码测试结果 OS尺寸 ecosuc linuX1024 76810.7 s12.3 s我们看到 ecos和uc linuX
10、解码速度都很低 主要是因为完全使用了软件解压缩;而且由于AT76c120的图像显示格式是Ycr cb的 而giflib的解压缩结果是RGB的 因此必须使用浮点运算将RGB的数据转换到Ycr cb AT76c120的AR7TD I不支持浮点指令 因此不得不使用软件仿真来完成浮点运算 这其中大部分时间被用在了从RGB到Ycr cb的转换上 测试结果基本与前面基本操作系统测试的结果是一致的 ecos在整体上是优于uc linuX的 4 可移植性ecos的系统可移植性应该明显比uc linuX的好 在ecos系统中 每一个硬件平台都用一个单独的目录存放针对这一硬件平台的硬件抽象层的代码和配置信息 较容
11、易让用户理解 而uc linuX的硬件抽象层的代码分布在好几个目录中 而且各个平台的代码混合在一个源文件中 通过 if def+end的方式来选择不同的硬件平台的代码 另外 ecos在移植时所要更改的源代码文件数少于uc linuX 可移植性不应仅仅是操作系统的移植 还应该包含应用程序的移植性 程序的可移植性 是由两方面决定的 首先 应用程序必须被编写得可以移植 关于这方面 A.Dolenc A.Le mmke和D.Keppel在其Notes On W ritingPortable Progra ms In c一文中给出了很好的解释 其次是嵌入式操作系统提供较丰富的系统函数和标准函数库 一个系
12、统提供的函数库越丰富 则越多的应用程序不用进行较大的更改就能直接在其上运行 在标准函数方面 ecos只提供了较为简单的c标准函数库和IEEE浮点运算数学库 uc linuX则提供了与LinuX下的glibc相兼容的函数库 而glibc是大部分开放源代码项目的构建基础 由此可以看出 在应用程序的可移植性上 uc linuX2222 2006年第8期adv 广告专用 build akefile r m-rf build mkdir build ch mod u+X configure cd build eXport cc cc cFLAGS eXport LDFLAGS LDFLAGS eXpor
13、t LIBS LDLIBS-lc .configure-ith-kernel-headers .linuX-2.6.X include-ith-openssl .openssl-0.9.7e-build i686-pc-linuX-gnu-host m68k-unkno-linuX-prefiX romfs ROFSI NST build src setkey setkey bin setkey ROFSI NST build src racoon racoon bin racoonclean r m-rf build编译生成setkey和racoon两个应用程序 5 l PSectOOl s
14、的使用本系统的IPSec同时支持传输模式和隧道模式 作为 PN网关时只使用隧道模式 图5是两个IPSec网关间通信模型 192.168.1.100和192.168.2.100分别是两个网关外部接口的IP地址 它们分别保护172.16.1.0 24和172.16.2.0 24两个内部子网 下面以图5中外部IP为192.168.0.1的网关为例 介绍IPSec-tools中隧道模式下安全策略和密钥管理的方法 图5 l PSec隧道5.1 安全策略IPSec-tools中 安 全 策 略 的 管 理 由setkey完 成 在setkey的配置文件setkey.conf中需要加入流入 in 流出 ou
15、t 转发 f d 三条安全策略规则 spdadd 172.16.1.0 24 172.16.2.0 24 any-P out ipsecesp tunnel 192.168.1.100-192.168.2.100 re uire spdadd 172.16.2.0 24 172.16.1.0 24 any-Pin ipsecesp tunnel 192.168.2.100-192.168.1.100 spdadd 172.16.2.0 24 172.16.1.0 24 any-P f d ipsecesp tunnel 192.168.2.100-192.168.1.100 re uire 5
16、.2 密钥和SA的管理!1人工方式Setkey.conf中SA规则定义IPSec中密钥和SA人工方式的管理 16的兼容性更好 5 开发模式和开发难易度ecos的开发模式是一套更接近传统单片机的开发模式 如应用程序静态链接 uc linuX的开发模式则更接近LinuX的开发模式 因此可以预见 ecos更受一批从8位单片机系统开发转到32位嵌入式系统开发设计人员的欢迎 而uc linuX更受熟悉LinuX的设计人员的青睐 6 总 结通过以上比较可知 由于ecos从一开始设计时就是以嵌入式系统为目标的 因此在性能上 有较大优势 反之 uc linuX则是由LinuX进化而来的 因此在以速度和优化为主
17、题的嵌入式系统环境中 并不占优势 但是由于有LinuX的强大后盾 其功能的强大和兼容性是非常突出的 如果应用程序是从其他系统中移植过来的 或者开发人员有LinuX的背景 或者开发成本占总成本的比例较高 则uc linuX比较适合 反之 ecos比较适合 参考文献 1 ecos Users Guide.Red at Inc.ecoscentric Ltd 2003.2 ecos Tutorial.Red at Inc 2002.3 ecos Reference anual.Red at Inc ecoscentric Ltd 2003.4 蒋句平.嵌入式可配置实时操作系统ecos开发与应用.北京
18、 机械工业出版社 2004.5 assa Anthony J.Embedded Soft are Develop ment ithecos.Pearson Education Inc.2002.6 L inuX Device Drivers 2nd Edition.A lessandro Rubini Jona-than corbet O Reilly Associates Inc.1999.7 The Ouintessential LinuX Bench mark W i m Dorst on on LinuX Journal 1996-01.8 ucci P J London K Thur
19、 man J.The cacheBench Report.cEWES ERDc SRc PET Technical Report 98-25 1998-07.戴晟晖(硕士 张良清:主要研究方向为单片机与嵌入式系统(收稿日期:2006-04-04嵌入式操作系统uClinux和eCos的比较嵌入式操作系统uClinux和eCos的比较作者:戴晟晖,张良清,Dai Shenghui,Zhang Liangqing作者单位:东华理工学院刊名:单片机与嵌入式系统应用英文刊名:MICROCONTROLLERS&EMBEDDED SYSTEMS年,卷(期):2006(8)参考文献(8条)参考文献(8条)1.
20、Mucci P J;London K;Thurman J The CacheBench Report 19982.The Quintessential Linux Benchmark,Wim Dorst on Mon 1996(01)3.Linux Device Drivers 19994.Massa Anthony J Embedded Software Development with eCos 20025.蒋句平 嵌入式可配置实时操作系统eCos开发与应用 20046.eCos Reference Manual 20037.eCos Tutorial 20028.eCos Users Guide 2003 本文链接:http:/