PDA配置的Linux配置及其编译
发布日期:2011-04-18
择要:本文通过引出在PDA上利用Linux的上风,侧重先容在Compaq iPAQ高端PDA上利用的几款Linux配置版本,以及摆设配置和编译的进程。别的,对其图形用户界面的实现和文件体系的选择也举行了叙述。
关键词:Linux ;PDA; Compaq iPAQ
小序
Linux是一个成熟又通用的利用体系,可运行在多种硬件平台上(如Intel、Power PC、Sparc、Alpha、ARM等)。它有一个小巧高效的内核,仅包括体系运行最必须的结果,而将可选的部分筹划成内核模块。体系启动时,仅加载一个小的内核(0.5MB左右),当须要某些分外结果时,再临时将相应的结果模块插入内核,倒霉用时,立即将其撤出,并开释占用的资源。它的配置驱动步调、文件体系、网络协议等均被筹划成了内核模块。
当前PDA产品的硬件配置与平常PC机相比有很大的差别。在PDA中只有一些小容量的按块举行利用的闪存和小的液晶屏,处理惩罚处罚器本领也较弱,没有键盘和鼠标,导致其文件体系和应用步调的图形用户界面受到了很大限定。因此在PDA上选用小而高效内核的Linux作为其利用体系成为生长趋势。
图1 iPAQ中差别配置版本的干系图
Linux在PAD上的版本及其配置
在大多数PDA中利用的是标准的Linux内核,本文将以Compaq iPAQ 36XX系列中所采取的Linux版本为例,阐发iPAQ中Linux的配置,它是由Compaq Research Laboratories(CRL)开辟的一种高端PDA配置,采取206MHz的Intel StrongARM RISC处理惩罚处罚器和32MB的RAM,另有16MB的非易失性闪存,其表现屏为320*240的液晶表现屏,输入配置为触屏和一些按键,iPAQ还包括内置的扬声器、耳机和麦克风插槽以及USB接口,还可根据须要购买PCMCIA和CF卡。
IPAQ有五种Linux配置(Debian、HandHelds.org、Familiar、PocketLinux、Microwindows),固然这些配置版本外貌上差别,但是内核都是由CRL的原始版本生长而来,图1阐发白这些版本之间的干系。
此中HandHelds.org是在Debian版本上生长而来,别的三个版本从HandHelds.org上生长而来。下面对后四个版本举行过细先容:
HandHelds.org
HandHelds.org是经Debian/GNU修改而得。它的0.21版本中包括有2.4版本的Linux内核以及command shell(bash)等用户指令,同时移植了X11-server(Xfree86)和TWM窗口办理器来实现图形的表现,由于利用了Linux的帧缓存,因而可利用Xfebdev(X-server)来形貌办事器。该版本中还含有触屏的驱动步调以及一些示例性的软件,如屏幕校准和实用于X的假造键盘,以及MP3播放器和大抵的欣赏器。
HandHelds.org中的用户界面是基于TWM窗口办理器的,它不适于小屏幕表现,它的上风是网络结果,该版本中提供了针敷衍朗讯公司的WLAN卡(Lucent Orinoco 802.11b)的内核模块,可向用户提供telnet、ftp和网络文件体系等结果,同时还包括PCMCIA卡的软件办事并支持热拔插(需驱动步调),其不敷之处在于它内里没有如记事本、德律风簿、日历等相应软件。从团体上看,HandHelds.org提供的版本比较得当于步调员用来开辟本身在iPAQ上的软件或是构建新版本。
该版本提供GCC东西,还免费向用户提供带有共享文件体系的StrongARM组件(由6块芯片构成)。iPAQ的内核开辟是完全公然的,恣意人都可从网上下载到升级的内核代码,如今代码升级会合在电源办理的优化和JFFS2(Jounaling Falsh Filesystem)的开辟。
图2 PocketLinux分层布局图
图3 Microwindows层次布局图
Familiar
Familiar是基于HandHelds的版本,它的内核和X-server完全一样,但是窗口办理器有所差别。Familiar的窗口办理器是为小型配置所筹划,此中包括Agenda Applications等应用步调用来实现记事本、日历等相应结果。Familiar版本中还实现了手写辨认结果,用户可以在屏幕的恣意位置上誊录。别的Familiar另有一个非官方版本可支持JFFS2文件体系。
PocketLinux
PocketLinux是由Transvirtual Technologies开辟的基于HandHelds的版本,它实现了Java的编译环境(Kaffe),该版本具有和X-server一样的内核,但用户界面是基于Kaffe上的Java编译孕育孕育产生的。PocketLinux的分层布局图如图2所示。
PocketLinux中含有基于XML的模块,可以快速创建UI和在PocketLinux步调之间互换信息。但是XML不太稳固,并且速率很慢。
Microwindows
Microwindows是由Century Software开辟的,含有Microwindows GUI环境和PIM(Personal Information Management)的版本。Century Software在开辟中采取了本身的图形东西集Microwindows来代替X-server,其目标在于利用更小的内存和功耗来实现图形用户界面。
MicroWindows采取分层布局筹划要领,容许变革差别的层来适应实际应用,在底层提供对屏幕、鼠标\触摸屏和键盘的驱动,使步调能访问实际的硬件配置和别的用户定制配置;在中间层有一个可移植图形引擎,提供绘制线条、地区添补、绘制多边形、裁剪和利用颜色模式的要领;在顶层实现多种API以适应差别的应用环境。 Microwindows可移植性非常好,可用 C 语言实现,只有某些关键部分恳求用汇编语言以进步实行速率,实现了两个API函数,同时支持Win32和X11,可以方便的移植Windows或Unix/X11中的代码。如今它利用两种盛行的图形编程接口:Win32/WinCE图形表现接口(GDI)和Xlib-like接口。图3所示为Microwindows的层次布局图。
Nano-X组件可以为应用步调提供GUI办事,从某种意义上来说,它雷同于X-server。Nano-X办事器大小约为210KB,在iPAQ上运行时需占用1MB的内存空间,而HandHelds利用的X-server(Xfbdev)大小约为870KB,运行时需占用3.5MB的RAM,相比之下Nano-X更为高效。但是Microwindows没有X11布局中的窗口办理器,每个应用步调都须要本身来办理窗口。
Microwindows中还实现了着名的射击游戏-Doom。别的在Microwindows中还包括一个欣赏器-View-ML,可表现标准的HTML页面(3.2版本),但是不克不及运行Java-applets。
体系摆设
上述种种版本的摆设险些一样。由于iPAQ的闪存中预装了微软的PocketPC,因此在摆设Linux之前要对其生存。起首将iPAQ连接到PC机,然后将PocketPC备份到PC机;第二步把Bootloader装到闪存的开始头,Bootloader和x86上的Lilo(Linux Loader)很雷同,它可把闪存中的内核装载到RAM中去,解压后主动跳到内核源代船埠,Bootloader还提供了写闪存终端,如许就可以更新内核及其配置版本的剩余部分;第三步利用Bootloader加载内核,加载后,其配置版本的剩余部分也被加载到闪存中;着末设置引导参数,整个别系就可被引导来装载Linux。这里过细,配置版本的源码因此CRAMFS文件的格局编写的,该文件体系要被JFFS2所代替。
适于闪存的文件体系
PDA闪存通常利用以下三种文件体系:CRAMFS、RAMFS、JFFS2,偶然偶尔也用EXT2,不过其结果欠佳。
CRAMFS中的数据已被压缩,属于只读性文件体系,不克不及在闪存中修改。用户想获取数据时,CRAMFS先把数据送到RAM中,用户从RAM中读取。一样通常CRAMFS的上层为RAMFS文件体系,经修自新的文件都生存在RAM中。图4为文件体系的层次布局图。
RAMFS和CRAMFS连合的缺陷在于,一旦出现失电等分外环境,生存在RAMFS中的修改数据将全部丢失。为此Linux采取了新的文件体系-JFFS2,它容许在闪存中直接举行修改,在失电时会主动生存数据。JFFS2的数据压缩要领和CRAMFS一样,其数据可存放在全部的闪存地区中,数据的写入和删除散布在很大一片地区中以保卫同样的块会被重复利用。
引导序次
iPAQ的引导序次寂静凡PC机有所差别。起首在iPAQ电源接通后,BIOS从闪存的某个特定位置加载启动代码,将Bootloader存入该地区并装载。Bootloader将内核装载到RAM中并解压,然后跳至内核代码的开头,内核被初始化后将运行名为“linuxrc” 的文件,根据这个文件中的内容运行别的初始化步调。
图4 文件体系层次布局图
PDA配置版本的编译
如今台式机上的Linux版本虽有数百种,但它们提供标准的Linux内核和利用体系的底子结果,差别之处一样通常表如今体系的摆设、办理和利用上,分外是文档和用户支持方面。但各品牌PDA之间却差别很大,处理惩罚处罚器通常采取ARM、MIPS、DragonBall等,处理惩罚处罚器四周另有很多互不兼容的配置。如今大多数PDA都是将利用体系存放在ROM中,更新利用体系与更新ROM芯片同步举行,而iPAQ等PDA在闪存中存储利用体系,直接写入新的利用体系就可变动原体系。
iPAQ主板上的闪存为16MB,在配置版本时肯定要思量其大小不要超过跨过闪存的容量,不然需加插PCMCIA/CF卡扩展内存。iPAQ利用的是经CRL修自新的Linux 2.4内核,约莫0.5MB,除内核外,另有shell、文件体系、网络等步调,这些内核模块经静态编译后才可利用,不然需通过步调编译库来实现。
图形用户界面可有两种实现要领,一样通常利用“Xfbdev”X11-server来实现,如许可包管与X环境下应用步调兼容。X-server和窗口办理器组合在一起的缺点是使PDA包袱太重,因此可选择Microwindows,缺点是与X不兼容。
从用户角度,应用步调相称告急。要是采取X-server实现GUI,Familiar的Agenda敷衍PDA应用是极佳选择;要是采取Microwindows实现GUI,则利用Century Software的PIM;别的还可选择PocketLinux,它构建于java之上,实用于java步调的开辟。
敷衍闪存文件体系,CRAMFS要是没有RAMFS的支持只具有只读属性,而JFFS2则可以直接在闪存中读写和删除数据。采取JFFS2文件体系时,更新PDA的Linux配置版本是通过步调包办理来实现的;采取CRAMFS文件体系时,更新体系则须要在闪存中重新写入全部新的CRAMFS文件体系,如许做不但须要大量时间,并且敷衍用户太难实现,从长远角度来看,JFFS2比CRAMFS具有更强的竞争力。
结语
随着PDA性能价格比的垂垂进步和技能进步,其可实用范畴越来越广泛,选择一种实用它的利用体系极为须要。嵌入式Linux体系是嵌入式体系的宠儿,人们可通过网上免费下载到差别的内核版本和升级补丁,同时可免受源代码知识产权的困扰,可以大概在现有底子上举行二次开辟,伴随着嵌入式配置在人们变乱和生存中的广泛和生长,选择嵌入式Linux体系也是一种肯定趋势。
参考文献
1 Compaq,iPAQ Homepage
2 Flash Memory,Technical Design
3 Greg Haerr,Microwindows Architecture 1999
4 陈莉君.Linux 利用体系内核阐发.人民邮电出版社
5 胡皓.X Window实物应用.人民邮电出版社