面向实时嵌入式系统的图形用户界面支持系统――MiniGUI 背景,发展及优势
但是,我们必须清楚的是,嵌入式系统往往是一种定制设备,它们对 GUI 的需求也各不相同。举个简单的例子,有的系统只要求一些图形功能,而有些系统要求完备的 GUI 支持。因此,GUI 也必须是可定制的。
综上所述,GUI 在嵌入式系统或者实时系统中的地位将越来越重要,这些系统对 GUI 的基本要求包括:
1.轻型、占用资源少。
2.高性能。
3.高可靠性。
4.可配置。
尽管实时嵌入式系统对 GUI 的需求越来越明显,但目前 GUI 的实现方法各有不同:
该项目已经启动了一个开放源码的浏览器项目,该浏览器在 KDE kfm 提供的 HTML 解释器的基础上开发,目前能够解释一些简单的 HTML 页面。
OpenGUI 在 Linux 系统上存在已经很长时间了。最初的名字叫 FastGL,只支持 256 的线性显存模式。但目前也支持其他显示模式。这个库是用 C++ 编写的,只提供 C++ 接口。
因此,MiniGUI 是一个非常适合于工业控制实时系统以及嵌入式系统的可定制的、小巧的图形用户界面支持系统。
MiniGUI 中的窗口基本分四类,分别为主窗口、对话框、控件和主窗口中的子窗口。
图 1 VConGUI -- MiniGUI 上的 Linux 控制台仿真器
MiniGUI 中的对话框是一种特殊的窗口,对话框一般和控件一起使用,这两个概念和 Windows 或 X Window 中的相关概念是类似的。MiniGUI 支持的控件类型有:
HappyLinux 是国内某公司开发的中文 Linux 发行版,该发行版的安装程序就建立在 MiniGUI 之上。图 2 和图 3 是 HappyLinux 安装程序的典型屏幕。
图 2 HappyLinux 的软件包选择界面 图 3 HappyLinux 的分区界面
图 4 扫雷游戏的克隆:Bomb 游戏图 图 5 俄罗斯方块游戏的 MiniGUI 版本
在任何 GUI 系统中,均有事件或消息驱动的概念。在MiniGUI中,我们使用消息驱动作为应用程序的创建构架。
应用程序一般要提供一个处理消息的标准函数。在消息循环中,系统可以调用此函数,应用程序在此函数中处理相应的消息。
图 7 给出了 MiniGUI 的高级字体支持功能。第一个界面采用 TTF 字体,以旋转方式输出"MiniGUI IS GREAT!";第二个界面给出了多种字体文字的居中、右对齐等输出效果。
- MiniGUI 资源
- MiniGUI 邮件列表
魏永明(ymwei@minigui.org), 男,26 岁,工学硕士,现任蓝点软件(深圳)有限公司北京研发中心技术主管。国内最有影响的自由软件项目之一-- MiniGUI 的创始人以及主要开发人员。著有《Linux 实用教程》与《学用 Linux 与 Windows NT》,并主持翻译了《Red Hat Linux 奥秘》等大量优秀的 Linux 技术著作。是清华大学 AKA Linux 编程技术系列讲座的主讲人。