共1条
1/1 1 跳转至页
异军突起:Linux抢占嵌入式设备市场
集数百位软件专家的智慧而产生的 Linux操作系统,已经吸引了全世界嵌入式系统开发者的注意力
作者:Warren Webb,技术编辑
Linux已不再仅仅是一种源码开放的操作系统:为用于你的嵌入式设备你必须亲自将它下载、修改、调试并对其进行维护。事实上,整个嵌入系统产业都已经开始对Linux给予商业支持。总线模块制造商和单板计算机制造商现在都提供预先配置Linux的操作软件。硅芯片制造商正在推出采用Linux配置的新型微处理器。而且,软件供应商维持并支持十多种作为嵌入式系统商品的现成Linux软件。
Linux最初之所以吸引设计师,是因为其成本低廉。在当前经济状况限制公司的开支的情况下,经理们都详细审查并削减了大部分产品开发预算。这种节支氛围导致软件开发小组至少要考虑在新项目中采用无需支付特许使用费的软件,如Linux。尽管Linux长期以来被认为是一种免费的操作系统,但很多设计师都愿意负担有关专家支持、专用工具、用户化服务和预包装配置等的费用,以简化开发过程。各制造商做出的反应是,提供定制的嵌入式配置、订购支持软件包、成套开发工具和应用程序范例,以扩充免费的Linux内核。
虽然Linux仅占微软公司台式计算机市场的很小一部分,但它在Web服务器市场上已非常抢眼,并且正在树立起一种稳定可靠而又不会垮台的操作系统的信誉。这种日益增长的信誉再加上可嵌入的体系结构,已引起了设备开发商的好奇心。在过去的两年中, Linux嵌入项目的数量一再飙升,从而使其它一些有实力的嵌入式操作系统黯然失色,并在许多项目上向Wind River公司供应的、在业界领先的VxWorks RTOS进行挑战。
Linux取得长足发展的原因有:它具有一系列强大而又不断增强的软件功能,并对嵌入式体系结构作了一些重大的修改。例如,Linux的模块化特征使得客户能构建一组仅占每一个嵌入设备存储器所占面积的小型定制软件,从而去除了受限制的专有操作系统的额外代码。此外,Linux还支持一大批微处理器,因而非常适合于多样化的嵌入式设备的应用。因为各个制造商都把Linux移植到最流行的嵌入式CPU和台式CPU上,所以开发人员不会由于软件的限制而被迫在硬件上做出抉择。设计师一开始就可以根据满足当前项目需要去选用较廉价的微处理器,然后在产品要求提高、功能扩充时,能够轻而易举地升级到功能更强大的CPU。
秘密所在
人们最经常引用的Linux优点之一是它的特许协议便于用户执行。用户可以免费下载一份Linux,将它修改得适用于你的产品,然后你还可以转卖,而无须支付特许使用费。然而Linux并不是不受专利权制约的软件。Linux的使用受GNU GPL(普通公共许可证)约束,并有其具体的使用规则。例如,如果你修改并销售GPL软件,则你的修改自动属于GPL,而且你必须把这些源代码提供给任何需要它的人。诚然很多嵌入式系统开发人员由于担心被迫将专有软件的源代码披露出来而对Linux敬而远之,但是,你的应用程序和设备驱动程序只要独立并不同于Linux内核,又不包含GPL代码,也就仍然是不公开的。Sony公司、IBM公司、Borland公司 和 Oracle公司是接受GPL条款并出售与Linux操作系统兼容的专用软件的少数几家大公司。
每一代新的嵌入式设备都变得更加复杂,以满足客户对智能系统和先进接口的要求。这些新要求正在迫使开发人员在他们的设计中纳入32位处理器、网络连接和图形处理功能。这些功能常常是商用操作系统的追加费用项目。支持这些功能的软件可像Linux应用程序和驱动程序那样,从开放式社团免费获得。
系统越来越复杂这一发展趋势也对嵌入式系统开发人员产生了影响,因为他们原本习惯于自己编写包括文件管理和任务调度规范等在内的整个软件套件。这些无所不包的软件包基本上是一种“自行设计”的操作系统,在嵌入式操作系统市场上占有50%以上的份额。随着嵌入式设备的复杂性超过了公司内部软件开发小组的开发能力或资金供应能力,Linux正在取代许许多多这类自己开发的操作系统。这些开发人员习惯于维护自己的软件包非常熟悉Linux许可证协议。源码开放的Linux附加功能,如内置的联网支持功能和图形功能,还可以节省新开发项目中用于编码和集成的大量时间。
嵌入式设备的硬件技术演进也对实时项目有影响。例如,曾经需要RTOS来满足线程调度要求的嵌入式系统应用程序,因当今的处理器速度更快而可以在Linux软件实时调度程序下令人满意地运行。其他要求确定性响应的嵌入式系统应用程序,只要采用外部I/O处理程序或一个修改的内核,或者把Linux与一个商用的或源码公开的开放式RTOS结合起来,仍可充分利用Linux的各种优点。
RTLinux是比较受欢迎而又比较成功的实时Linux实现方案之一,它既有专有版本,又有源码开放的版本(图1),两种版本均可从FSMLabs公司买到。RTLinux把Linux看作是在小型RTOS下的一个低优先权任务执行软件。只有在没有实时任务可执行时,Linux才会运行。这种技术使RTLinux能在35μs预定时间内,在一个典型的PC兼容系统上执行周期性的任务,而标准的Linux则需要超过20 ms的预定时间。这种混合方法的优点在于简单的RTOS能够收集实时数据,然后你可以利用标准Linux应用程序的功能来分析和显示这些数据。
走向源代码
大多数用户把可以获得源代码看作是另一个值得肯定的Linux特点,这使得设计人员能够完全了解内核运行情况,从而方便代码开发和调试。很多商用操作系统只是在把源代码作为一个追加收费的选项时才提供给用户。与用户只有一个供应商的商用专有操作系统不同的是,Linux开发人员可以从任何数量的供应商那里获得支持。Linux开发人员还向世界性资源开放式社团求助,获得支持难题的解答。
虽然嵌入式领域中的开放式源码用户数量增长迅速,但同样有很多开发人员并不想赶Linux的时髦。最经常被提到的问题之一是缺少源码开放的、使用方便的、功能齐全的IDE(集成开发环境),像商用操作系统提供的那样。大多数Linux软件包括源码开放的开发工具,如GNU编译程序集和GNU调试程序。GNU工具对于Linux开发绰绰有余,只是没有商用环境的那些华而不实的点缀品而已。
然而,开发人员的问题不可长期不予回答。Metrowerks公司最近为嵌入式小规模Linux方案(使用PowerPC和MIPS处理器)推出了一个完整的开发套件。这一开发套件包括一个能提供多线程调试并能调试共享程序库的应用层CodeWarrior调试程序(图2)。该工具套件使用GNU编译程序、连接程序和汇编程序。CodeWarrior开发平台的建议零售价是每个许可证4595美元。你也可以从www.kdevelop.org网站下载Kdevelop,亦即一种开放源码的IDE(图3)。开放源码的开发人员在1998年开始Kdevelop项目,它在GPL制约之下公开出售,并以一系列完整的资源管理、编辑和调试功能支持KDE(K桌面环境)项目、GNOME(GNU目标模型化环境)项目,C项目和C++项目。
GPL也是不断在嵌入式系统开发人员中间引起恐慌的一个根源。如前所述,如果你的代码与Linux内核或其他GPL代码混合在一起,那就必须把源代码提供给开放源码社团。一个小规模的嵌入式系统把所有软件连接成一个ROM映像,在这种嵌入系统中,代码隔离特别棘手。虽然这种做法未被普遍认可,但很多知识产权律师认为,在GPL问题上,开发人员可以把动态连接模块作为隔离的软件对待。即使Linux是一个源码开放的免费操作系统,它也为法律界带来了很多麻烦。一些Linux厂商甚至提供各种工具来检查软件是否违反了GPL。Lineo 公司的 GPL顺应性工具(Lineo Compliance Tool)可生成一个项目所用的所有许可证报告,可对所有可执行文件及其相关程序库进行审视,并且就编码习惯与开发人员进行对话。
代码的分岔
由于全球有成千上万的Linux开发商,其潜在的用户会关心内核的分段(或分叉)是可以理解的。分段在一个用户群体偏爱Linux的一个版本或变型而其他用户群体偏爱另一个版本时才会发生,于是,为某个版本编写的应用程序可能会与其他版本不兼容。因为制造商经常把嵌入式设备中的应用程序和操作系统一起出售,开发商对分段的关心胜过最终用户。Linux社团通过一种完善的升级建议与发布体制,成功地防止了多个版本。Linux内核的最新版本始终可从www.kernel.org网站得到。Linux标准库(Linux Standard Base)开发并推广了一套提高Linux版本之间兼容性、保证应用软件在任何兼容的Linux系统上运行的标准。嵌入式Linux财团(The Embedded Linux Consortium)也在制定一种平台标准,用以使内核接口格式化,确保中间件或软件应用程序在任何嵌入式系统上都能正常运行。
小型嵌入式设备的设计师为了支持其嵌入设备上的Linux,当然就很关心存储器的要求。他们推断说,一个能与台式计算机上的Windows相媲美的操作系统一定需要若干兆字节的大容量存储器和系统内存。事实上,诸如KDE和GNOME等桌面图形软件包需要12兆字节以上的RAM和接近100兆字节的磁盘空间才能运行。不过,嵌入式设备所用的Linux配置很少包括这些大型软件包。几个源码开放式的项目旨在对用于嵌入式设备的Linux进行优化。例如,你可以从www.microwindows.org网站下载Linux用的一个嵌入式图形软件包,它所需要的系统内存不到512K字节(图4)。同样,Embedded Debian Project公司的开发人员正在开发一套构造工具,以便嵌入式系统开发人员能很容易地对他们所需的那些Linux模块进行组装。EtLinux是一个在嵌入式系统和小型工业计算机上运行的完整的Linux版本,EtLinux系统要求具有一个386SX处理器或更好的处理器、2MB RAM以及2MB硬盘或闪存。
Linux的普及把很多新厂商吸引到嵌入式市场,但他们总会提出同一个问题:供应商如何用免费的操作系统赚钱?最成功的厂商都提供开发工具、支持服务、培训和客户软件开发。尽管无需购买软件或服务,就可以利用Linux开发产品,但很多开发人员感到他们的唯一任务是致力于增值任务,以开发出更优秀的产品。他们觉得最好的办法是买某些商品部件,如处理器、支持硬件和操作系统等,然后花时间创造出独特的硬件和应用软件。这些曾经购买现成的专有操作系统软件的开发人员,现在可从一家提供商用Linux的供应商那里购买软件和支持服务来获得Linux的优点。
仅供订购
MontaVista Software公司仅为嵌入式系统开发人员提供两个Linux版本。专业版本是一个基于Linux的嵌入式代码和二进制分布式交叉开发平台以及一套用于x86/IA-32、PowerPC、 StrongARM、 MIPS、 SH、 ARM、XScale和Xtensa微处理器体系结构的配套工具。Carrier Grade Edition(载体级版本)是一个高利用率的版本,它以电信和载体级应用为目标。MontaVista公司按照订单销售包括技术工程援助在内的Linux产品,提供技术工程援助有通过电子邮件、电话或者传真等多种方式。此外,LynuxWorks公司生产BlueCat Linux,即一种支持XScale、MIPS、 PowerPC、ARM和 SH3 微处理器的嵌入式Linux版本。用户可以使用其内置工具在微软Windows Visual Studio或Metrowerks CodeWarrior集成开发环境下自主开发。LynuxWorks公司还提供一种满足实时要求的二进制兼容操作系统LynxOS。BlueCat Linux的售价,包括六个月技术支持费用在内为2699美元。
最流行的台式系统和嵌入式系统两用的Linux版本是由Red Hat Software公司供应的。Red Hat Software公司不供应专用嵌入式Linux版本,并说你可把标准Linux内核从企业级升级到深度嵌入式应用程序。用户可以免费下载当前的Red Hat Linux7.3版本,或者花59.95美元购买个人版本,个人版本包括30天的Red Hat网络基本服务和基于Web的技术支持。售价为199.95美元的小型业务用专业版本增加了一张系统管理员CD、90天的Red Hat网络基本服务、60天的基于Web的技术支持和有限的电话技术支持。Red Hat Software公司还提供嵌入式开发者套件(the Embedded Developer Suite),针对嵌入式设备对标准版本进行定制。该套件起订价为2500美元。
单板计算机制造商也认为,Linux对他们的产品来说是一种有价值的促销工具。例如,CompuLab公司生产的786Core 模块是一种在各种嵌入式系统中用作积木块的与PC兼容的小型单板计算机(图5),它包括一个400~700 MHz的Celeron或Pentium-III处理器(具有256MB SDRAM内存)。786Core仅仅比信用卡稍大一点,内含大多数台式机外设接口,以及供选择的嵌入式功能部件,如一个闪存磁盘、100MB以太网端口、USB端口和分立式的I/O线。你可从CompuLab公司网站为786Core下载一个免费的现成Linux映像,并把映像装入闪存,然后重新启动,就可得到了一个带有所有外设驱动程序的实用Linux系统。786Core的起价是275美元。
如果你对于用于嵌入式系统的Linux不熟悉,你可访问www.linuxdevices.com网站,找到大量关于源码开放的和商用Linux产品的信息。该网站有关于Linux编程的最新消息、文章和指南,以及现有Linux版本清单和嵌入式系统专题讲座。另一个可以获得嵌入式Linux背景知识的来源是K Computing公司举办现场亲自实践的教员引导的培训班。有一种典型的培训可帮助学员一步一步地学会用因特网上免费得到的源码开放软件,定制一种支持嵌入式系统的Linux环境。亲自实践的项目有:配置一个定制的Linux内核,建立一套完整的文件系统,建立一个可引导的映像程序。
Linux操作系统显然已进入嵌入式设备领域。它现已应用于娱乐、工业控制、联网设备、军事和通信等领域,并正在向更多的领域进军。需要复杂的用户接口或网络连接的开发小组已经走在了前列,但是,哪怕是在最小型的项目中也发现了源码开放、而又无特许使用费的操作系统的好处。如果在下一个项目中选择Linux,你就可以利用因特网上数百万行免费软件亲自做这项工作,要不然就与商用Linux供应商签订合同,由这些供应商为你的开发项目提供定制软件和技术支持。不管怎样,Linux正在加紧占领嵌入式设备市场已不容置疑。
图片说明
图1
FSMLabs公司的RTLinux把Linux看作是在小型RTOS下的低优先权任务执行软件,从而可为嵌入式系统开发人员提供实时操作性能。
图2
Metrowerks公司的CodeWarrior开发平台包含一个带有共享程序库的能进行多线程调试的应用层Linux调试程序。
图3
Kdevelop集成开发环境(IDE)可以通过公开途径得到,并支持具有源码管理、编辑和调试等功能的C项目和C++项目。
关键词: 异军突起 Linux 抢占 嵌入式 设备 市场 软
共1条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |