您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

手持式Zaurus体系引领嵌入式Linux

发布日期:2011-05-16

    Sharp Zaurus 手持式体系是嵌入式 Linux® 体系的一个前锋,Peter Seebach 以为在一种技能早期出现时就为其孝敬本身的力气是一个好主意。在这个 Linux 的魅力 系列文章中,Peter 将对 Zaurus SL-5600 举行一下拆解,从而更好地相识一下它的汗青。 

    George Santayana 曾经说过,“那些忘记汗青的人注定会重复汗青”。但是在谋略机筹划业界中,这个告诫宛如并没有受到怜惜。很多公司通常都市重复同样的错误和辅导,并对已往的体系重复举行改革。 

    当 Sharp Zaurus 初次声明要 “运行 Linux” 时,Linux 社区临时间变得热闹特别,既有喜好者的欢呼,又弥漫了种种谎话。几年以后,如今仍旧有一些运行 Linux 的手持配置不绝从 Sharp 的变乱中汲取灵感和头脑,只管基于 Linux 的 Zaurus 在美国市场上已经垂垂退出了。 

    本月的 Linux 的魅力 文章将来先容一下 Sharp Zaurus SL-5600。这是第二个零售版本(第一个零售版本是 SL-5500,这是在 SL-5000D 开辟版之后的一个版本),本文将先容一下这个范畴中当前开心的源头。 

    嵌入式 Linux 体系的筹划参加了很多方面的思量;Zaurus 是第一个办理这些思量的体系。Linux 社区对此的最初应声非常狂热,但是这个配置在美国市场上并没有获取 Sharp 所渴望的告成。 

    硬件筹划 

    在筹划嵌入式体系时,一个紧张的驱动因素是 硬件的结果。Zaurus 利用了手持式谋略机非常典范的硬件平台: 

    CPU 是 400MHz 的 Intel® XScale;Linux 称之为 ARM 处理惩罚处罚器,由于 gcc 并没有试图与市场术语精密切合。 

    这个别系上摆设了 64MB 的闪存和 32MB 的 RAM。5500 上有 32MB 的闪存和 64MB 的 RAM;结果是有些步调可以在 5500 上运行,但是无法在 5600 上运行。 

    另一方面,5600 可以很好地办来由于断电而引起的标题。 

    它有一个 320x240 的屏幕,这是嵌入式 PC 的典范设置。(以后这个模块升级到了 640x480 的屏幕,这看起来已经相称满意了。) 

    它另有 CF(Compact Flash)和 SD(Secure Digital)插槽,可以支持非存储配置,比喻 802.11b 无线 CF 卡或以太网适配器。 

    Zaurus 与大部分 PDA 一样,也有一些通用键,不过它另有一个很小的潜伏键盘。这个键盘是一个真正的卖点;相敷衍手写辨认来说,纵然是一个非常小的家盘也好坏常大的改革。可以利用键盘,这种特性的确令人惊奇。 

    5000 和 5500 的硬件筹划非常雷同。其后的模块采取的是蛤壳筹划,它提供了更大的键盘,此中屏幕可以翻上来构成一个传统的肖像格局的 PDA 屏幕,它具有一个输入笔 —— 这与如今大部分 tablet PC 所采取的筹划雷同。 

    5600 相敷衍 5500 来说提供了一些改革,但是从 StrongARM 处理惩罚处罚器到 XScale 处理惩罚处罚器的变革并非非常腻滑。新的模块对电池的寿命提供了很大的改革(要领非常大抵,将电池扩充为 2 倍大小)。 

    5500 和 5600 之间的区别反响了 PDA 用户为 Sharp 提供的反馈。在大部分环境中,这些变革反响了 PDA 用户的通用思量。比喻,将用户数据存储到 flash 中是一个很好的办理方案,要是电池电力不敷,PDA 用户就大概谋面对同样的丢失数据的危害,这个方案可以很好地办理这个标题。别的,5600 的键盘也比 5500 的键盘更容易利用。

构建 PDA

  
Linux 开辟职员对嵌入式体系的很多假设都不克不及在 PDA 上变乱。PDA 用户渴望可以大概运行新的应用步调、存储数据并以后再利用这些步调和数据。别的,从 3Com 引入第一个 Palm Pilot 以来,PDA 不绝都在利用 GUI。9600 波特率的串口终端并不是典范的选择。

   
桌面 Linux 假设在 PDA 上也都不太得当。大部分 PDA 用户并不喜好先登录到体系中,然后再显式地启动 X 办事器。别的,320x240 屏幕敷衍文本终真个用法来说并不敷够。假造桌面、多个鼠标按钮以及典范桌面的其他特性敷衍一个具有输入笔的小屏幕来说也并不得当。 

   
Zaurus 利用的是 Qtopia 桌面环境,而不是 X 办事器。您也可以在这种硬件上启动 X 办事器(终究,这个呆板所拥有的内存和处理惩罚处罚器的处理惩罚处罚本领比 SPARC 变乱站 SLC 所拥有的内存和处理惩罚处罚器的处理惩罚处罚本领更高),但是小足印和小表现器并不得当 X 变乱站的假设。

  
Zaurus 为 PDA 提供的应用步调只是 PDA 上的一个弱小单位。这还只好坏常年轻的一组应用步调,结果尚不像 Palm 平台上的应用步调一样完备。

  
调解 Linux 

   
让 Linux 在 PDA 上变乱的一个寻衅是确定何时利用平常的 Linux 要领来实现某些结果,何时倒霉用这些平常的要领。结果不总会像用户所渴望的一样。比喻,确定何时(或是否)须要暗码便是一个寻衅。大部分用户在 PDA 上都不渴望利用暗码提示。

   
Zaurus 从一开始就彻底扬弃了沉寂性方面的思量。GUI 以 root 用户身份运行,但是纵然不以 root 用户身份运行,也不须要输入 root 暗码, su 下令就可以实现这种结果。

   
Zaurus 是基于 BusyBox(0.60.4 版本)的。这个最精良的东西让很多步调可以链接成一个可实行步调;不过这种布局有点稀罕。BusyBox 内嵌了对 gzip 的支持,但是它也单独提供了 zcat 东西。不过这是一个非常公平的决定,由于如许可以节流相称多的空间。

   
启动 

    
rc.d 体系被完备地生存了下来,只管 init 级别的定义与桌面 Linux 体系中的定义大概并不完全雷同:

SUSE:
# runlevel 0  is  System halt   (Do not use this for initdefault!)
# runlevel 1  is  Single user mode
# runlevel 2  is  Local multiuser without remote network (e.g. NFS)
# runlevel 3  is  Full multiuser with network
# runlevel 4  is  Not used
# runlevel 5  is  Full multiuser with network and xdm
# runlevel 6  is  System reboot (Do not use this for initdefault!)

Zaurus:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - JavaVM(Intent) developer mode
#   5 - JavaVM(Intent)
#   6 - reboot (Do NOT set initdefault to this)

                                              列表 1. SUSE Linux 和 Zaurus 上的运行级别
    在这两个别系上缺省的 init 级别都是 5,但是其意义倒是差别的。实际上,在 Zaurus 上,级别 3、4 和 5 从我的眼光来开并没有什么差别。存心思的是,/etc/inetd.conf 把其他体系办事都禁用了,只剩下要启动 inetd。在早期的版本中,环境更为糟糕:它启动了一个 ftp 办事器,在一个不太常见的端口上举行监听。固然,这并不须要 root 的暗码,因此可以看作是一个沉寂弊端。

然而,inittab/rc.d 子体系并没有干太多变乱;体系启动 GUI,然后 GUI 可以实行实际的变乱。

与文本终真个 Linux 体系差别,Zaurus 会表现一些消息保速用户耐烦等待。须要利用 2 分钟来引导,这在 PDA 上有些太长而不好承继了。 这与 Palm PDA 相比如许很难承继,我本身的 Palm PDA 重新启动须要约莫 10 秒钟。

rc.d 目次中包括了几个常见的启动脚本,这些脚本的名字都是顾名思义的:

$ ls rc5.d
S04sd      S06pcmcia  S15inet    S23portmap S41atd     S48usb     _S02syslog

列表 2. rc5.d 目次中的文件

sd 和 pcmcia 脚本分别为 SD 和 CF 插槽提供了接口。(CF 插槽大部分便是小一点的 PCMCIA 插槽。)syslog 脚本运行的机会相称早,并且会循环利用日记文件。

要是您只看这个目次中的内容,大概就会敷衍了 inittab 中的一些设置,它们可以完成了一点体系初始化的变乱:

si::sysinit:/etc/rc.d/rc.sysinit
   s0:24:respawn:/sbin/getty 9600 ttyS0
   pd:3:respawn:/etc/sync/serialctl
   # Specify program to run on tty1
   1:2:respawn:/sbin/getty 9600 tty1
   ln:345:respawn:survive -l 6 /sbin/launch
   #qt:5:respawn:/sbin/qt
   # collie sp.
   sy::respawn:/sbin/shsync

列表 3. ininttab 项

在缺省的运行级别 5 中,有些是不会运行的 —— 不过看一下选项都有哪些是很风趣的。launch 步调会表明有关文件体系布局的内容。launch 步调从一个配置文件(根据字符串)开始运行,这个文件是 /usr/sharp/etc/launch.conf;/usr/sharp 是一个指向 /home/sharp 的链接 —— 固然,这是由于您可以修改东西的地方就只能是在 /home 中。

文件体系布局

Zaurus 上的文件体系有点稀罕。CF 卡会被主动挂载到 /mnt/usr.rom/cf 上,而 SD/MMC 卡则会被主动挂载到 /mnt/usr.rom/sd 上。令人惊奇的是,/etc 是一个到 /home/etc 的链接。只有在您意识到备份只须要备份 /home 目次就可以时,这才显得非常存心义;如许 /etc 也就备份了。

/ 和 /home 文件体系都被存储到闪存上,它被分别成了两个分区。/ 文件体系险些都已经满了,这敷衍扩展软件是一个限定 —— 不过有很多文件都不须要放到这儿。
   
根文件体系有一些魔力;此中包括的文件所占用的空间要比根文件体系本身的空间更大!这是通过利用 JFFS2(Journaling Flash File System version 2)实现的,它会对所存储的数据举行压缩;这 21,544 个存储块可以容纳约莫 60,000 个文件块。

宛如删除一些文件可以开释一些空间。比喻 bash。bash 包括了很多东西,但是它并没有节流空间的模式;一个 548KB 步调敷衍非常拥挤的根文件体系来说并不是什么功德。

更为风趣的是,/root 目次中包括了一些关键的 tar 文件,在光复体系时须要利用这些文件。这些 tar 文件都没有举行压缩;对这些文件举行压缩就可以开释一些空间(不过能节流的空间并没有您想象的那样多,由于 JFFS2 会主动对这些文件举行压缩。)
  
帐号办理

与那些完全敷衍帐号、全部利用 root 用户身份运行步调的体系差别,Zaurus 体系则会以 root 用户身份运行一部分步调(包括 GUI 本身),而以别的一个用户 zaurus 的身份来运行大部分步调。固然,在不为 root 用户利用暗码时,如许做可以大概确保影响最小。

Zaurus 上并不克不及真正支持用户的登录和刊出;您不克不及指定本身渴望利用哪个用户的身份来运行步调。固然,在 PDA 上并没有太多来由来如许做。别的,能将 user/admin 疏散开来是个不错的想法,在实际的 Linux 呆板上便是如许利用的,如许 Zaurus 就可以运行办事了。要是您以为这听起来宛如没什么用处,那么显然是没有如许的经历:把 PDA 忘在家里了,它可巧正在插着电源,而您却没有步调可以得到本身的地点本。要是它运行了一个 ssh 办事器就好了!

添加用户的结果并不支持,有些用户报告说在利用进程中出现文件体系瓦解的环境;比喻,在运行 adduser 步调时,将 root 全部的文件设置成新用户全部。

结束语和预测

早期的 Zaurus 暗中有一些尚未完成的特性;有很多标题须要修正,这须要更多的开辟时间,大概须要对筹划衡量举行更多讨论。

只管 Sharp 敷衍修正 ROM 的开辟是有限的,但是有一些第三方的公司已经开辟了很多插入式调换方案。此中的一个项目是 Opie(Open Palmtop Integrated Environment;请参阅 参考数据),它可以支持其他非 Zaurus 硬件(比喻 HP iPaq 手持配置)已经有很永劫间了。

在下一篇 Linux 的魅力 的文章中,我们将更过细地相识 Opie 如今已经生长到了什么程度(以 Familiar 项目标情势;请参阅 参考数据)。这个项目中已经开展的开辟变乱从用户利用 Zaurus 这种旧体系的经历中汲取了很多灵感。这是 Linux 所实现的最好结果;它提供了一个开放的环境,人们可以从中学习经历,而不消重新开始凭空假造。

我们记取了汗青,如许就不会重复汗青了。要是您正在从事本身的手持式项目标变乱,那么就请记取 Zaurus SL-5600 好坏常值得仿效的一个实现,也是一个值得在此底子上举行改革的实现。