ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 嵌入式系统开发,为什么选择Linux?(转)

嵌入式系统开发,为什么选择Linux?(转)

原创 Linux操作系统 作者:jcszjswkzhou 时间:2019-05-28 17:00:07 0 删除 编辑

在过去的十年中,嵌入式系统的开发发生了很大的变化。以前嵌入式设备往往是一个孤立的、资源有限的系统,它们追求的是在有限的价格上满足一定的功能性要求。通常它们采用那些功能并不强大的CPU,这也是开发者不得不尽可能地压缩嵌入式系统性能的原因。而今天人们对嵌入式设备在智能化和互连性上提出了要求,这使得嵌入式设备不再是孤立的,他们要通过互联网、无线或是其他的方式实现相互连接,同时它们也是软件生态系统(software ecosystem)的一部分。最初的嵌入式设备是单一用途的,它们拥有各自独特的显示方式和用户界面;而今天它们变成了我称之为“等同PC”的系统。它们必须运行很多相同的应用程序,它们需要采用相同的方式实现互连或是在某些情况下增强互连性。因此你可以看到在传统的实时操作系统(RTOS)之上建立应用程序的必要性。作为内部开发(in-house developed)操作系统的替代方式,RTOS的出现使得建立嵌入式应用变得更加容易。

在2000年以前,大多数的嵌入式系统仍然建立在内部开发的操作系统(OS)基础之上,但在此之后,WindRiver和其他的商业化RTOS产品逐渐赢得了越来越大的市场份额。

如果开发者试图通过内部开发建立某些嵌入式系统,就不得不建立从固件到应用程序的完整的软件栈(software stack)。垂直集成在给开发者带来很大的控制能力的同时,也需要其在开发和维护上进行大量的投入。在过去的五年中,在经历了全球性的经济危机之后,面市时间(time-to-market)意味着一切,追求附加值成为电子业重要的追求。因此,如果你是一个工程经理,考虑到你手中的资源,你是宁愿投资去创建一个自主产权的操作系统软件平台,还是去开发那些可以给你的应用带来差异化的技术呢?我相信你会选择后者,因为开发者通常希望使他们的应用变得与众不同。这就使得内部开发操作系统整合自主产权内核的方法逐渐被淘汰。

如果你使用VxWorks或者是pSOS,仍然免不了要在建立应用软件和中间件上进行大量投入。这是因为围绕在这些操作系统周边的生态资源十分有限。例如对于VxWorks,只有一种Webserver可供使用,而如果采用Linux,会有八九种Webserver供你选择;VxWorks只提供了一种网页浏览器,而Linux有16种不同的网页浏览器支持。通常情况下对于某种实时系统你只能选择一种文件系统——通常情况下为与windows兼容而选用FAT文件系统;而Linux包含八九种本地文件系统,它们可以与十多种外部文件系统兼容。

传统的RTOS与Linux相比还有一个很大的不同——传统的RTOS是一系列“服务”的集合(libraries of services),开发者需要一个功能就加入一个功能,如果开发者不需要就将它们去掉。但这就意味着建立在一个RTOS上的系统的每一个执行程序都是不同的,因为开发者只是与那些需要的“服务”相联系,你建立的是一组非常独特的服务集合。这并不象是一个操作系统。而象Linux这样的操作系统提供了一个统一的平台,这使得那些智能设备不但可以获得更好的互连性,增强它们彼此之间的差异性,同时也使它们获得了不同的生命周期。

以手机的开发为例,一部智能手机在离开工厂时,它具有一系列确定的功能。但是在销售渠道中,人们往往希望对它原有的功能进行修改,或是加入其他的功能。运营商希望在他们销售的手机中体现出更多的差异化,他们希望加入诸如游戏等更多的服务。而最终用户也许还希望能够从第三方购买到更丰富的游戏(和其他服务)。如果开发者的手机是一个单一用途的设备,它只能提供有限的服务,那么在它基础上建立服务和其他增值功能将是非常困难的。但如果开发者面对的是一部采用嵌入式Linux的手机,并了解API和相关的标准,他们就可以十分迅速地建立起丰富的软件生态系统并迅速占领市场。产品长期的差异化与互连性息息相关,这包括它的网络互连性、与中间件的互连性,以及与外围生态环境的互连性。Linux作为一个“在互联网上成长起来的动物”,无论从哪方面讲都应该算是互连性最好的操作系统。

有人会将Linux与微软的Windows相比较,确实Windows具有很好的互连性,且具有非常全面的软件栈。但一旦开发者用Windows建立了产品,他也就丧失了实现差异化的机会。仅仅将Windows OS加到你的产品中并实现商用是十分迅速的。所以如果你想获得面市时间上的优势,Windows会给你带来很多功能性上的优势。但是你获得功能性的同时,也就失去了差异化的机会。

当然,Windows还有其他一些技术上的问题,这主要体现在可靠性和软件规模方面。Windows的“体积”十分庞大。人们都在说Linux很大,确实与传统RTOS的70~80k的代码规模相比,Linux的大小通常在几兆字节,而最小的Windows CE的代码规模也有27MB(BIPLIP标注:应该是2~3MB)。出于政治和法律上的考虑,微软是不能将Windows进行拆分的。

同时,Windows和其它RTOS还将遇到来自用户不断增加的使用成本(runtime costs)方面的挑战,因为他们收取高额的版税。嵌入式Windows的版权费大约为每拷贝12~15美元。对于那些大批量的产品,其每件产品上可承受的分摊成本十分有限,如果要向Windows支付这样的版税,很可能会造成亏本。其它商业化的RTOS采用的也是这样一种收取版税的商业模式。而Linux,其突出的一个优点就是免版税的。

Linux还具有很好的可靠性。传统的RTOS通常不具备强大的内存保护功能,这使应用程序很容易被破坏。

另一个影响嵌入式系统对操作系统选择的是商业因素。在这方面传统RTOS供应商和微软的境遇是相同的。传统RTOS供应商和微软都会在不与客户协商的情况下终止某一产品的供应,他们的商业决策是从他们公司自身的利益出发的,而不是站在客户的角度考虑。Linux则能给予使用者更多的选择。

如果采用一个开放源码的操作系统,开发者能够主宰他们自己的命运,他们不必被一个供应商的决策牵着鼻子走,他们总是有很多选择。即使他们选择了MontaVista这样商业化的Linux供应商,他们依然能够保有对开放资源进行客户化和利用的选择性,他们可以选择继续和MontaVista合作或是走开。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-126890/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-08-29

  • 博文量
    3488
  • 访问量
    2603901