技术开发 频道

三局见真章 微软Linux嵌入式开发成本PK

  第二局:组件化和硬件兼容性大比拼

  (1)组件化技术可大大降低开发成本

  大量的嵌入式开发项目已证明复用技术是提高开发效率,降低开发成本,并改善软件质量的有效方式之一。所谓复用技术,其核心是组件化、构件化。经过多年发展和积淀,成熟的嵌入式开发平台大多支持基于组件(Components)的开发方法,从而使到不同产品、不同开发项目之间能实现大范围的软件组件重复使用,从而加快开发速度,降低开发成本。

  据微软Teched 2009技术大会的资料介绍,Windows Embedded Standard 2011是针对Windows 7平台的模块化系统。为了适应嵌入式产品的定制化需求,微软将Windows 7拆分成一万多个独立的功能组件,允许用户根据自己的需求在自定义设备映像管理时选择非常好的功能,以定制尺寸更小的操作系统。因此,通过提供大量成熟而实用的组件的方式,使得Windows Embedded Standard 2011平台具有了“配置化”的开发特点,有效的降低了对开发人员的技术要求。据统计数据显示,相对于其它开发平台而言,这可以节省40%~60%的人力成本,并且可缩短50%~80%的软件开发周期。此外,Windows Embedded的应用程序开发接口是Win32 API,与桌面Windows的基本一致,这大大的方便桌面Windows开发人员向Windows Embedded嵌入式开发过渡。

  同时,微软Windows Embedded操作系统还为许多特殊功能需求和外围设备提供了一系列广泛的硬件驱动支持和功能组件支持,包括:工业自动化系统和机器人、互联网IP电话、家庭网关、消费电子产品、网络机顶盒、GPS设备、游戏机、零售终端收银机POS和自动柜员机ATM等。因此,Windows Embedded的成本优势主要是体现在优化端对端的开发,快速配置、构建和部署等功能组件上。而且,Windows Embedded还有大量的第三方应用软件支持。无论是针对特殊需求优化的功能组件,还是针对硬件驱动支持来说,嵌入式Linux都相对的缺乏,这都需要更多的完善。

  (2)硬件兼容性和可移植性

  微软Windows Embedded的策略是推出广泛的组件化、硬件兼容性和可移植性,以使嵌入式设备开发商在从大量的功能和特性选择时具有更大的灵活性和选择权。硬件兼容性和可移植性选择包括:CPU处理器、硬件外围设备、硬件驱动程序等。其中CPU处理器选择是最为重要的,同时硬件外围设备驱动程序也是非常关键的。原因是CPU处理器的选择往往会限制操作系统的选择,而操作系统的选择又会限制或影响硬件驱动程序的选择。

  当今的嵌入式系统开发是处于高度分化状态中,因为有着多得让人眼花缭乱的CPU处理器和硬件外围设备可供选择。但处理器和硬件外围设备的多样化也困扰着嵌入式系统的开发者,这一障碍导致开发商必须要小心选择软件开发平台和开发工具环境。而作为通用性强的嵌入式平台Windows Embedded是能满足甚至超过了这些需求。例如,Windows Embedded支持多种处理器家族,包括X86、PowerPC、ARM、MIPS和SH等系列,而且微软为每个支持的处理器家族提供了完整的系统库。另外,Windows Embedded可以通过OEM适配层OAL适配到任何硬件外围设备上。其中OAL是驻留在Windows Embedded内核和硬件之间的代码层,原始设备制造商使用OAL代码把Windows Embedded适配到自己的硬件上。在硬件外围设备驱动程序上,微软提供了许多参考的样例。开发人员通过参考样例可迅速地完成硬件外围设备驱动程序的开发,不但可以节省开发时间,还能降低开发的技术难度。

  第三局:平台生态环境成本大比拼

  (1)开发工具生态环境成本考虑

  当开发人员围绕一个平台进行开发时,就跟它相关的生态环境密切相关。平台生态环境是指所有参与这个开发平台的合作伙伴,例如芯片厂商、开发工具提供商、以及在平台上做应用开发的厂商。目前,嵌入式Linux很少有第三方厂商的支持,不管是开发工具还是应用程序,开发商必须开发所有的东西,这对于今天分秒必争的嵌入式市场来说是不现实的。而微软Windows Embedded的第三方开发资源和可重复利用的资源很多,使到应用程序的开发速度会较快,也使到产品上市周期会比Linux快很多。

  另外,与嵌入式Linux相比,Windows Embedded不但是一个成熟的商业产品,更重要的是微软推出功能强大的辅助开发工具,这能帮助客户实现快速开发和减少投入市场的时间。而嵌入式Linux则相对的缺乏成熟的开发工具和生态环境。因为对开发人员来说,微软已经帮他们完成了80%的软件开发工作,例如提供很多的库和基本的软件框架,客户只需把与他们实际应用相关的软件部分填进去就可以了,这使得客户在微软Windows Embedded平台上更容易完成开发工作。虽然使用Windows Embedded是需要先花费一笔授权许可费,但天下没有免费的午餐。因此,在谁先进入市场谁就能获得更大利润的今天,选择一个功能强大,同时又有使用方便的开发工具的生态环境显得至关重要。

  (2)从应用和学习成本考虑

  众所周知,开发一个产品的隐形成本究竟是多少,是与开发者已有的资源密切相关的。例如,开发者熟悉工具的学习成本就是一个非常关键的考虑因素。从学习和研究的角度来看,Linux能让开发者了解到最彻底的东西,因为开发者有全部的源码。而Windows Embedded只给封装好的各种API,通常学到的是表层的内容。但与Linux相比,Windows Embedded的主要优点是应用简单和容易学习。因为微软提供了方便的IDE和开发工具,无论是对于OS的定制、裁减、交叉编译,还是应用程序的开发都相对简单。

  此外,从微软在Teched 2009公布的市场策略来看,使用微软Windows Embedded的客户不必投入资源用于技术支持和培训,因为微软有众多的培训合作伙伴。相比之下,虽然开源的Linux曾经在一段时间内风靡一时,但毕竟没有大量的人力、物力以及技术实力的持续投入,使到Linux系统在大规模商用时往往成为一纸空谈。

  最后,除了技术支持与合作伙伴之外,相信微软也是在市场营销方面唯一一家跟嵌入式厂商一起开拓市场的厂商,而Linux则没有哪一家厂商是从市场营销方面来跟开发厂商配合。总而言之,在激烈竞争的商业环境中,谁都希望以更低的成本、更快的速度推出满足市场需求的产品,但前提是要根据自家的技术实力综合的考虑总拥有成本。

0
相关文章