About me

我的相片
I'm a web and software developer from Kaohsiung, Taiwan.
I design and implement user interfaces, also contribute to open source projects.
http://penkia.net/portfolio

2008年6月1日 星期日

xPUD 0.1 - 只有 firefox 的 LiveUSB

被大雨困在家中, 百無聊賴只能作點小實驗 -- 在使用 Ubuntu 套件管理機制 (dpkg, apt-get) 和即用光碟架構 (casper) 的條件下, 一個只安裝 Firefox 3 的系統究竟要使用多少空間呢?



答案是小於 90MB: xpud-0.1-liveusb.zip

這當然不是個令人滿意的數字, 稍微分析一下 84 MB 的系統映像檔, 使用補綴過的 squashfs 壓縮, 字典檔大小用的是恐怖的 512K, 單是核心模組 (linux-ubuntu-modules 套件) 就佔了 25MB, mplayer 也要 7MB (有 --enable-gui 的狀況), 更甭提 xul-runner 和主角 firefox-3.0 了. 這就是由奢入儉難的真諦阿!

簡單講一下我的嘗試:
  • 主要軟體就是 firefox 和 mplayer, 有視窗管理 (matchbox-window-manager), 中文字型 (ttf-arphic-uming) 和輸入法 (scim-chewing)
  • X server 使用 Xvesa, 並用 UPX 壓縮
  • 安裝到隨身碟後, 開機後要執行的指令和設定都可以寫在 rc.local 裡面
使用方法等開機好後執行 startx 就可以了, 若懶得打字這邊也有個 rc.local 檔範例:
mount-disk &

cat >/root/.xserverrc <<EOF;
exec Xvesa -ac -shadow -screen 1280x1024x24 -mouse /dev/psaux,5
EOF

cat >/root/.xinitrc <<EOF;
export LANGUAGE=zh_TW.UTF8
export LANG=zh_TW.UTF8
export LC_ALL=zh_TW.UTF8

export GTK_IM_MODULE=scim
scim -d
xterm -bg black -fg white &
firefox &
matchbox-window-manager -use_titlebar no -use_desktop_mode plain
EOF

startx
若要延續這個實驗, 幾個可以嘗試的方向大概是:
  • 編譯一個 linux-ubuntu-modules-lite 套件, 只包進符合我們 "firefox only desktop" 使用情境的模組
  • 承上, 為 insmod 加上 --enable-zlib, 不過兩次壓縮的效果應該很有限
  • 幫 firefox 寫一個比較好的網路設定和瀏覽檔案介面
  • 設定檔案關聯. (或許可以由 FoxyTunes 外掛控制 mplayer)
  • 簡化安裝 flash player 和 java 的動作
  • 把 dpkg/apt 機制從完成的 target 裡面移除, 縮減整個系統的大小
拿 binary-based 的 distro 做這種事果真是吃力不討好阿.. XD

沒有留言: