- 1、本文档共116页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10.1 Linux图形开发基础 本节简单介绍图形用户界面GUI的一般架构,主要讨论嵌入式Linux图形开发的基础知识,包括GUI的底层支持库和高级函数库,为后面的进一步叙述奠定基础。 10.1.1 GUI的一般架构 GUI是Graphical User Interface的简称,即图形用户界面。图形用户界面(GUI)是计算机系统中最为成熟的人机交换技术,是计算机与用户之间的对话接口。它是一个图形组成的用户界面。比如,Windows界面、OS2界面等都是GUI。 GUI系统在逻辑上一般可分为以下几层: (1) 最底层I/O设备驱动:直接与输入硬件打交道,完成I/O设备的驱动,包括显示设备驱动、鼠标驱动、键盘驱动等,构成了GUI的硬件基础。 (2) 中间层图形引擎:直接和最底层I/O设备驱动打交道,主要完成一些图形操作和图形管理,如画点、画线、区域填充、画窗口及按钮等。 (3) 最上层GUI应用程序接口(API):是提供给程序员的编程接口,以快速开发GUI应用程序。 GUI是嵌入式系统中的一个重要问题,越来越多的嵌入式系统要求提供全功能的Web浏览器,而这就要求有一个高性能、高可靠的GUI支持。由于嵌入式系统本身的特殊性,嵌入式GUI要求简单、直观、可靠、占用资源小且反应快速,以适应系统硬件资源有限的条件。 另外,GUI还应具备高度可移植性与可裁减性,以适应不同的硬件条件和使用需求。总体来讲,嵌入式GUI应具备以下特点: (1) 体积小; (2) 耗用系统资源小; (3) 上层接口与硬件无关,高度可移植; (4) 高可靠性; (5) 在某些应用场合应具备实时性。 10.1.2 嵌入式GUI底层支持库 一个能够移植到多种硬件平台上的嵌入式GUI系统,应至少抽象出两类设备: (1) 图形抽象层(Graphic Abstract Layer,GAL):基于图形显示设备,完成系统对具体显示硬件设备的操作,为程序开发人员提供统一的图形设备编程接口。 (2) 输入抽象层(Input Abstract Layer,IAL):基于输入设备,实现对不同输入设备的控制操作,提供统一的调用窗口。嵌入式GUI底层实现基础如图10-1所示。 目前应用于嵌入式Linux系统中比较成熟、功能比较强大的GUI系统底层支持库有X Window、FrameBuffer、SVGA Lib、LibGGI等。 图10-1 嵌入式GUI底层实现基础 1. ?X Window X Window是Unix的图形界面标准,它是以斯坦福的图形化操作系统W Windows System为基础而发展起来的一套网络透明窗口系统。X Window系统是目前Linux系统中处于主导地位的桌面图形系统。所有Linux版本的图形界面标准均遵循X Window,简称X。 X Window采用标准的客户端/服务器(Client/Server)模式,即参与运行的主体为客户端(X Client)和服务端(X Server)。它由X Server、X Client、X协议、Xlib函数库等组成。 (1) ?X Server:主要是控制I/O设备的程序,对显示器的输出、键盘和鼠标的输入进行管理,接收输入设备的信息,并将其传给X Client,而将X Client传来的信息输出到屏幕上,提供显示功能。 (2) ?X Client:也称客户程序,是应用程序的核心部分,与硬件无关。它位于后端,提供处理功能。 (3) ?X协议:是X Window系统中各单元间通信的标准,主要负责X Client与X Server间的通信。 (4) ?Xlib函数库:X Window客户程序的功能是通过调用Xlib中的函数实现的。 X Window的这种工作方式为用户提供了两个重要的特性:一个是平台无关性,即应用程序可以在任何其他平台的服务器上显示其界面;另一个是网络透明性,是指服务器和客户端之间通信协议的运作对计算机网络是透明的,客户端和服务器可以在同一台计算机上,也可以不是,一个应用程序不管是在本地运行,还是在远程某台机器上运行,都可以实现在本地显示。 2. ?FrameBuffer FrameBuffer是一种独立于硬件的抽象图形设备,是Linux抽象出来的供用户态进程实现直接写屏的设备。它模仿显卡的功能,将显卡硬件结构抽象化。用户可以将FrameBuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读/写操作,而写操作可以立即反映在屏幕上。 FrameBuffer设备提供了若干ioctl命令,通过这些命令,可以获得显示设备的一些固定信息(如显存大小)、与显示模式相
您可能关注的文档
- OLT户外机柜技术规范答案.doc
- 初中物理总复习详细知识答案.doc
- OMC数据配置说明答案.doc
- 初中一年级全册英语答案.doc
- 初中英语词语辨析精华版答案.doc
- OSTA中级解题步骤答案.doc
- 钱塘湖春行3案例分析.ppt
- 钱塘湖春行案例分析.ppt
- 初中英语的动词固定搭配全在这里了答案.doc
- 初中语文常见错别字答案.doc
- 2024-2030年中国水文监测系统资金申请报告.docx
- 2024-2030年中国水性涂料色浆分散体行业需求趋势及投资可行性分析报告.docx
- 2024-2030年中国水性涂料行业运营状况及发展潜力研究报告.docx
- 2024-2030年中国水性漆类涂料行业供需预测及发展可行性研究报告版.docx
- 2024-2030年中国水性涂料行业需求状况及发展风险分析报告.docx
- 2025(突破训练)023学年北京市西城区高三一模语文试题(含答案解析) .pdf
- 2024-2030年中国水性漆类涂料行业供需分析及发展风险研究报告.docx
- 2024-2030年中国水性漆类涂料行业发展潜力及投资风险分析报告.docx
- 防火安全宣传与教育活动策划.pptx
- 2024-2030年中国水性漆类涂料行业发展需求及投资风险研究报告.docx
文档评论(0)