ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 嵌入式Linux和Java 技术——天生的合作者(转)

嵌入式Linux和Java 技术——天生的合作者(转)

原创 Linux操作系统 作者:jcszjswkzhou 时间:2019-05-11 14:03:05 0 删除 编辑

摘要:
  嵌入式Linux和Java技术非常适于协同工作,他们的结合预示着下一代嵌入式系统已经开始出现。同时这种组合使开发技术进入一个新的层次,也提供了一个新的配置的选择。在嵌入式Linux操作系统和Java技术相结合的开发环境中工作的开发者发现这种组合是非常有吸引力的。今天,越来越多的嵌入式开发者选择了这种组合,因为它具有更强的伸缩性,能将产品更快的推向市场的,具有更高的生产力。
本文讨论了Linux操作系统和Java技术的结合在嵌入式程序设计中的应用,我们会更多的关注组合后对各自性能的强化,而不是着重于探讨相互间配合的好处。本文从软件栈、开发平台、处理器覆盖面、开发工具、执行引擎、优化工具、和配置模式全面的讨论Java技术。

为什么是Linux?

  在今天快速改变的市场需求中开发嵌入式应用程序,一个好的决择是通向成功项目的关键。这些决定包括选择处理器和平台、软件栈、开发工具,以及决定产品的特性、功能、生命周期。一但产品进入开发,改变以上任何一个都会导致时间和金钱的浪费,所以在项目开始阶段做正确的选择能够最大限度的提高成功的概率。
嵌入式应用程序所使用的处理器和平台的选择通常是由应用程序的设计目标所决定的。幸运的是我们有大量的处理器和平台可供选择,包括很多通用的解决方案以及由业内领先的芯片商和主板商提供的客户化解决方案。尽管处理器的选择是基础,但是通常开发平台的选择拥有更多的挑战。在很多项目中是根据标准的主板进行配置,但是大多数会使用自己的主板以适应所需要的功能。这通常意味着应用程序是在一个开发板上开发,但是要能支持用户板上预期的特性。寻找一块能够满足设计需求的标准板不是一个微不足道的小事,这些目标中的一个就是要有一个好的软件平台的支持。

   一但硬件平台被选定,就需要找到一个软件支持平台。在这其中,第一个难点就是寻找一个可靠的、稳定的、支持这个硬件的操作系统。它需要能够提供这个项目所需要的支持和工具,同时要有足够的机动性能满足任何专门的需求。但是,由于处理器的选择范围很广,找到一个能支持所选处理器的操作系统非常困难。其中的原因主要是,大多数提供解决方案的操作系统供应商无法跟上大量的芯片体系和主板的快速增长,所以他们必须选择支持有限的几种硬件,以最大化他们投资的回报。

  开放源代码从某种程度上减少了这种问题,但是大多数的提供解决方案的开发商仅仅当他们自己的系统无法满足需求才会给出源代码。这种处于第二位的选择通常受到开发商投入的限制。在很多情况下,项目所选择的主板是没有软件包的支持(BSP或LSP)的,必须要开发一个新的软件包,而且还要开发商有能力而且愿意为此工作。

  当然,你可以通过大量的开放的源代码来建立自己的操作系统,甚至这个操作系统也许会包括很多商业实时操作系统的一些特性。但是对于多数的公司这种方法是不可行的,因为要建立软件环境必然要利用研发产品的技术力量。所以,一个有吸引力的选择是采用一个基于嵌入式Linux的软件环境来开发和管理项目。一旦针对嵌入式做了相应的调整,Linux就会给整个项目的开发和管理提供一个很好的环境,更利于嵌入式解决方案的开发。

  得益于很多人在Linux上的开发及对其进行功能扩展,近几年Linux环境越来越流行。为了适应新的需求,Linux核心技术不断发展,底层的程序也不断的增加以支持大量新的外设、技术、协议和服务。移植Linux到不同的平台的工作大部分是由专业的嵌入式Linux公司来完成的。因为如果要完全支持主板的特性和性能,必需要进行专门的驱动程序开发和系统整合,他们的工作正满足了这种的需要。尽管大多数的嵌入式Linux系统提供商是在开放源代码的基础上进行工作的,实际上他们中很少会完全的公开他们产品的源代码。

   完全开放源代码的一个例子是MontaVista Linux,一个面向嵌入式应用的专业的开发和配置平台。嵌入式Linux系统同时也具有了桌面和服务器上使用的Linux的大多数特性,如可靠性、开放性、高性能。MontaVista公司针对嵌入式系统,在标准的Linux上增加了很多的新特性。尽管他们为此作了很多的工作,但是他们把研究成果完全提供给开放源代码组织,以完整相应的Linux源代码,对Linux的发展作了贡献。以下是他们工作中的几个重要部分:

  • 提供不需要控制的系统引导和程序执行
  • 可从FlashRom进行引导和无硬盘操作
  • 包括Rom引导程序的可裁减Linux内核,最小可到500k.
  • 可支持CompactPCI体系和I/O主板
  • 可支持CompactPCI背板的的网络设备(MontaVista Net)
  • 支持客户化的设计和嵌入式产品制造
  • 压缩的Flash引导支持
  • 支持PCI接口的热插拔

  MontaVista支持了几个处理器体系中的很多处理器和主板:因特尔的奔腾系列,奔腾2/3及兼容设备;386/486级兼容设备;StrongARM 110,1100,1110,Xscale;Motorola PowerPC 603/604,740/750/7400, PowerQUICC 823/860/8260;IBM PowerPC 405;MIPS 4K,5K,7K;Super Hitachi(SH)3,4.

  当然在选择操作系统之上是选择项目的软件环境。在今天激烈的市场中,开发人员需要优秀并且完备的开发工具来提高生产力,它需要支持几个小组甚至是几个地点的合作开发。很多程序需要对于底层模块的控制,特别是在C、C++、汇编语言中。这就需要标准的工具如gcc,kgdb,gdb,ddd等。增加这些工具可以帮助目标程序进行配置、测试、调制以优化。

  我们还需要从传统的实时操作系统到现在的系统进行移植应用程序的工具,以便于代码的重利用。以上所有的这些的开发工具都是必需的,但是要完全的实现嵌入式环境的潜在能力,则需要有一个强大的适应性强的中间环境。在混合的环境中很多的项目也有可能完成,这就包括了以前的程序代码,或者一些专门的高效模式(如声音/图像操作或语言翻译),能够灵活的并且很容易的配置Java程序代码。我们应该感谢Java的虚拟平台,所有在传统的实时操作系统中Java程序实现的功能的都可以用到Linux下的项目中。

为什么是Java技术?

  对于嵌入式系统来说,Java技术比C语言和汇编语言具有很明显的优越性。最显著的特点是减少了系统的开发和维护、代码的重利用能力、以及Java代码与系统原有代码的可整合性。


嵌入式Linux和Java 技术——天生的合作者

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

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

注册时间:2007-08-29

  • 博文量
    3488
  • 访问量
    2621606