摘要:剖析嵌入式操作系统下典型的图形用户界面MiniGUI的结构和特性,并提出将其移植到SUNPLUS的DVD720上的方案。
关键词:图形用户界面(GUI)嵌入式系统FrameBuffer
引言
1嵌入式Linux下的GUI概况
1.1GUI在嵌入式系统中的地位
随着嵌入式系统的广泛应用,PDA、机顶盒、DVD/VCD播放机及WAP手机早已迅速普及。图形用户界面(GUI)的广泛流行,是现今计算机技术的重大成就之一。它极大地便捷了非专业用户的使用,因而实时嵌入式系统对GUI的需求越来越显著,而这一切均要求有一个高性能、高可靠的GUI的支持。
因为嵌入式系统实时性要求十分高,对GUI的要求也更高。这种系统通常不希望构建在庞大碍眼的、非常消耗系统资源的操作系统和GUI之上,例如Windows或XWindowlinux,太过庞大和臃肿。这样,这种系统对重型GUI的需求愈加突出。另外嵌入式系统常常是一种订制设备嵌入式linux系统移植,它们对GUI的需求也各不相同。有些系统只要求一些图形功能,而有些系统要求完备的GUI支持,为此,GUI也必须是可订制的。嵌入式系统对GUI的基本要求包括重型、占用资源少、高性能、高可靠性及可配置[1]。
1.2目前嵌入式系统中GUI的实现
虽然实时嵌入式系统对GUI的需求越来越显著嵌入式linux系统移植,(凹丫丫例文网搜集整理)但目前GUI的实现方式各有不同[1]:
①某些小型厂商有能力自己开发满足自身须要的GUI系统。
②某些厂商没有将GUI作为一个软件层从应用程序中剥离,GUI的支持逻辑由应用程序自己来负责。
③采用个别比较成熟的GUI系统,例如MiniGUI、MicroWindows或则其它GUI系统。
比较常用的有如下几种GUI系统:缩紧的XWindow系统、MiniGUI、MicroWindows、OpenGUI及QT/Embedded等。下边简单介绍这种系统。
(1)MiniGUI
MiniGUI[2]由原复旦学院班主任魏永明先生开发,是一种面向嵌入式系统或则实时系统的图形用户界面支持系统。它主要运行于Linux控制台,实际可以运行在任何一种具有POSIX线程支持的POSIX兼容系统上。MiniGUI同时也是国外最早出现的几个自由软件项目之一。稍后将对它作详尽的介绍。
(2)MicroWindows
MicroWindows[3]是一个知名的开放源码的嵌入式GUI软件。MicroWindows提供了现代图形窗口系统的一些特点。MicroWindowsAPI插口支持类Win32API,插口企图和Win32完全兼容。它还实现了一些Win32用户模块功能。MicroWindows采用分层设计方式,便于不同的层面才能在须要的时侯改写,基本上用C语言实现。MicroWindows早已支持Intel16位和32位CPU、MIPSR4000以及ARM芯片;但作为一个窗口系统,该项目提供的窗口处理功能还须要进一步构建,例如控件或预制构件的实现还很不完备,鼠标和键盘等的驱动还很不健全。
(3)OpenGUI
OpenGUI[4]在Linux系统上存在已然很长时间了。这个库是用C++编撰的,只提供C++插口。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个高层的C/C++图形/窗口插口。OpenGUI提供了二维绘图主词、消息驱动的API及BMP文件格式支持。OpenGUI功能强悍,使用便捷。OpenGUI支持键盘和鼠标的风波linux系统界面,在Linux上基于Framebuffer或则SVGALib实现绘图。因为其基于汇编实现的内核并借助MMX指令进行了优化,OpenGUI运行速率特别快。正因为其内核用汇编实现,可移植性遭到了影响。一般在驱动程序一级,性能和可移植性是矛盾的,必须找到一个折衷。
(4)QT/Embedded
QT/Embedded[5]是知名的QT库开发商Trolltech的面向嵌入式系统的QT版本。这个版本的主要特性是可移植性较好,许多基于QT的XWindow程序可以十分便捷地移植到嵌入式系统;并且该系统不是开放源码的,假如使用这个库,可能须要支付高昂的授权费用。
2MiniGUI的特性和体系结构
2.1MiniGUI的特征
MiniGUI的主要特征有[1]:
◇遵循GPL条款的纯
《嵌入式Linux的MiniGUI研究和移植》