知识大全 恰当选择嵌入式Linux环境下的GUI系统(图)

Posted 系统

篇首语:学问之根苦,学问之果甜。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 恰当选择嵌入式Linux环境下的GUI系统(图)相关的知识,希望对你有一定的参考价值。

恰当选择嵌入式Linux环境下的GUI系统(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在嵌入式系统领域 有不少GUI系统 如QNX Photon MicroGUI等 可是具体到嵌入式Linux领域又有哪些可供选择的GUI系统呢?    在嵌入式环境底下 GUI系统的整体构架跟PC Desktop相去不远 例如绘图函数库 字型 事件处理等也都是嵌入式GUI系统所要面临的 但是嵌入式系统本身由于体积小 资源少的特点 所以在整体设计上必须较为严谨 必须考虑的条件更多 有时很像又回到了Dos下编制程序的年代 对于软件所占的存储量有时可以说是锱铢必较     Unix环境下的图形视窗标准为X Window System(以下简称X标准) Linux是类Unix系统 所以顶层运行的GUI系统是兼容X标准的XFree 系统 X标准大致可以划分X Server Graphic Library(底层绘图函数库) Toolkits Window Manager Internationalization(I N)等几大部分(详细内容见链接)     笔者认为 虽然X架构不错 但却不怎么适用于嵌入式环境 因为实际工作起来实在太过于庞大 因此许多嵌入式Linux GUI系统会把上述几点合并 甚至全部绑到一起 当然这样同时也会失去很多弹性与扩展功能 但为了适应于嵌入式系统 这也是一个解决问题的方法 本文下面就介绍一下现存的主流嵌入式Linux下GUI解决方案      主流解决方案介绍     Qt/Embedded    Qt是Trolltech这家商业公司所开发的一个跨平台FrameWork环境 在X环境下可以看作是一套功能完整的用户界面工具包 它采用类似C++的语法 并且具备物件导向功能 跨平台的特性可以让使用Qt编写的软件 在Microsoft Windows / / Microsoft Windows NT MacOS X Linux Solaris HP UX Tru (Digital UNIX) Irix FreeBSD BSD/OS SCO AIX等许多平台上执行 虽然是商业公司的产品 但是Qt走的却是开源路线 并遵循同样的游戏规则 提供免费下载 全部都是开放源代码 非商业用途亦采用GPL的版权宣告 著名的Open Source KDE 项目便是采用Qt所开发的     Trolltech也针对嵌入式环境推出了 Qt/Embedded 产品 与桌面版本不同 Qt/Embedded已经直接取代掉X Server及X Library等角色 所有的功能全部整合在一起     Qt/Embedded 同样具有跨平台的特点 省掉了不少移植软件的功夫 这样的概念和Java十分接近 同时它还采用模块化设计 其最大的好处是有弹性 Qt/Embedded号称最小可以缩到 Kb左右 最多可以长到 Mb(for Intel x ) 这样的弹性也让Qt/Embedded更适合在嵌入式环境下生存    >   >    另外 Trolltech公司还推出了针对PDA软件的整体解决方案QPE(Qt Plamtop Environment) 它从底层的GUI系统 Window Manger Soft Keyboard到上层的PIM 浏览器 多媒体等 全部都考虑进去了 其主界面如图 所示 内部包括地址簿 计算器 世界时间 时间设置 记事本 终端 文件浏览器 帮助 媒体播放器 图像浏览器 文本编辑器等     相对其他GUI来说 Qt/Embedded 应该说是肥美型的产品 功能丰富 但能消化它的东西只能是高端产品 MB内存是运行它的最小要求 因此 如果开发的产品不是高端的信息终端类产品 不应优先考虑 Qt/Embedded      GtkFB    自从Qt推出了嵌入式版本之后 虽然GTK+并非商业公司所发展 但也加紧脚步推出了GtkFB方案 其宗旨就是要为嵌入式系统推出一套基于GTK+的GUI解决方案 与Qt/Embedded类似 GtkFB也跳过X层直接与FrameBuffer沟通 因此也具有Qt/Embedded的几项优点 不过由于不是商业软件 在发展的速度上较为缓慢      Microwindows    Microwindows Open Source Project成立的宗旨在于针对体积小的装置 建立一套先进的视窗环境 在Linux桌面上通过交叉编译可以很容易地制作出micro windows的程序 MicroWindows能够在没有任何操作系统或其他图形系统的支持下运行 它能对裸显示设备进行直接操作 这样 MicroWindows就显得十分小巧 便于移植到各种硬件和软件系统上     然而MicroWindows 的免费版本进展一直很慢 几乎处于停顿状态 而且至今为止 国内没有任何一家专业对 MicroWindows 提供全面技术支持 服务和担保的公司      MiniGUI   >   >    MiniGUI是中国人做得比较好的自由软件之一 它是在Linux控制台上运行的多窗口图形操作系统 可以在以Linux为基础的应用平台上提供一个简单可行的MiniGUI支持系统 小 是MiniGUI的特色 MiniGUI可以应用在电视机顶盒 实时控制系统 掌上电脑等诸多场合 由于这是由中国人自己开发的GUI系统 所以MiniGUI对于中文的支持最好 它支持GB 与BIG 字元集 其他字元集也可以轻松加入 界面如图 所示      Pure X架构    Tiny X Server是XFree Project的一部分 由Keith Pachard先生所发展 而他本身就是XFree 专案的核心成员之一 一般的X Server都太过于庞大 因此Keith Packard就以XFree 为基础 精简了不少东西而成Tiny X Server 它的体积可以小到几百Kb而已 非常适合应用于嵌入式环境     以纯X Window System搭配Tiny X Server架构来说 最大的优点就是弹性与开发速度 因为与桌面的X架构相同 因此相对于很多以Qt GTK+ FLTK等开发的软件可以很容易地移植上来     虽然移植方便 但是却有体积大的缺点 由于很多软件本来是针对桌面环境开发的 因此无形之中具备了桌面环境中很多复杂的功能 因此 调校 变成采用此架构最大的课题 有时候重新改写都可能比调校所需的时间还短      OpenGUI    OpenGUI在Linux系统上已经存在很长时间了 最初的名字叫FastGL 只支持 色的线性显存模式 但目前也支持其他显示模式 并且支持多种操作系统平台 比如MS     DOS QNX和Linux等 不过目前只支持x 硬件平台 OpenGUI分为三层: 最低层是由汇编语言编写的快速图形引擎 中间层提供了图形绘制API 包括线条 矩形 圆弧等 并且兼容Borland的BGIAPI 第三层用C++编写 提供了完整的GUI对象库     OpenGUI采用LGPL条款发布 OpenGUI比较适合于基于x 平台的实时系统 跨平台的可移植性较差 目前发展较慢      一点建议    综合上述GUI解决方案各方面的性能 归结起来有在国内有四种GUI较为适用 笔者对其做出推荐      . OpenGUI    由于基于汇编实现内核 并利用MMX指令进行了优化 OpenGUI运行速度非常快 它支持 位的机器 能够在多种操作系统下运行 主要用来在这些系统中开发图形应用程序和游戏 由于历史悠久 OpenGUI非常稳定 但是由于其内核用汇编语言实现 其内部使用的是私有的API 所以其可移植性较差 可配置性也较差      . Qt/Embedded    这个版本的主要特点是可移植性较好 因为Qt是KDE等项目使用的GUI支持库 所以许多基于Qt的X Window程序可以非常方便地移植到Qt/Embedded版本上 因此 自从Qt/Embedded以GPL条款发布以来 就有大量的嵌入式Linux开发商转到了Qt/Embedded系统上 如韩国的Mizi公司 但是 由于它是基于C++类库的 所以和其他GUI相比系统消耗资源较大 因此说Qt/Embedded是肥美型的产品 功能丰富 一般用于手持式高端信息产品      . MiniGUI和Micro Windows的比较    MiniGUI和MicroWindows均为自由软件 但这两个系统的技术路线却有所不同 MiniGUI的策略是建立在比较成熟的图形引擎之上 比如Svgalib和LibGGI 开发的重点在于窗口系统 图形接口之上 而MicroWindows的开发重点则在底层的图形引擎之上 所以可以对裸显示器直接操作 而窗口系统和图形接口方面的功能还稍有欠缺 比如说 MiniGUI有一套用来支持多字符集和多编码的函数接口 可以支持各种的字符集 包括GB BIG UNI CODE等 而MicroWindows在多字符支持上尚没有统一接口      链接    X Window System的分层架构    ● X Server    X Window System架构上有一项特点是别的GUI系统所没有的 这个特点就是Client/Server架构 注意这里和一般我们所熟知的某某服务器(Server端)跟PC端(Client端)相连接的情形是不同的 惟一类似的是X Window System本身也是采用网路架构设计 具体而简单一点的说明就是 X Client可以看作我们在X上执行的软件 X Server则是负责显示及传递使用者输入事件(包括键盘 鼠标等硬件装置的输入)     ● Graphic Library    我们可以把一幅图案想象成有成千上万个细微小点所组成 这种小点的单位通常为pixel 在同一平方单位里这些小点数越高图案就越清晰 画质就越好 也就是说分辨率或解析率高 事实上我们要设计的视窗当然不可能是这样一点一点地画上去的 这样太过浪费时间 基于这种观念我们就设计出高阶一点的函数来帮助我们解决这个繁琐的步骤 例如各类视窗编程里用到的画点 画线 画矩形 画圆形 画不规则形 上色等函数 透过这些函数是的程序设计者不用去管画一条线要几个点以及如何让显示器显示等林林总总低阶的工作 我们称绘图相关的一组函数库为GUI的基本Graphic Library     ● Toolkits    有了点 线 面的函数之后 虽然已经去除了大半的重复无聊工作 但是就开发视窗程序来说 还是显得非常没有效率 怎么办呢?只有继续将构成视窗的抽象元件 如按钮 卷轴 组合 cha138/Article/program/Oracle/201311/17775

相关参考

知识大全 Linux用作嵌入式操作系统

Linux用作嵌入式操作系统  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  LinuxasanE

知识大全 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(七)

基于Linux和MiniGUI的嵌入式系统软件开发指南(七)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(六)

基于Linux和MiniGUI的嵌入式系统软件开发指南(六)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八)

基于Linux和MiniGUI的嵌入式系统软件开发指南(八)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Linux操作系统下的Oracle数据库编程详解

Linux操作系统下的Oracle数据库编程详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 请围绕交往选择恰当的材料写一篇600字的纪实作文

请围绕交往选择恰当的材料写一篇600字的纪实作文1、英国的皮亚丹博物馆收藏了两幅画,一幅是人体骨骼图,一幅是人体循环图。谁能想到,这竟是一个闯了祸的小学生的作品。当年,小学生麦克劳德出于好奇心,想看看

知识大全 在Linux系统中搭建JSP开发环境

在Linux系统中搭建JSP开发环境  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者赵雪吴绍

知识大全 在win7系统下安装了linux(deepin2014)系统,开机时发现无选择项就直接进入linux了。如何换回win7系统

在win7系统下安装了linux(deepin2014)系统,开机时发现无选择项就直接进入linux了。如何换回win7系统?你这个就有点复杂了,方法如下:1、下载好windows7系统的光碟映象,并

知识大全 Linux下的LDAP

Linux下的LDAP  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者简介  AtifGha

知识大全 Linux下的多线程编程

Linux下的多线程编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言    线程(thr