USB接口的微型桌面Linux系統(tǒng)設(shè)計方案_第1頁
USB接口的微型桌面Linux系統(tǒng)設(shè)計方案_第2頁
USB接口的微型桌面Linux系統(tǒng)設(shè)計方案_第3頁
USB接口的微型桌面Linux系統(tǒng)設(shè)計方案_第4頁
USB接口的微型桌面Linux系統(tǒng)設(shè)計方案_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、【W(wǎng)ord版本下載可任意編輯】 USB接口的微型桌面Linux系統(tǒng)設(shè)計方案 摘 要:針對便攜式移動辦公的需求,提出了在USB 接口的移動存儲設(shè)備上構(gòu)建Linux 微型桌面操作系統(tǒng)的方法,分析了整個微型桌面系統(tǒng)的構(gòu)成,并對構(gòu)建過程中的內(nèi)核編譯、LFS、Squashfs、AUFS、Grub、Initrd、XFCE等關(guān)鍵技術(shù)開展了研究,介紹了移植進USB 盤的方法、系統(tǒng)的啟動過程和實現(xiàn)。本系統(tǒng)小型便捷、啟動速度快、占用空間低、安全可靠的特點具有較高的應(yīng)用價值。 1 引言 隨著USB 3.0 標(biāo)準(zhǔn)的發(fā)布,存儲容量為8GB 至128GB 的USB 接口移動存儲設(shè)備成為主流。由于USB盤體積小、攜帶方便、

2、同時具有熱插拔功能,給移動數(shù)據(jù)存儲帶來了便利。而開源的Linux 操作系統(tǒng)具有的高可靠性和安全性、廣泛的硬件支持、靈活實用的可定制性等特點,使得Linux 桌面系統(tǒng)在辦公應(yīng)用方面也逐步受到人們的青睞。如果在USB 接口的移動存儲設(shè)備上實現(xiàn)一個Linux 微型桌面系統(tǒng),將是一個不錯選擇。然而,將標(biāo)準(zhǔn)的Linux 發(fā)行版系統(tǒng)安裝在USB盤上,將占用近2G 的存儲空間,其中有許多軟件我們移動辦公并不需要。同時,人們從數(shù)據(jù)安全性角度的考慮,希望在不使用原有宿主機操作系統(tǒng)和數(shù)據(jù)的前提下開展便捷的移動辦公。因此本文將從LFS 系統(tǒng)開始,在USB 盤上搭建Linux 微型桌面系統(tǒng),實現(xiàn)操作系統(tǒng)與辦公娛樂軟件

3、的一體化,并采用squashfs 文件系統(tǒng)壓縮技術(shù),對整個系統(tǒng)開展壓縮,通過grub和initrd 實現(xiàn)系統(tǒng)的啟動。 2 微型桌面系統(tǒng)的構(gòu)成 本文是在LFS Live CD 6.3 宿主系統(tǒng)上,通過LFS技術(shù)構(gòu)建基本Linux 系統(tǒng)后,使用chroot 命令轉(zhuǎn)入基本系統(tǒng),完成后續(xù)整個桌面系統(tǒng)的搭建。 基于USB 盤的微型桌面系統(tǒng)構(gòu)成如圖1 所示,由以下幾部分組成的: 啟動引導(dǎo)管理器:選用Grub 0.97.Grub 程序是計算機加電啟動,引導(dǎo)到USB 盤設(shè)備后運行的個程序,其目的是將Linux 內(nèi)核從USB 盤加載到內(nèi)核中。 然后轉(zhuǎn)由內(nèi)核執(zhí)行后續(xù)操作。 內(nèi)核:作為Linux 操作系統(tǒng)的,它負(fù)責(zé)

4、管理進程調(diào)度、內(nèi)存管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)接口、進程間通信,并提供對主板、顯卡、網(wǎng)卡、聲卡、存儲器、USB 設(shè)備等驅(qū)動的支持。由于是移動系統(tǒng),面臨硬件平臺多樣性的問題,所以需要將一些常用基本驅(qū)動和USB 相關(guān)驅(qū)動編譯進內(nèi)核,而將squashfs、aufs、聲卡、顯卡等相關(guān)支持以模塊的形式動態(tài)加載,這樣在減少內(nèi)核鏡像大小的同時,提高了系統(tǒng)啟動時間。 基本Linux 系統(tǒng):包括能夠正常啟動字符界面的基本文件系統(tǒng)構(gòu)造、常用的應(yīng)用程序、基本函數(shù)庫和相關(guān)的配置文件。 圖形桌面系統(tǒng):桌面系統(tǒng)采用xfce4.6.2,并安裝如下應(yīng)用軟件:永中office 20* 辦公應(yīng)用軟件(集Word、Excel、Powe

5、rPoint 于一體);fcitx 中文輸入法;MPlayer 媒體播放軟件;網(wǎng)絡(luò)配置工具軟件;遠(yuǎn)程桌面連接控件軟件;QQ;Vnc;實驗室自主研發(fā)的播放瀏覽一體化的網(wǎng)絡(luò)瀏覽器Hfox;其他軟件:圖片查看器、文本編輯器、PDF 閱讀器、解壓縮軟件等。 圖1 基于USB 接口的微型桌面Linux 系統(tǒng)的組成 整個微型桌面系統(tǒng)安裝完成后要占用大約1.7GB磁盤空間,通過運行mksquashfs 命令壓縮成只讀系統(tǒng)鏡像system.squashfs(約495MB)。 3 關(guān)鍵技術(shù) 3.1 內(nèi)核編譯 采用版本為2.6.27.27 的Linux 內(nèi)核。為使系統(tǒng)更精簡,部分模塊將不會被編譯進內(nèi)核:聲卡驅(qū)動模

6、塊等。系統(tǒng)將由U 盤引導(dǎo),需要將SCSI 設(shè)備、Usbcore、Usb-storage 、Loopback device support 、RAM disksupport 和Initrd 等編譯到內(nèi)核中。 將Squshfs、AUFS 編譯成模塊,通過Initrd 引導(dǎo)加載。 常見的硬盤接口為IDE 和SATA,在Linux 中通常將這兩類硬盤標(biāo)識為不同的盤符名。為了防止內(nèi)核掛載U 盤根系統(tǒng)出現(xiàn)盤符名不一致的情況,需要將IDE 和SATA 硬盤中盤符統(tǒng)一成/dev/sdX,在內(nèi)核編譯時需要加如下的選項: 編譯出來的內(nèi)核會將這兩類硬盤同等對待。從而使不同接口硬盤的盤符名在Linux 中都統(tǒng)一為sd

7、X,方便本系統(tǒng)的掛載。 3.2 LFS 構(gòu)建系統(tǒng) LFS(Linux From Scratch 的縮寫),是從源代碼開始搭建的Linux 系統(tǒng)。LFS 有以下幾個優(yōu)點: LFS 是非常靈活的,可以根據(jù)自身需求定制。 構(gòu)建的LFS 系統(tǒng)是一個非常緊湊的系統(tǒng),可以大大節(jié)省磁盤空間。 LFS 可自定義安裝相關(guān)的安全補丁,系統(tǒng)有保障。 本文目的是設(shè)計一款微型桌面系統(tǒng),根據(jù)其小巧靈活實用的特點,與使用標(biāo)準(zhǔn)的Linux 發(fā)行版和使用精簡的Linux 系統(tǒng)相比,LFS 更適合。 3.3 SquashFS+LZMA 只讀壓縮系統(tǒng) 構(gòu)建一個小型或嵌入式Linux 系統(tǒng),存儲設(shè)備(軟盤、U 盤等)的空間資源非常有

8、限,因此壓縮應(yīng)盡可能用在各個方面。 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 的縮寫),是一個Deflate和LZ77算法改進和優(yōu)化后的壓縮算法,是目前的壓縮算法之一。 SquashFS 默認(rèn)的壓縮算法是GZIP,本文中采用給SquashFS 打補丁,使其支持LZMA 算法壓縮。實驗證明,通過L

9、ZMA 算法壓縮比GZIP 算法壓縮率更高,而壓縮時間比GZIP 算法稍長。通過對整個系統(tǒng)采用GZIP 和LZMA 算法開展Squashfs 壓縮,在壓縮時間和存儲空間的比較如下表1 如示。 表1 兩種壓縮算法的比較。 目前Linux 內(nèi)核還不支持LZMA,在編譯內(nèi)核時需要將CONFIG_SQUASHFS*中所有值置為N;再單獨將帶LZMA 支持的Squshfs 編譯成模塊,通過動態(tài)加載方式運行。 3.4 AUFS 聯(lián)合文件系統(tǒng) AUFS( Another UnionFS 的縮寫), 是一個與UnionFS 類似的可堆疊聯(lián)合文件系統(tǒng),它將多個目錄整合成單一的目錄,是Linux 文件系統(tǒng)聯(lián)合掛載

10、的實現(xiàn)。 SquashFS 壓縮系統(tǒng)是只讀的,從而防止了對磁盤不必要的擦寫,但同時也造成了修改數(shù)據(jù)不能保存的問題。 AUFS 的出現(xiàn)正好解決了上述問題,它管理一個基本文件系統(tǒng)(即本文中的系統(tǒng)Squashfs 鏡像,保持原只讀狀態(tài))和一個讀寫存儲文件系統(tǒng)(必須具有讀寫權(quán)限)。通過AUFS,用戶可以虛擬地修改基本文件系統(tǒng)上的文件,但修改后的結(jié)果卻保存在讀寫存儲文件系統(tǒng)中,從而實現(xiàn)了數(shù)據(jù)的透明修改。 3.5 Initrd 初始化內(nèi)存盤 Initrd(boot loader Initialized RAM Disk 的縮寫),由boot loader 初始化。本系統(tǒng)使用的boot loader 為GN

11、U GRUB 0.97.如果Grub 已配置Initrd,Linux 內(nèi)核在啟動前,會把存儲設(shè)備中的Initrd 文件加載到內(nèi)存,作為一個臨時根文件系統(tǒng);內(nèi)核啟動時通過先執(zhí)行Initrd 中的init 文件,完成設(shè)備驅(qū)動模塊和squashsf、aufs 文件系統(tǒng)模塊的加載,并完成真正的根文件系統(tǒng)的掛載,然后執(zhí)行系統(tǒng)中的/sbin/init 進程。 與普通IDE、SATA 硬盤相比,USB 接口存儲設(shè)備從驅(qū)動模塊加載到設(shè)備可用,比較慢,需要幾秒鐘。 因此內(nèi)核在掛載USB 存儲設(shè)備時,會出現(xiàn):USB 設(shè)備沒有初始化完成,真正根文件系統(tǒng)掛載失敗的問題。為了解決此問題,筆者在Initrd 中修改ini

12、t 可執(zhí)行文件,當(dāng)加載USB 驅(qū)動后,系統(tǒng)將休眠5 秒,讓USB 設(shè)備初始化完成后再掛載USB 存儲設(shè)備中的根文件系統(tǒng)。本系統(tǒng)的init 文件配置如下: 本系統(tǒng)Initrd 中的化根文件系統(tǒng)由BusyBox創(chuàng)立,包含bin、dev、etc、lib、mnt、proc、sbin、sys這些必須的目錄和相關(guān)文件。由于BusyBox 生成的modprobe 命令不能正常執(zhí)行,所以需要復(fù)制宿主系統(tǒng)中的modprobe 命令并替換Initrd 中的sbin 目錄中的同名文件,同時通過ldd 查看modprobe 依賴的庫文件,并復(fù)制到Initrd 中的lib 目錄。 在宿主機器上通過命令: find .

13、| cpio o H newc | gzip /boot/initrd.img-2.6.27.27 制作Initrd 鏡像文件。 3.6 Grub 啟動引導(dǎo)器 GNU GRUB (GNU GRand Unified Bootloader 的縮寫),是GNU 項目中一個多操作系統(tǒng)啟動引導(dǎo)程序,也是Linux 系統(tǒng)中常用引導(dǎo)工具之一。為了讓系統(tǒng)從USB 設(shè)備啟動,必須將GRUB 程序安裝在USB 存儲設(shè)備的主引導(dǎo)記錄(MBR)中。 以GRUB 0.9X 的安裝步驟如下: 安裝grub 程序在U 盤的/boot/grub 目錄下,確保其目錄存在menu.lst,stage1,stage2 三個文件。

14、 進入grub 命令窗口,運行以下命令安裝到U 盤的MBR: grubroot(hd1,0) #假定Linux 系統(tǒng)所在盤符為第二塊硬盤的個分區(qū) grubsetup(hd1) 實際操作時根據(jù)硬盤分區(qū)不同作相應(yīng)修改。 修改/boot/grub/menu.lst 文件,本文的menu.lst 如下: 3.7 Xfce 桌面環(huán)境 Xfce 是一款適用于多種*NIX 系統(tǒng)上運行的輕量級桌面環(huán)境,它的設(shè)計目的是在節(jié)省系統(tǒng)資源的情況下能夠快速加載并執(zhí)行應(yīng)用程序。與Gnome 和KDE等比較臃腫的桌面環(huán)境相比,Xfce 占用的系統(tǒng)資源少,同時它擁有很小的依賴性和很好的模塊性。本系統(tǒng)所用的Xfce 4.6.2

15、 主要由實用工具libxfce4util、微件庫libxfcegui4、擴展庫exo、菜單庫libxfce4menu、窗口管理xfwm4、桌面管理xfdesktop、面板xfce4-panel、會話管理xfce4-session、設(shè)置管理xfce4-settings、配置管理xfconf、文件管理thunar、實用程序xfce-utils、應(yīng)用程序查找xfce4-appfinder 等部件構(gòu)成。 4 具體實現(xiàn) 4.1 系統(tǒng)在USB 盤上的實現(xiàn) 在宿主系統(tǒng)上構(gòu)建好整個Linux 桌面系統(tǒng)后,按前所述配置好只讀文件系統(tǒng)鏡像system.squashfs、初始化內(nèi)存盤Initrd、內(nèi)核鏡像vmlin

16、uz、Grub 中的menu.lst 文件、USB 盤標(biāo)志文件LABEL,然后按以下步驟將系統(tǒng)移植進USB 盤。 準(zhǔn)備一個8G 的USB 盤,分為兩個區(qū):一個分區(qū)作為系統(tǒng)區(qū),文件系統(tǒng)為EXT2,并激活為啟動分區(qū),作為Linux 系統(tǒng)使用;一個分區(qū)為數(shù)據(jù)區(qū),文件系統(tǒng)為FAT32,平時作為與Windows 系統(tǒng)交互的分區(qū),保存移動辦公數(shù)據(jù)。 將system.squashfs、Initrd、vmlinuz、LABEL 和Grub 相關(guān)文件復(fù)制到系統(tǒng)區(qū),并在系統(tǒng)區(qū)中新建system_ro( 用于掛載squashfs 只讀文件系統(tǒng)) 、system_rw(用于掛載aufs 文件系統(tǒng)時的修改文件存儲目錄)

17、、system(用于終文件系統(tǒng)的掛載目錄)三個目錄。 運行g(shù)rub 程序中的root、setup 命令將啟動引導(dǎo)信息寫入USB 盤的系統(tǒng)區(qū)的MBR. 4.2 系統(tǒng)啟動過程 基于USB 接口的微型桌面Linux 系統(tǒng)的啟動過程如圖2 如示。 計算機開機自檢, BIOS 引導(dǎo)到USB 接口的磁盤設(shè)備,通過啟動引導(dǎo)管理器Grub,加載Linux 內(nèi)核文件vmlinuz,內(nèi)核將初始化內(nèi)存盤initrd.img-2.6.27.27加載到內(nèi)存,形成一個臨時根文件系統(tǒng),通過執(zhí)行Initrd 中的init 可執(zhí)行文件,開展sysfs、proc 文件系統(tǒng)的加載,并對硬件開展初始化,相關(guān)硬件驅(qū)動、squashfs、aufs 模塊的加載后,掛載系統(tǒng)只讀鏡像system.squashfs,并通過聯(lián)合文件系統(tǒng)aufs 使其可寫,然后轉(zhuǎn)到真正的根文件系統(tǒng)執(zhí)行命令/sbin/init,完成微型桌面Linux 系統(tǒng)的啟動。 圖2 系統(tǒng)啟動過程。 5 實驗結(jié)果 本文實現(xiàn)了在USB 接口的存儲設(shè)備上構(gòu)建微型桌面Linux 系統(tǒng),在具有USB 接口啟動功能的各種主流品牌臺式計算機、筆記本和兼容機上都能成功運行,并且在硬件配置比較低的老式486、586 等機器也能流暢地運行,根據(jù)機器硬件配置的不同,一般啟動時間為20 秒至50 秒,具有很好的實用價值,真正實現(xiàn)了便捷、高效的移動辦公需要。本

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論