前陣子翻查了 ASUS 的新版 (1.6) 軟體套件,發現華碩電腦為 P1000H, P1000HD, P904, P904HD 等新款機型找了幾個搭售的商業軟體。分別是 Ai Wizard (Dr E), Dr. Eye (譯點通), EeeStock, EzPeer, StarOffice, IQChinese Let’s Learn Chinese, Xcome XLex (擎願科技, 雙語字典通) 與 yostore 等。不過目前除了 IQChinese, XLex, yostore 有 P701 的更新檔,其他的軟體都只有含硬碟的機型上才有內建或可下載安裝檔。

老實說,身為一個使用 Debian GNU/Linux 作為桌面系統多年的使用者,我頗興奮看到這些商業軟體開始出現在 Linux 平台上,特別是除了 EEEPC 以外的眾多 Subnotebook,如Acer Aspire One, HP 2133 Mini-Note PC, Dell Inspiron Mini 9, OLPC XO-1, One A110, Skytone Alpha-400, CloudBook, Classmate PC, LG X110, MSI Wind PC, Lenovo IdeaPad SVIA OpenBook 等都搭售 Linux 出貨。剎那間,已經足夠撐起一個生態環境,讓軟體產業開始投資發展 Linux 桌面系統的軟體產品,而不僅有龐大的企業、伺服器用商用軟體。

試著安裝了比較感興趣的 Dr Eye、Eee Stock 與 EzPeer,發現這些軟體都加上了系統檢查功能,要嘛檢查核心版本、要嘛檢查 DMI 系統編號、或者根本去檢查記憶體內容,總之就是限制一般使用者將軟體移到其他安裝 Linux 的桌面系統上使用。每次你執行程式時,系統便會跳出以下視窗「抱歉,此軟體僅供Asus EeePC使用」,真是可惜。

雖說像 Dr. Eye 這樣的軟體,在 Linux 有 GPL 授權的 StarDict 的自由軟體可使用,但是眾多使用者都已經熟悉了 Dr. Eye 的使用介面與習慣,即使其他替代軟體的操作介面都非常類似,但許多使用者大概因為品牌因素使用 Dr. Eye 吧。但目前 Dr. Eye 在 Linux 的版本字庫非常貧乏,不知道什麼時候才有專業版出現?

除了常見的字典軟體,像先前介紹過的 Ezpeer 就沒有開源的替代軟體可使用,勢必要有商業法人取得音樂授權後,才能合法的線上聆聽音樂。在較新版的 Ezpeer V1.3.05 中,執行的權利也被關閉了。只有在 EeePC 上才能執行使用。

另外一個我個人認為非常實用的軟體是聲達資訊EeeStock 看盤軟體。日常的時候,我通常使用 Invest Stock 來看接近即時大盤與個股報價,也用 qtstalkerSMTM 來看盤後交易資訊與技術線圖。特別是 qtstalker 的技術線圖功能,類型多到眼花撩亂,且你還可自己寫報價與技術指標的模組,彈性非常大。而 Invest Stock 藏在 Gnome Panel 上,最適合隨時觀察一下大體走勢。兩個軟體得資訊來源都是 Yahoo, 使用時只要特別注意一下 Yahoo! Finance 的股市名稱,如 華碩為 2357.TW, 台股大盤指數為 ^TWII。Invest Stock 目前可於 gnome-applets 中取得,至於 qtstalker 由於缺乏 Sponsors 的原因,新版可於 Marco van Zwetselaar網站下載

但若你已經習慣玩台股,且在 Windows 上使用證卷商所提供的軟體,肯定已經習慣台股看盤軟體所提供的介面,選單上整合好了即時個股行情、類股、整合報價、上市、上櫃大盤、即時資訊、國際資訊等。操作起來實在非常便利。

最後,另我感興趣的軟體則是 StarOffice,StarOffice 目前下載版一套要價 USD 69.96,與 OpenOffice 的主要差異在於多了些私有版權的字型、圖庫、樣板、Adabas D 資料庫、巨集轉換等。相較起來,對使用者而言提供了更便利且合法的文書處理工具。

據聞 Google 軟體集 也免費提供 StarOffice 供下載,不過我實際逛了一下,發現其實目前沒有提供 Linux 版本的 StarOffice 免費下載。EeePC 使用者算是賺到一套相對好使的文書處理工具。不過 OO.o 對我而言已經足夠,便未額外安裝測試為 ASUS EeePC 客製化的 StarOffice.

看來 ASUS 恐怕礙於需防守於各家廠商所追進市場的新產品,必須與軟體商取得獨佔權,以便(暫時)保有領先地位。希望在今年接下來幾個月,市場陸續上市 Netbook 後,能夠看到更多商業軟體移植到 Linux 平台阿。

若你時常在 IRC 聊天或尋求技術支援,便會知道一口氣在頻道內張貼大量內容是非常不禮貌的。因為這樣常會蓋掉其他朋友的正常談話訊息,且非常不便利閱讀。

但你又時常需要提供各種設定或程式碼給人參考、除錯,比較好的方法是使用 rafb.net, pastebin.com, paste.debian.netpaste.ubuntu.com 等網站張貼段落。

不過很多時候,你若要從系統整理出這些設定檔也不是一件頗為容易的事情,Stéphane Graber 為此寫了 pastebinit。pastebint 目前已經進到 Debian Sid.

pastebint 是一個指令列介面的軟體,你可以透過指令的方式將設定檔或軟體的輸出丟到上述眾多任一網站上。操作方式如下

$ pastebinit -i ./2201-openwrt-redboot-layout.txt -b http://openwrt.pastebin.com
http://openwrt.pastebin.com/f58502e41
$ cat /etc/X11/xorg.conf | pastebinit -i - -b http://paste.debian.net
http://paste.debian.net/16838/

執行後,你就可以將回傳的網址丟到 IRC 頻道上,讓其他人檢閱。此外,若你總使用固定的網站,你也可以寫好 ~/.pastebinit.xml 設定檔如下

<pastebinit>
<pastebin>http://openwrt.pastebin.com</pastebin>
<author>chihchun</author>
<jabberid>[email protected]</jabberid>
<format>text</format>
</pastebinit>

希望它也可以很快的支援 gist 等網站.

在一兩年前,Linux 核心尚缺乏一個好的的硬碟預讀機制時,桌面系統的使用者若要加速開機的速度,通常得先解決磁碟存取速度的瓶頸問題。於是得依賴如 readahead 這樣的工具來預先載入想讀入的檔案,以便提高系統載入的速度。

readahead 的基本原理是先預先載入開機過程可能使用的檔案到記憶體中 (page cache)。如此開機程式執行時,便可節省讀入檔案的時間,進而加快開機速度。

當然,前提是你要有足夠的記憶體作快取。若你的系統只有小記憶體,不建議使用 readahead. 目前在 Ubuntu, Debian GNU/Linux 下使用的版本基於 Erich SchubertRobin H. JohnsonScott James Remnant,改自於 Gentoo 的版本。Fedora Project 則有另外一個概念相同,但由 RedHat 所開發的的不同實做

以下所說明的是 Ubuntu, Debian GNU/Linux 版本。

為了使 readahead 可以正確的對開機所需的檔案快取,你必須教會 readahead 目前有多少檔案需要被預先載入,原則上只需要作一次。Ubuntu 在釋出官方版本時,便會內建一組預先較調的檔案列表。但若每次更新核心或套件系統,特別是開機所需的程式,其實都應該做過一次 “profile” 的動作,以便 readahead 保持正確的載入檔案列表。

相較於 Debian 說明 readahead 的說明文件,在 Ubuntu 由於仍使用舊版,使用上則頗為謎樣,Ubuntu 的README.Debian 只提醒你 readahead 不能用在 NFS 上,忘了說明使用方法。在 Ubuntu 上,readahead 會檢查 /proc/cmdline 中是否有 profile 參數,若有則進行 profiling 的程序。若使用 Grub,則操作方式如下

  1. 開機見到 “GRUB loading” 提示時,按下 “Esc” 鍵
  2. 按下 “e” 鍵進行編輯 (若有多核心,先選擇預設開機之核心行)
  3. 按下 “向下” (↓) 鍵到 “kernel” 行
  4. 再選 “e” 鍵進行編輯
  5. 你會進入參數編輯模式,移動到參數最後加入 “profile”,”profile” 字樣前記得填入空白。
  6. 按下 “Enter” 完成編輯
  7. 按下 “b” 鍵開機

第一次開機稍慢,但作過一次 profile 後,之後的開機速度應該會提高些。

在 Debian 下,只需用 root 下達以下指令後,重新開機即可

# touch /etc/readahead/profile-once

但在新版的 Linux 核心,有 On-demand read-ahead 等技術的加持,當下已經不特別需要這樣的工具,有時甚至反而會拖慢開機的時間。

試著在安裝了 Ubuntu EeeASUS EEEPC 701 上測試 (核心為 2.6.24-16-generic),以預設安裝軟體測試開機到桌面環境出現的 uptime,每次都大約 60s。進行 profile 則約使用 80 秒,profiled 過 readahead 開機速度相同。

另外也在我的 Thinkpad X60 1706-B69 上測試,軟體是 Debian sid, 核心為 2.6.26-1-686。系統裝了相當多雜七雜八的軟體,硬體裝了 2G 記憶體,硬碟則是 8M Buffer, 5400RPM 的 FUJITSU MHV2100B。profile 大約使用 152s,profiled readahead 開機則約 55s,關掉 readahead 則約 53s。

其實在 Linux 上做檔案快取 (readahead/prefetch) 的技術頗多,除了稍早講的 readahead, 還有 preload, bootcache/filecacheprefetch. (prelink 是加快 ELF shared libraries/executables 的載入速度,不算是檔案快取)

不過 readahead 只在開機的產生效用,若開機後得依賴 preload 等工具來做檔案快取。但以 user space 的 daemon 每幾秒掃一次系統的效果實在不怎麼好。

比較吸引我注意的是 SoC 2007 中的一個計畫 prefetch

prefetch 算是融合了前幾個計畫的優點與特色的專案,計畫整合了 kernel patch 與 userspace 工具,主要特色是透過核心作監視各軟體啟動所需要取用的檔案,配合 userspace 工具做到自動更新(dynamic profiling)。

對使用者而言,操作起來容易許多,不需要像 readahead 或 bootcache/filecache 作手動「教育」,且使用效率上也會比 preload 來的好。當然,與 readahead 相較起來,實做方式也比較輕盈、聰明。

技術細節可以參考 Krzysztof Lichota 的提案 (Ubuntu Wiki) 與簡報。Prefetch 原始碼可於 Launchpad 下載,相關文件與文獻位於 Google Code. 另外,Behdad Esfahbod 的論文 “Preload — An Adaptive Prefetching Daemon” 也很值得參考。

BTW, Krzysztof Lichota 也是 one-click installer 的開發者。

試著在剛裝好的 Ubuntu 上亂打一些指令時,發現在 CLI 介面,Ubuntu 會聰明的提醒你忘了裝甚麼軟體套件。

user@user-laptop:~$ proxychains
The program 'proxychains' is currently not installed.  
You can install it by typing:
sudo apt-get install proxychains
-bash: proxychains: command not found

稍微玩了一下,發現是 command-not-found 這個神奇法術。軟體套件包含 /usr/lib/command-not-found 、是一個用 Python 刻的指令稿,此軟體會查詢預先建成的指令/軟體名稱資料庫,只要餵給它指令名稱,他可以迅速的提示如何安裝含有該指令的軟體套件。由於資料庫是 gdbm,且大小只有 2.3M (command-not-found-data 0.2.17ubuntu1),因此查詢的速度相當快,使用者不太感覺到差異。

要使用此功能,尚必須在 bash 中定義一個 command_not_found_handle 函式,在查無指令時自動執行 command-not-found. Ubuntu 已經將這段程式建於 /etc/bash.bashrc.

不過目前使用的套件資料庫是預建的,因此不會依照你所使用的 apt sources 自動更新資料庫。若是可以整合 apt-file 與 dlocate 兩個的功能,應該可以提供較有彈性的功能吧。

If you are using Debian or Ubuntu, and installed the Gnome system by default. Your system probably already has Gnome Volume Manager.

The Gnome Volume Manger is a daemon which listens the hardware events (HAL event), and run the user-configurable commands. Basiclly, it do autorun, automount for the hot-plugged devices. In plain English, it run the Multimedia Player or CD Burning software when you put a CD into the cdrom driver.

Continue reading