面向实时嵌入式系统的图形界面支持系统
嵌入式 Linux 系统的 GUI 发展概况
1.1 GUI 在嵌入式或实时系统中的地位
在常见的 PDA 等小型手持式设备上,由于硬件条件等的限制,我们看到的用户界面都非常简单,几乎看不到我们在 PC 机看到的华丽美观的 GUI 支持。但最近出现的 Palm 等手持式电脑或者在 Windows CE 等面向嵌入式系统的操作系统上,我们已经看到了完整的图形用户界面支持。随着手持式设备的硬件条件的提高,我们估计嵌入式系统对轻量级 GUI 的需求会越来越迫切。
近来的市场需求显示,越来越多的嵌入式系统,包括 PDA、机顶盒、DVD/VCD 播放机、WAP 手机等等系统均要求提供全功能的 Web 浏览器。这包括 HTML 4.0 的支持、JavaScript 的支持,甚至包括 Java 虚拟机的支持。而这一切均要求有一个高性能、高可靠的 GUI 的支持。
另外一个迫切需要轻量级 GUI 的系统是工业实时控制系统。这些系统一般建立在标准 PC 平台上,硬件条件相对嵌入式系统要好,但对实时性的要求非常高,并且比起嵌入式系统来说,对 GUI 的要求也更高。这些系统一般不希望建立在庞大累赘的、非常消耗系统资源的操作系统和 GUI 之上,比如 Windows 或 X Window。目前许多这类系统都建立在 DOS 等系统上,并且采用比较简单的手法实现 GUI。但是,在出现 Linux 系统之后,尤其在 RT-Linux 系统出现之后,许多工业控制系统开始采用 RT-Linux 作为操作系统,但 GUI 仍然是一个问题。关键是 X Window 太过庞大和臃肿。这样,这些系统对轻型 GUI 的需求更加突出。
但是,我们必须清楚的是,嵌入式系统往往是一种定制设备,它们对 GUI 的需求也各不相同。举个简单的例子,有的系统只要求一些图形功能,而有些系统要求完备的 GUI 支持。因此,GUI 也必须是可定制的。
综上所述,GUI 在嵌入式系统或者实时系统中的地位将越来越重要,这些系统对 GUI 的基本要求包括:
1.轻型、占用资源少。
2.高性能。
3.高可靠性。
4.可配置。
1.2 目前实时嵌入式系统 GUI 的实现方法
尽管实时嵌入式系统对 GUI 的需求越来越明显,但目前 GUI 的实现方法各有不同:
1.某些大型厂商有能力自己开发满足自身需要的 GUI 系统。
2.某些厂商没有将 GUI 作为一个软件层从应用程序中剥离,GUI 的支持逻辑由应用程序自己负责。
3.采用某些比较成熟的 GUI 系统,比如 MiniGUI 或者其他 GUI 系统。
在上述手段中,第 2 种方法是一种临时解决方案。利用这种手段编写的程序,无法将显示逻辑和数据处理逻辑划分开来,从而导致程序结构不好,不便于调试,并导致大量的代码重复。我们认为 GUI 是一种类似于操作系统的基础软件,这种软件系统应该遵循一定的标准,并且应该是开放源码的自由软件,从而可以让开放商集中精力开发自己的应用程序。目前看来,在 Linux 之上进行(实时)嵌入式系统开发的厂商,一般选择如下几种 GUI 系统:紧缩的 X Window 系统、MiniGUI、MicroWindows、OpenGUI、QT/Embedded 等,下面首先对这些系统进行简单介绍,并对它们的优缺点进行比较。
1.2.1 紧缩的 X Window 系统
众所周知,X Window 是 Linux 以及其他类 UNIX 系统的标准 GUI。X Window 系统采用标准的客户/服务器体系结构,具有可扩展性好、可移植性好等优点。但该系统的庞大、累赘和低效率也是大家所共知的。为了获得应用程序的可移植性,许多厂家都试图通过对 X Window 系统的紧缩开发,使之能够在嵌入式系统上运行。国外已经开发出了大小约为 800K 的 X 服务器。这对西方国家来说基本能够满足嵌入式系统的需求了。但该系统的源代码尚不开放,从而很难进行本地化开发。
1.1 GUI 在嵌入式或实时系统中的地位
在常见的 PDA 等小型手持式设备上,由于硬件条件等的限制,我们看到的用户界面都非常简单,几乎看不到我们在 PC 机看到的华丽美观的 GUI 支持。但最近出现的 Palm 等手持式电脑或者在 Windows CE 等面向嵌入式系统的操作系统上,我们已经看到了完整的图形用户界面支持。随着手持式设备的硬件条件的提高,我们估计嵌入式系统对轻量级 GUI 的需求会越来越迫切。
近来的市场需求显示,越来越多的嵌入式系统,包括 PDA、机顶盒、DVD/VCD 播放机、WAP 手机等等系统均要求提供全功能的 Web 浏览器。这包括 HTML 4.0 的支持、JavaScript 的支持,甚至包括 Java 虚拟机的支持。而这一切均要求有一个高性能、高可靠的 GUI 的支持。
另外一个迫切需要轻量级 GUI 的系统是工业实时控制系统。这些系统一般建立在标准 PC 平台上,硬件条件相对嵌入式系统要好,但对实时性的要求非常高,并且比起嵌入式系统来说,对 GUI 的要求也更高。这些系统一般不希望建立在庞大累赘的、非常消耗系统资源的操作系统和 GUI 之上,比如 Windows 或 X Window。目前许多这类系统都建立在 DOS 等系统上,并且采用比较简单的手法实现 GUI。但是,在出现 Linux 系统之后,尤其在 RT-Linux 系统出现之后,许多工业控制系统开始采用 RT-Linux 作为操作系统,但 GUI 仍然是一个问题。关键是 X Window 太过庞大和臃肿。这样,这些系统对轻型 GUI 的需求更加突出。
但是,我们必须清楚的是,嵌入式系统往往是一种定制设备,它们对 GUI 的需求也各不相同。举个简单的例子,有的系统只要求一些图形功能,而有些系统要求完备的 GUI 支持。因此,GUI 也必须是可定制的。
综上所述,GUI 在嵌入式系统或者实时系统中的地位将越来越重要,这些系统对 GUI 的基本要求包括:
1.轻型、占用资源少。
2.高性能。
3.高可靠性。
4.可配置。
1.2 目前实时嵌入式系统 GUI 的实现方法
尽管实时嵌入式系统对 GUI 的需求越来越明显,但目前 GUI 的实现方法各有不同:
1.某些大型厂商有能力自己开发满足自身需要的 GUI 系统。
2.某些厂商没有将 GUI 作为一个软件层从应用程序中剥离,GUI 的支持逻辑由应用程序自己负责。
3.采用某些比较成熟的 GUI 系统,比如 MiniGUI 或者其他 GUI 系统。
在上述手段中,第 2 种方法是一种临时解决方案。利用这种手段编写的程序,无法将显示逻辑和数据处理逻辑划分开来,从而导致程序结构不好,不便于调试,并导致大量的代码重复。我们认为 GUI 是一种类似于操作系统的基础软件,这种软件系统应该遵循一定的标准,并且应该是开放源码的自由软件,从而可以让开放商集中精力开发自己的应用程序。目前看来,在 Linux 之上进行(实时)嵌入式系统开发的厂商,一般选择如下几种 GUI 系统:紧缩的 X Window 系统、MiniGUI、MicroWindows、OpenGUI、QT/Embedded 等,下面首先对这些系统进行简单介绍,并对它们的优缺点进行比较。
1.2.1 紧缩的 X Window 系统
众所周知,X Window 是 Linux 以及其他类 UNIX 系统的标准 GUI。X Window 系统采用标准的客户/服务器体系结构,具有可扩展性好、可移植性好等优点。但该系统的庞大、累赘和低效率也是大家所共知的。为了获得应用程序的可移植性,许多厂家都试图通过对 X Window 系统的紧缩开发,使之能够在嵌入式系统上运行。国外已经开发出了大小约为 800K 的 X 服务器。这对西方国家来说基本能够满足嵌入式系统的需求了。但该系统的源代码尚不开放,从而很难进行本地化开发。
顶(0)
踩(0)
- 最新评论