浙 江 大 学 硕 士 学 位 论 文摘 要伴随着信息家电,手持设备,无线设备等的迅速发展,相应的硬件和软件也得到迅速发展许多设备都配有 Intel,MIPS,摩托罗拉等公司生产的32位微处理器,甚至还使用了液晶显示器许多开发商也开始为这些设备提供界面友好的嵌入式操作系统 利用Linux搭建嵌入式操作系统是近年来出现的最令人振奋的方案这有多方面的原因首先,运行在嵌入式系统上的Linux能够提供全功能的桌面计算(Desktop Computing),且由于其开放代码,定制变得非常方便其次,Linux 已经支持大多数嵌入式系统上使用的芯片,包括 StrongARM , MIPS 和 PowerPC 最后,Linux是免费的,使用Linux 不需要付出任何费用所以利用 Linux 作为底层操作系统, 其上使用一个 GUI 系统成为现在日益流行的嵌入式操作系统的解决方案市场上常见的 PDA 等小型手持式设备上,以前由于硬件条件等的限制,我们看到的用户界面都非常简单,几乎看不到 PC 机上华丽美观的 GUI 界面但最近出现的 Palm 等手持式电脑或者在 Windows CE 等面向嵌入式系统的操作系统上,我们已经看到了完整的图形用户界面支持。
随着手持式设备的硬件条件的提高,估计嵌入式系统对轻量级 GUI 的需求会越来越迫切近来的市场需求也显示,越来越多的嵌入式系统,包括 PDA、机顶盒、DVD/VCD 播放机、WAP 等等系统均要求提供全功能的 Web 浏览器这包括 HTML 4.0 的支持、JavaScript 的支持,甚至包括 Java 虚拟机的支持而这一切均要求有一个高性能、高可靠的 GUI 系统的支持 受导师的影响,本人长期以来对以Linux 操作系统比较感兴趣,并从研二开始加入由魏永明先生发起的 MiniGUI 项目,对整个MiniGUI系统及同类系统如 Microwindows 等进行了一定的研究,并对 MiniGUI 进行了一定的改进和功能扩充本论文基于这些事实,对面向嵌入式系统的 GUI 系统的体系结构和一些技术内幕做了较深入的探讨 论文首先概述了嵌入式系统及用户界面的发展情况,接着介绍了几种嵌入式系统下的图形用户界面,通过相互比较,指出和通用的图形用户界面系统相比,嵌入式系统下的图形用户界面需要有轻型、占用资源少,高性能,高可靠性,可配置等特点第三章介绍了典型系统MiniGUI,第四章介绍了本人实现的MiniGUI对Type1 字体的支持。
本文的第五章将介绍 MiniGUI 输入和图形输入/输出引擎的设计,实现难点及相关的一些技术细节MiniGUI的私有输入和图形输入/输出引擎为本人设计实现,在这些过程中获得的一些宝贵经验将一并介绍第六章给出MiniGUI的一些应用实例最后是一点感想和展望关键词: 图形用户界面; 嵌入式系统;私有输入和图形输入/输出引擎AbstractIn the fast-changing world of embedded, handheld and wireless devices, there are many hardware and software design changes taking place. Many devices now feature 32-bit microprocessors from Intel, MIPS and Motorola, as well as larger LCD graphical displays. In order to leverage the significant results gained in the last ten years, many developers are turning to using friendly user interface operating systems with these new embedded designs. One of the most promising emerging areas seems to be running Linux in these environments, for a couple of good reasons: Linux on embedded systems brings with it the entire power of desktop computing, along with many solutions already running. Linux, being open source, allows any aspect of the solution to be fully understood and then customized for a particular application. Linux also supports all the new microprocessors typically included in embedded designs, including StrongARM, MIPS and PowerPC. Finally, Linux is free, with no royalty payments required for it’s use.So using linux as operating system , with a GUI system built on, seems to be a good solution.For the handled devices on the market such as PDA, as to the poor hardware in old days, the user interface was very simple, we could hardly see the colorful GUI which was supported by PC. But recently we found that some embedded operating systems such as Windows CE and Palm OS, have supported complete GUI features. With the great performance improvement of the hardware, we think that the need for mini GUI systems is urgent. Under the influence of my tutor , Professor Li, I got interest with Linux operating system several years ago. And from Grade 2, I took part in project MiniGUI, initiated by Wei Yongming, a former teacher of Tsinghua University. I soon got familiar with it, and also its opponent Microwindows. Then I did some optimization for MiniGUI and also wrote a native low-level engine for it. Based on these facts, this thesis demonstrate architecture and internals of GUI system used on embedded systems.At first, the thesis outlines the history of embedded systems and user interface, then we compare several GUI systems under embedded systems, point out the peculiarity of GUI on embedded systems, that is, lightness, less resource requirement, quicker response, high reliability and easy configuration. In chapter 3, we introduce typical system MiniGUI. In chapter 4, we introduce supporting for Type 1 font on MiniGUI. The native engine of MiniGUI is developed by the author, in chapter 5, the design and implementation of native engine is introduced. Also some experience gained in the coding process is included. Chapter 6 give some examples, and the last chapter gives some conclusion and foresight.Keywords: GUI; Embedded System; Native Input & Graphics Input/Output Engine.目 录摘 要 IABSTRACT III目 录 V第一章 嵌入式系统及用户界面概况 11.1 嵌入式系统概况 11.1.1 嵌入式技术的历史发展 11.1.2 嵌入式系统的技术特点和应用前景 21.1.3 典型的嵌入式系统 21.1.4 把握契机,改变我国在自主产权方面相对匮乏的局面 31.2 用Linux 搭建嵌入式系统 41.3 用户界面概况 61.3.1 用户界面的历史 61.3.2 图形用户界面的特征 61.3.3 图形用户界面系统的结构模型 71.3.4 用户界面的发展:GUI+新人机交互技术 81.4 典型的GUI系统 ── X 窗口系统简介 101.4.1 X 窗口系统的历史 101.4.2 XFree86 计划 111.4.3 X 窗口系统的结构模型 11第二章 嵌入式LINUX下的GUI概况 132.1 GUI 在嵌入式或实时系统中的地位 132.2 目前实时嵌入式系统 GUI 的实现方法 142.2.1 紧缩的 X Window 系统 142.2.2 MiniGUI 142.2.3 MicroWindows 162.2.4 OpenGUI 182.2.5 Qt/Embedded 192.3 各种嵌入式 GUI 系统之比较 19第三章 典型的嵌入式GUI系统 MINIGUI 213.1 项目背景 213.2 重要特色 223.2.1 多线程和多窗口 223.2.2 对话框和标准控件 223.2.3 其他 GUI 元素 233.2.4 消息和消息循环 233.2.5 图形和输入抽象层 243.2.6 多字体和多字符集支持 253.3 体系结构 253.3.1 多线程的分层设计 253.3.2 微客户/服务器结构 263.4 面向对象技术的运用 273.4.1 控件类和控件 273.4.2 GAL 和 IAL 283.4.3 字符。