随着嵌入式Linux应用的发展,也带动了基于Linux的GUI图形系统的发展。本书中介绍的Linux系统下的GUI是以嵌入式Linux中的GUI为主要对象的。这些GUI与PC机上的Linux GUI有一定的区别,受到嵌入式系统的内存、CPU主频率和磁盘存储空间等因素影响,所以这些GUI基本上都是轻量级的。在很多手持的嵌入式设备中,如MP4/PDA等设备都会使用到液晶——LCD显示,所以在这些嵌入式应用中,嵌入式GUI的性能就显得十分重要了。
6.1 Linux下的主流GUI介绍
支持Linux的图形开发系统比较多,常用的有MiniGUI、MicroWindow和Qt/Embedded等。在嵌入式环境下,GUI系统的整体构架跟桌面PC相差不大,如常用的绘图函数库和字型库、事件处理机制等都是嵌入式GUI系统所要面临的问题。但是嵌入式系统本身由于体积小、资源少的特点,所以在整体设计上必须较为严谨,考虑的条件更多。Linux下的编程可以认为是对编程技能的一种挑战,有时感觉又回到了DOS编程时代。
UNIX环境下的图形视窗标准为X Window System(以下简称X标准),Linux是类UNIX系统,所以顶层运行的GUI系统是兼容X标准的XFree86系统。X标准大致可以划分为X Server、Graphic Library(底层绘图函数库)、Toolkits、Window Manager和Internationalization(I18N)等几大部分。
虽然X架构不错,但是不怎么适用于嵌入式环境,因为实际工作起来实在过于庞大,因此许多嵌入式Linux GUI系统会把上述几点合并,甚至全部绑到一起,当然这样同时也会失去很多弹性与扩展功能,但为了适应嵌入式系统,这也是一个解决问题的方法。下面就介绍一下现存的几种主流嵌入式Linux GUI解决方案。