基于USB接口的微型桌面Linux系統(tǒng)設(shè)計(jì)方案
1 引言
隨著USB 3.0 標(biāo)準(zhǔn)的發(fā)布,存儲(chǔ)容量為8GB 至128GB 的USB 接口移動(dòng)存儲(chǔ)設(shè)備成為主流。由于USB盤體積小、攜帶方便、同時(shí)具有熱插拔功能,給移動(dòng)數(shù)據(jù)存儲(chǔ)帶來(lái)了便利。而開源的Linux 操作系統(tǒng)具有的高可靠性和安全性、廣泛的硬件支持、靈活實(shí)用的可定制性等特點(diǎn),使得Linux 桌面系統(tǒng)在辦公應(yīng)用方面也逐步受到人們的青睞。如果在USB 接口的移動(dòng)存儲(chǔ)設(shè)備上實(shí)現(xiàn)一個(gè)Linux 微型桌面系統(tǒng),將是一個(gè)不錯(cuò)選擇。然而,將標(biāo)準(zhǔn)的Linux 發(fā)行版系統(tǒng)安裝在USB盤上,將占用近2G 的存儲(chǔ)空間,其中有許多軟件我們移動(dòng)辦公并不需要。同時(shí),人們從數(shù)據(jù)安全性角度的考慮,希望在不使用原有宿主機(jī)操作系統(tǒng)和數(shù)據(jù)的前提下進(jìn)行便捷的移動(dòng)辦公。因此本文將從LFS 系統(tǒng)開始,在USB 盤上搭建Linux 微型桌面系統(tǒng),實(shí)現(xiàn)操作系統(tǒng)與辦公娛樂軟件的一體化,并采用squashfs 文件系統(tǒng)壓縮技術(shù),對(duì)整個(gè)系統(tǒng)進(jìn)行壓縮,最后通過(guò)grub和initrd 實(shí)現(xiàn)系統(tǒng)的啟動(dòng)。
2 微型桌面系統(tǒng)的構(gòu)成
本文是在LFS Live CD 6.3 宿主系統(tǒng)上,通過(guò)LFS技術(shù)構(gòu)建基本Linux 系統(tǒng)后,使用chroot 命令轉(zhuǎn)入基本系統(tǒng),完成后續(xù)整個(gè)桌面系統(tǒng)的搭建。
基于USB 盤的微型桌面系統(tǒng)構(gòu)成如圖1 所示,由以下幾部分組成的:
①啟動(dòng)引導(dǎo)管理器:選用Grub 0.97.Grub 程序是計(jì)算機(jī)加電啟動(dòng),引導(dǎo)到USB 盤設(shè)備后運(yùn)行的第一個(gè)程序,其目的是將Linux 內(nèi)核從USB 盤加載到內(nèi)核中。
然后轉(zhuǎn)由內(nèi)核執(zhí)行后續(xù)操作。
②內(nèi)核:作為L(zhǎng)inux 操作系統(tǒng)的核心,它負(fù)責(zé)管理進(jìn)程調(diào)度、內(nèi)存管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)接口、進(jìn)程間通信,并提供對(duì)主板、顯卡、網(wǎng)卡、聲卡、存儲(chǔ)器、USB 設(shè)備等驅(qū)動(dòng)的支持。由于是移動(dòng)系統(tǒng),面臨硬件平臺(tái)多樣性的問題,所以需要將一些常用基本驅(qū)動(dòng)和USB 相關(guān)驅(qū)動(dòng)編譯進(jìn)內(nèi)核,而將squashfs、aufs、聲卡、顯卡等相關(guān)支持以模塊的形式動(dòng)態(tài)加載,這樣在減少內(nèi)核鏡像大小的同時(shí),提高了系統(tǒng)啟動(dòng)時(shí)間。
③基本Linux 系統(tǒng):包括能夠正常啟動(dòng)字符界面的基本文件系統(tǒng)結(jié)構(gòu)、最常用的應(yīng)用程序、基本函數(shù)庫(kù)和相關(guān)的配置文件。
④圖形桌面系統(tǒng):桌面系統(tǒng)采用xfce4.6.2,并安裝如下應(yīng)用軟件:永中office 2009 辦公應(yīng)用軟件(集Word、Excel、PowerPoint 于一體);fcitx 中文輸入法;MPlayer 媒體播放軟件;網(wǎng)絡(luò)配置工具軟件;遠(yuǎn)程桌面連接控件軟件;QQ;Vnc;實(shí)驗(yàn)室自主研發(fā)的播放瀏覽一體化的網(wǎng)絡(luò)瀏覽器Hfox[2];其他軟件:圖片查看器、文本編輯器、PDF 閱讀器、解壓縮軟件等。
圖1 基于USB 接口的微型桌面Linux 系統(tǒng)的組成
整個(gè)微型桌面系統(tǒng)安裝完成后要占用大約1.7GB磁盤空間,通過(guò)運(yùn)行mksquashfs 命令壓縮成只讀系統(tǒng)鏡像system.squashfs(約495MB)。
3 關(guān)鍵技術(shù)
3.1 內(nèi)核編譯
采用版本為2.6.27.27 的Linux 內(nèi)核。為使系統(tǒng)更精簡(jiǎn),部分模塊將不會(huì)被編譯進(jìn)內(nèi)核:聲卡驅(qū)動(dòng)模塊等。系統(tǒng)將由U 盤引導(dǎo),需要將SCSI 設(shè)備、Usbcore、Usb-storage 、Loopback device support 、RAM disksupport 和Initrd 等編譯到內(nèi)核中。
將Squshfs、AUFS 編譯成模塊,通過(guò)Initrd 引導(dǎo)加載。
常見的硬盤接口為IDE 和SATA,在Linux 中通常將這兩類硬盤標(biāo)識(shí)為不同的盤符名。為了避免內(nèi)核掛載U 盤根系統(tǒng)出現(xiàn)盤符名不一致的情況,需要將IDE 和SATA 硬盤中盤符統(tǒng)一成/dev/sdX,在內(nèi)核編譯時(shí)需要加如下的選項(xiàng):
編譯出來(lái)的內(nèi)核會(huì)將這兩類硬盤同等對(duì)待。從而使不同接口硬盤的盤符名在Linux 中都統(tǒng)一為sdX,方便本系統(tǒng)的掛載。
3.2 LFS 構(gòu)建系統(tǒng)
LFS(Linux From Scratch 的縮寫),是從源代碼開始搭建的Linux 系統(tǒng)。LFS 有以下幾個(gè)優(yōu)點(diǎn):
①LFS 是非常靈活的,可以根據(jù)自身需求定制。
②構(gòu)建的LFS 系統(tǒng)是一個(gè)非常緊湊的系統(tǒng),可以大大節(jié)省磁盤空間。
③LFS 可自定義安裝相關(guān)的安全補(bǔ)丁,系統(tǒng)有保障。
本文目的是設(shè)計(jì)一款微型桌面系統(tǒng),根據(jù)其小巧靈活實(shí)用的特點(diǎn),與使用標(biāo)準(zhǔn)的Linux 發(fā)行版和使用精簡(jiǎn)的Linux 系統(tǒng)相比,LFS 更適合。
3.3 SquashFS+LZMA 只讀壓縮系統(tǒng)
構(gòu)建一個(gè)小型或嵌入式Linux 系統(tǒng),存儲(chǔ)設(shè)備(軟盤、U 盤等)的空間資源非常有限,因此壓縮應(yīng)盡可能用在各個(gè)方面。
SquashFS 是一種在Linux 下使用的只讀壓縮文件系統(tǒng),是目前最好的壓縮文件系統(tǒng)之一,它的目的是為通用只讀文件系統(tǒng)使用。目前,SquashFS 壓縮文件系統(tǒng)應(yīng)用很廣,已在Linux Live CD 各發(fā)行版、嵌入式系統(tǒng)、以及在服務(wù)器及桌面系統(tǒng)中都有著大量的應(yīng)用。
LZMA(Lempel-Ziv-Markov chain-Algorithm 的縮寫),是一個(gè)Deflate和LZ77算法改良和優(yōu)化后的壓縮算法,是目前最好的壓縮算法之一。
SquashFS 默認(rèn)的壓縮算法是GZIP,本文中采用給SquashFS 打補(bǔ)丁,使其支持LZMA 算法壓縮。實(shí)驗(yàn)證明,通過(guò)LZMA 算法壓縮比GZIP 算法壓縮率更高,而壓縮時(shí)間比GZIP 算法稍長(zhǎng)。通過(guò)對(duì)整個(gè)系統(tǒng)采用GZIP 和LZMA 算法進(jìn)行Squashfs 壓縮,在壓縮時(shí)間和存儲(chǔ)空間的比較如表1 如示。
表1 兩種壓縮算法的比較
目前Linux 內(nèi)核還不支持LZMA,在編譯內(nèi)核時(shí)需要將CONFIG_SQUASHFS*中所有值置為N;再單獨(dú)將帶LZMA 支持的Squshfs 編譯成模塊,通過(guò)動(dòng)態(tài)加載方式運(yùn)行。
3.4 AUFS 聯(lián)合文件系統(tǒng)
AUFS( Another UnionFS 的縮寫), 是一個(gè)與UnionFS 類似的可堆疊聯(lián)合文件系統(tǒng),它將多個(gè)目錄整合成單一的目錄,是Linux 文件系統(tǒng)聯(lián)合掛載的實(shí)現(xiàn)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)linux相關(guān)文章:linux教程
評(píng)論