当前位置:Linux教程 - Linux业界 - 擂台战:嵌入式Linux面临图形化挑战

擂台战:嵌入式Linux面临图形化挑战

最近,计算机嵌入式产业研究显示Linux系统是大多数嵌入式开发项目的首选操作系统。起初,Linux只是一种简单的解决方案,为爱好者提供了一个免费且功能强大的开发平台。但是现在它已逐步成为一个成熟、稳定、功能强大且倍受关注的操作系统。
Linux操作系统涉猎的范围从程序控制系统、个人数字助理(PDAs)及家用电器到桌面系统和高端网络服务器,乃至于功能强大的计算集群和复合处理器系统。

Linux的种种优势使得它在整个计算机领域魅力十足,特别是在嵌入式系统方面尤为突出。比起一些所有权嵌入式操作系统,Linux的价格、性能及灵活性等有利条件是显而易见的。

在Linux被引入嵌入式开发之前,大多数嵌入式技术开发人员很少进行跨平台的开发研究,因为他们所用的操作系统只能在目标硬件上运行。Linux逐渐在嵌入式领域扩大战场的同时,跨平台开发方案,即原本在一个平台上开发的应用软件也可以在其它平台上进行开发和编译,也已广泛应用于嵌入式系统的开发实践中。

然而,大多数新的嵌入式方案以Linux系统为开发平台并不意味着Linux系统是惟一的选择。西方有句俗语:效仿是表达恭维的最好方式。

目前,有多家所有权嵌入式系统的厂商也效仿Linux系统取消了其操作系统的使用费用。同样,他们也模仿Linux系统源代码的开放性,开始免费为消费者提供其操作系统的源代码。Linux面临着各方面的挑战。

开发工具的图形化挑战

许多嵌入式软件开发项目都很复杂,造成这种复杂性的主要原因如下:
◆ 应用软件的复杂性可能源于所使用的运算法则,也可能源于设计方案(比如复杂的客户应用程序或服务器应用程序),或者二者兼而有之。
◆ 用户的应用程序与其它应用软件乃至操作系统间的相互作用也可能会带来问题,这需要用户对系统进行长期不间断地监测。
◆ 系统和资源限制可能导致反复地重写或优化过程。
◆ 标准的系统库和关联程序设计技术也许无法应用于特殊的架构,用户不得不选择或开发其它替代方案。
◆ 在功能有限的情况下,很难对应用软件进行远程调试和维护。
虽然,以上这些问题对于在嵌入式应用软件开发和操作系统等方面有足够经验的专业人员来说都很好解决,但没人能保证身边总有专家。因此,最好的解决办法就是使用工具软件,以便更容易对嵌入式软件进行开发、监控和调试。

众所周知,图形用户界面(GUI)已经成为计算领域不可缺少的工具。它使电脑从一个专业化工具转变成普通的办公设备和家用电器。虽然操作系统可以提供应用软件开发所需的基本功能,但是,一个简单易用的图形环境和与之相适应的工具软件才是构成开发平台的真正要素。

多年来,所有权操作系统和实时操作系统(RTOS)的厂商在所有权产品领域一直致力于提供应用软件开发工具。

虽然这些为所有权操作系统量身定做的开发工具功能强大,但应用范围却局限于特定的操作系统。当前市场环境下,大多数嵌入式产品厂商为了开发新的嵌入式项目转而采用Linux技术,因此迫切需要一种能支持Linux、功能强大且简便易用的嵌入式软件开发工具。

所有权嵌入式操作系统厂商指出,目前市场上有很多不同的Linux套件,而且每个套件都有特定的市场或服务,市场似乎并不完整。然而,多种版本Linux的存在恰恰证明了Linux的发展潜力,以及它能满足广大用户不同需求的能力。Linux特有的灵活性也需要一系列适用于各种Linux套件的图形化开发工具。

嵌入式开发工具的目标

构成Linux系统的基本要素如下:

◆ Linux内核 内核是操作系统的核心,它能提供各种硬件所需的驱动程序、总线和协议支持等。
◆ 根文件系统 它是系统应用软件、系统启动程序、系统设置程序和用户应用软件的“储藏室”。
◆ 工具链 它用来编辑内核、可加载内核模块和应用软件,并且可以由根文件系统中的程序和系统可访问的其它文件系统来执行。

所有的Linux系统都使用内核和核心工具链(GNU GCC),只是配置不同。所有Linux根文件系统都包含有开放系统社区提供的各种程序,只是不同版本的Linux根文件系统所选择的软件包及其配置的子集有所不同。

嵌入式Linux开发工具面临的挑战是如何适应不同版本的Linux内核、工具链和文件系统软件包,以及如何对其进行定制,以便开发人员使用它们。

桌面和服务器应用软件开发者可以依托性能强大且运行稳定的硬件平台提供一系列优质服务,而嵌入式系统及其应用软件的开发人员需要有更广泛、更丰富的知识。他们不得不在开发过程中考虑以下几点:

◆ 通过一个低级别的硬件端口,比如JTAG,对主板及新硬件或定制硬件进行初始化;
◆ 为新硬件或定制硬件选择、安装并配置引导装载程序;
◆ 可能需要定制内核并开发驱动程序;
◆ 系统级调试需要附带远程访问功能,以便及时准确地解决系统中出现的问题;
◆ 根文件系统的开发,包括开发过程中使用的、存储于内存或宿驻于网络的文件系统,以及其它在Flash或本地存储器中建立并维护的文件系统;
◆ 应用软件的开发;

◆ 使用远程连接方式对应用软件进行调试,以便于进行远端激活和运行分析,这将简化嵌入式系统中应用软件更新的过程;

◆ 对新产品进行测试验证确认,有助于用户对任意组合的系统和应用软件反复进行标准测试。完成这些令人头痛的工作需要各种不同的技能。而图形化工具可以将所需的各种操作模块化,原本复杂至极的工作,现在也许只需要点击几下鼠标就可以完成。这对于开发人员来说,无疑是一种极大的解脱。

应用TimeSys公司的TimeStorm Linux开发套件(LDS),通过点击选单上的相应选项就可以建立各种类型的文件系统。其它复杂的过程,比如,文件系统格式化和提供访问端口等都无须开发人员手动完成。

Eclipse多功能架构

TimeStorm工具组件支持两个目前应用最广泛、功能最强大的Linux系统图形环境,一个是X-Window系统,它几乎是所有Unix和Linux图形开发的基础;另一个是Eclipse结构,该结构扩展性很强,可以建立或分配各种以开发为导向的应用软件,这些应用软件可以相互共存并相互作用。

Eclipse是一个开源软件开发项目,其主要任务是为开发高集成性工具提供一个健壮的、功能齐全的平台。与操作系统厂商不同,它采用行业中普遍使用的开放系统架构来开发嵌入式Linux工具。

这种架构可支持所有厂商的产品,提供统一的图形化描述及操作,并且所有的工具都可以在该架构中协调配合。用户不必再由于开发工具的相互不兼容性而必须使用单一厂商提供的特定产品。

Eclipse提供了一个适用于各种应用软件的基础架构。这些应用软件在Eclipse中被称为“插件”,它们在架构中互动工作。这使得协同开发成为可能,工具软件厂商可以根据不同需要确定不同的发展方向,不用担心自己的插件无法与其它插件实现完美的集成。为了实现最大限度的兼容,Eclipse全部由Java语言编写。

Eclipse已被多家知名的嵌入式工具厂商采用,比如,TimeSys、Wind River、RTI和MontaVista等。甚至有行家预测未来所有工具软件的开发都将由Eclipse来完成。

TimeSys公司的TimeStorm IDE(Integrated Development Environment)就是一组Eclipse插件,它能为嵌入式应用软件的开发、调试及测试提供一个功能强大的开发环境。TimeStorm IDE不需要任何特殊功能就可以与源代码控制系统(SCCS)集成在一起,后者主要用于将各种应用软件源代码分类存档。

不仅如此,Eclipse中的插件可以即时与TimeStorm IDE进行集成。这些插件都可以提供访问各种版本控制系统的端口,比如,CVS、Perforce、Rational ClearCase和Subversion等。
小结

如今,用于嵌入式系统开发、配置和测试的软件开发工具越来越多。Linux固有的强大功能和灵活性使它成为很多新的嵌入式方案的首选平台。

然而,让优秀的产品迅速进入市场不仅要依靠一个自由的、功能强大的操作系统,还要依靠性能强大的工具软件。这些软件能使嵌入式的开发、配置和测试简单化,是提供解决各种复杂问题的百宝箱。

开源软件提供的工具平台,比如Eclipse 架构,极大地推动了此类软件的开发和普及。TimeSys公司的TimeStorm IDE、TimeStorm LDS,以及TimeStorm LVS等基于Eclipse的软件工具为嵌入式Linux的开发提供了众多现成的解决方案。

作者:李蓉 丁大勇 来源:赛迪网