嵌入式Linux系统下Microwindows的应用
关键词:嵌入式系统 Microwindows Linux
引言
在进入后PC时代以后,嵌入式设备以一种无法抑制的迅猛速度普及和发展到日常生活及工作当中,众多知名开发商为了抢占市场和争夺利润,竞相推出各种性能优异的软硬件及内核芯片。鉴于以视窗为代表的桌面操作模式取得巨大成功,该模式目前已成为国内外开发者们在嵌入式设备中的首选方案。
近几年,随着Linux技术的兴起,越来越多的企业和科研机构把目光转向嵌入式Linux的开发和研究。Linux不仅具有桌面电脑的全部功能和特性,允许修改和根据用户的要求进行定制,而且作为一种免费的开放式源码,还支持目前在嵌入式设计领域中常用的新型微处理器,如StrongARM、MIPS以及PowerPC等,具有稳定、高效、易定制、易裁减、硬件支持广泛等特点。Microwindows是一个著名的开放式源码的嵌入式GUI软件,目的是把图形视窗环境引入到运行Linux的小型设备和平台上。作为X Window系统的替代品,Microwindows可用更少的RAM和文件存储空间(100K~600KB)提供相似的功能,允许设计者轻松加入各种显示设备、鼠标、触摸屏和键盘等;可移植性非常好,可用C语言和少部分汇编语言实现,支持Intel 16位、32位CPU,MIPS R4000以及基于ARM内核的处理器芯片,有多种平台支持Microwindows。
(凹丫丫范文网fanwen.oyaya.net收集整理)
1 X Window的不足
由于使用了带有TCP/IP结构的自由式开放源码操作系统,使嵌入式设备进入了一个创新应用时代,不过这些新的应用需要考虑其资源环境,这是因为多数的嵌入式设备缺少硬件驱动和大的RAM。目前,在Linux系统中普遍使用X Window系统,如图1所示。X Window是在20世界80年代早期由MIT、DEC等提出来的,是一个基于Client/Server结构的视窗系统;允许在任一台UNIX主机(Clients——客户端)上运行程序,而在基于X的终端(Server——服务器)上显示出来。在这个过程中,相当一部分代码用于确认主机和服务器上运行的Client/Server程序是否正常。目前,大多数X的客户端和服务器是在同一台机器上运行,X Window服务器经编译后一般用于自动检测硬件。服务器中还包含有众多的画图函数,它们的位置根据执行速度被位置在裁减层之上或之下。这些便利X Window过于臃肿和复杂,运行时需要至少8MB的内存空间。
2 Microwindows分析比较
对于大多数嵌入式设计,尤其是在运行专用图形程序的场合,X Window不是一种恰当的选择。由此而发展起来的Microwindows是专门设计用于在小型设备上开发具有高品质图形功能的开放式源码桌面系统,有许多针对现代图形视窗环境的功能部件。它的结构设计使其可方便地加入不同的显示、鼠标、触屏以及键盘等设备。Microwindows基于2.2.0版本的Linux系统如图2所示。其内核所包含的代码允许用户程序将图形显示的内存空间作为framebuffer进行存取操作,这样在用户程序空间中可作为内存映射区域来直接控制图形显示,可使得用户在编写图形程序的时候不再需要去了解底层硬件,这是目前Microwindows在嵌入式系统中被很多人使用的原因。
设计得在设计Microwindows时沿用了已有的两个图形应用程序接口(API):一是Microsoft Windows中Win32/WinCE的图形设备接口(GDI),它适用于所有Windows CE和Win32的应用程序;另外就Nano-X(Xlib-like界面),它与GDK非常相似,用在Linux上,是像X的API,用于占用资源少的应用程序。这使得熟悉Windows或者是Linux X11的用户可在熟悉的环境下开发图形应用程序。
Microwindows在运行过程中仅需要50~250KB的内存空间,远小于X Windows系统所需空间。这主要是因为Microwindows对于在驱动层的每一个绘图函数采用的是单进程的方式,由驱动层核验是否裁减并调用驱动程序来绘制未被裁减的像素点或线;而在X Window系统中,则是出于对速度的考虑,包含所有像素点的绘制程序并分别有裁减和未裁减的版本
《嵌入式Linux系统下Microwindows的应用》