嵌入式Linux系统图形及图形用户界面

本文首先概述了 Linux 图形领域的基本设施,然后描述了一些可供嵌入式 Linux 系统使用的高级图形库以及图形用户界面支持系统。希望对嵌入式 Linux 系统的开发有所帮助。

1 Linux 图形领域的基础设施

本小节首先向读者描述 Linux 图形领域中常见的基础设施。之所以称为基础 设施,是因为这些系统(或者函数库),一般作为其他高级图形或者图形应用程 序的基本函数库。这些系统(或者函数库)包括:X Window、SVGALib、 FrameBuffer 等等。

1.1 X Window

提起 Linux 上的图形,许多人首先想到的是 X Window。这一系统是目前类 UNIX 系统中处于控制地位的桌面图形系统。无疑,X Window 作为一个图形环境 是成功的,它上面运行着包括 CAD建模工具和办公套件在内的大量应用程序。但 必须看到的是,由于 X Window 在体系接口上的原因,限制了其对游戏、多媒体 的支持能力。用户在 X Window 上运行 VCD 播放器,或者运行一些大型的三维 游戏时,经常会发现同样的硬件配置,却不能获得和 Windows 操作系统一样的 图形效果――即使使用了加速的 X Server,其效果也不能令人满意。另外,大 型的应用程序(比如 Mozilla 浏览器)在 X Window 上运行时的响应能力,也 相当不能令人满意。当然,这里有 Linux 内核在进程调度上的问题,也有 X Window 的原因。

X Window 为了满足对游戏、多媒体等应用对图形加速能力的要求,提供了 DGA(直接图形访问)扩展,通过该扩展,应用程序可以在全屏模式下直接访问 显示卡的帧缓冲区,并能够提供对某些加速功能的支持。

1.2 SVGALib

SVGALib 是 Linux 系统中最早出现的非 X 图形支持库。这个库从最初对标 准 VGA 兼容芯片的支持开始,一直发展到对老式 SVGA 芯片的支持以及对现今 流行的高级视频芯片的支持。它为用户提供了在控制台上进行图形编程的接口, 使用户可以在 PC 兼容系统上方便地获得图形支持。但该系统有如下不足:

1)接口杂乱。SVGALib 从最初的 vgalib 发展而来,保留了老系统的许多接 口,而这些接口却不能良好地迎合新显示芯片的图形能力。

2)未能较好地隐藏硬件细节。许多操作,不能自动使用显示芯片的加速能力 支持。

3)可移植性差。SVGALib 目前只能运行在 x86 平台上,对其他平台的支持 能力较差(Alpha 平台除外)。

4)发展缓慢,有被其他图形库取代的可能。SVGALib 作为一个老的图形支持 库,目前的应用范围越来越小,尤其在 Linux 内核增加了 FrameBuffer 驱动支 持之后,有逐渐被其他图形库替代的迹象。

5)对应用的支持能力较差。SVAGLib 作为一个图形库,对高级图形功能的支 持,比如直线和曲线等等,却不能令人满意。尽管 SVGALib 有许多缺点,但 SVGALib 经常被其他图形库用来初始化特定芯片的显示模式,并获得映射到进程 地址空间的线性显示内存首地址(即帧缓冲区),而其他的接口却很少用到。另 外,SVGALib 中所包含的诸如键盘、鼠标和游戏杆的接口,也很少被其他应用程 序所使用。

因此,SVGALib 的使用越来越少,笔者也不建议用户使用这个图形库。当然 ,如果用户的显示卡只支持标准 VGA 模式,则 SVGALib 还是比较好的选择。

时间: 2024-10-02 16:35:33

嵌入式Linux系统图形及图形用户界面的相关文章

《嵌入式设备驱动开发精解》——1.2 基于ARM处理器的嵌入式Linux系统

1.2 基于ARM处理器的嵌入式Linux系统 嵌入式Linux应用开发完全手册 1.2.1 ARM处理器介绍 1.ARM的概念 嵌入式处理器种类繁多,有ARM.MIPS.PPC等多种架构.ARM处理器的文档丰富,各类嵌入式软件大多(往往首选)支持ARM处理器,使用ARM开发板来学习嵌入式开发是个好选择.基于不同架构CPU的开发是相通的,掌握ARM架构之后,在使用其他CPU时也会很快上手.当然,作为产品进行选材时,需要考虑的因素就非常多了,这不在本书的介绍范围之内. ARM(Advanced R

《嵌入式Linux应用开发完全手册》——1.2 基于ARM处理器的嵌入式Linux系统

1.2 基于ARM处理器的嵌入式Linux系统 1.2.1 ARM处理器介绍 1.ARM的概念 嵌入式处理器种类繁多,有ARM.MIPS.PPC等多种架构.ARM处理器的文档丰富,各类嵌入式软件大多(往往首选)支持ARM处理器,使用ARM开发板来学习嵌入式开发是个好选择.基于不同架构CPU的开发是相通的,掌握ARM架构之后,在使用其他CPU时也会很快上手.当然,作为产品进行选材时,需要考虑的因素就非常多了,这不在本书的介绍范围之内. ARM(Advanced RISC Machine),既可以认

嵌入式Linux系统OpenWRT路由的基本配置

  OpenWRT是一个嵌入式Linux系统,想要了解嵌入式Linux系统的朋友有福了,今天小编要给大家介绍下OpenWRT路由的基本配置,一起来学习下吧. chnroutes 路由表 这个路由表集中了所有分配到中国大陆的 IP 段,根据 http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest 每天自动更新,可使得在访问国内地址时不经过 VPN. 想想如果能够让家里的路由直接连接 VPN,在家连接 WiFi 的所有设备直接达到F

ARM 开发板嵌入式linux系统与主机PC通过串口传输文件

本文转载自http://useless20.blog.163.com/blog/static/237409982010227127576/ 嵌入式linux系统与主机通过串口传输文件      我想如果要从PC机下载东西到开发板的嵌入式linux系统里面,很多人首先会想到用tftp sftp等网络工具从网口下载.但如果网络用不了,只能通过串口下载怎么办呢?这个时候有两个工具能帮到你:一个是zmrx.zmtx,另外一个是lsz.lrz.个人觉得zmrx/zmtx没有lsz/lrz稳定,建议还是用后

嵌入式linux系统中,lsusb出现unable to initialize libusb: -99 解决办法 【转】

转自:http://cpbest.blog.163.com/blog/static/41241519201111575726966/ libusb是linux系统中,提供给用户空间访问usb设备的API,方便从linux内核中获取或设置usb设备的信息.lsusb这个用户空间程序,也正是依赖libusb提供的接口API来实现对系统当前的usb总线的扫描,从而显示当前系统存在的usb设备的.   在嵌入式linux中,输入lsusb命名,出现unable to initialize libusb:

如何修改嵌入式Linux的开机启动图形

环境说明: linux内核版本:2.6.35 开发板:WY-S5PV210 一.按照下面的方法创建开机图片 1.用PhotoShop或网上下载80x80的图片一张 2.使用GIMP工具转换成224色的ppm格式的图片 (1)打开要转换的图片 (2)依次选择图像->模式->索引,在最大颜色数量选择224 (3) 选择文件->另存为名称填linuxlogo.ppm,点确定,在弹出的对话框选择"ASCII",点保存,这样就可以生成224颜色的ppm图片. 二.修改相关的文件

切换Linux系统下图形界面与Linux命令行模式

  本文为您讲解假如在Linux系统下实现图形界面与Linux命令行模式切换. 一.Linux系统安装的流程中默认语言是英文,而不是中文简体(安装流程中有两次制定语言选项,起决定作用的是第二次) 二.Linux命令行模式切换:切换控制台,由图形转换到控制台模式:ctrl+alt+f1(同时按下3秒钟不要马上松开).由控制台转向图形模式是:alt+f7 三.修改默认的语言项(在控制台下):vi /etc/sysconfig/i18n中的LANG=zh_CN.GB18030(留心大小写,然后重启系统

《嵌入式Linux基础教程(第2版)》——2.2 剖析嵌入式系统

2.2 剖析嵌入式系统 图2-1是一个典型嵌入式系统的框图.这个例子很简单,描述了一个系统的高层硬件架构,无线接入点设备可能就是采用这种硬件构架.这个系统架构以一个32位的RISC处理器为中心,系统中的闪存用于存储非易失性程序和数据,主存储器是SDRAM(同步动态随机存储器),其容量可以从几兆至几百兆字节,视应用而定.一个通常由电池供电的实时时钟模块记录着当前时间(包括日期).这个例子里面包含以太网和USB接口,也包含串行端口,利用串行端口可基于RS-232标准访问控制台.802.11芯片组或模

《嵌入式Linux基础教程(第2版)》——2.4 嵌入式Linux发行版

2.4 嵌入式Linux发行版 到底什么是Linux发行版? Linux内核完成系统引导后,它会找到并挂载一个根文件系统.一旦合适的根文件系统被成功挂载,启动脚本会启动很多系统需要的程序和实用工具.这些程序一般会调用其他程序来完成具体的任务,例如生成一个登录shell.初始化网络设备接口和运行用户的应用程序.每一个程序都有一些必须由系统中其他成员来满足的具体需求(一般称为依赖关系).大多数的Linux应用程序都依赖一个或多个系统程序库.还有一些程序需要配置文件和日志文件,诸如此类.总的来说,即使