• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Zaurus 引領嵌入式 Linux

    發布: 2007-5-26 11:30 | 作者: Peter Seebach | 來源: IBM | 查看: 20次 | 進入軟件測試論壇討論

    領測軟件測試網
    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 一樣,也有一些通用鍵,不過它還有一個很小的隱藏鍵盤。這個鍵盤是一個真正的賣點;相對于手寫識別來說,即使是一個非常小的家盤也是非常大的改進?梢允褂面I盤,這種特性的確令人驚訝。

    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 系統中的定義可能并不完全相同:


    清單 1. SUSE Linux 和 Zaurus 上的運行級別

    
                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)
                

    在這兩個系統上缺省的 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 目錄中包含了幾個常見的啟動腳本,這些腳本的名字都是顧名思義的:


    清單 2. rc5.d 目錄中的文件

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

    sd 和 pcmcia 腳本分別為 SD 和 CF 插槽提供了接口。(CF 插槽大部分就是小一點的 PCMCIA 插槽。)syslog 腳本運行的時機相當早,并且會循環使用日志文件。

    如果您只看這個目錄中的內容,可能就會忽略了 inittab 中的一些設置,它們可以完成了一點系統初始化的工作:


    清單 3. ininttab 項

    
                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
                

    在缺省的運行級別 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 是非常值得仿效的一個實現,也是一個值得在此基礎上進行改進的實現。

    您自己也有一些值得記住的東西嗎?在 Linux on board discussion forum 上告訴我好了。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>