新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 構造Linux的圖形化安裝程序(1)

構造Linux的圖形化安裝程序(1)

作者: 時間:2016-10-08 來源:網絡 收藏

這是一個向用戶介紹如何構造Linux的圖形化安裝程序的專欄。介紹的內容包括:安裝環(huán)境的定制,圖形化啟動,本地化支持,分區(qū)功能,如何支持reiserfs、raid、lvm,rpm包的安裝,定制各種啟動配置腳本等等。本文是這個系列文章的第一篇,主要是向您介紹如何定制系統(tǒng)安裝環(huán)境,包括生成安裝內核,初始Ram盤的生成,最小化安裝環(huán)境的定制。

本文引用地址:http://butianyuan.cn/article/201610/305584.htm

自從Caldera推出了第一個Linux系統(tǒng)下的圖形化安裝程序以來,現(xiàn)在的主流Linux發(fā)布大多都使用圖形化的安裝程序進行系統(tǒng)環(huán)境的安裝,比如RedHat的安裝程序anaconda,Suse的安裝程序yast2,Caldera的安裝程序lizard,以及Mandrake的安裝程序gi。

這些主流廠商的安裝程序都有一個共同的特點,就是它們都是先構造一個完備的最小化的Linux運行環(huán)境,定制Linux的啟動過程,使得系統(tǒng)內核啟動后,加載一個系統(tǒng)裝載程序,這個程序將定制好的Linux運行環(huán)境部分或者全部加載進入內存,然后將控制轉移到圖形化安裝程序。最后再由此程序啟動的圖形環(huán)境(XFree86),設置對應的語言環(huán)境,啟動對應的系統(tǒng)安裝過程。

1 主流安裝程序簡介

Caldera的安裝程序lizard是Linux世界的第一個圖形化安裝程序,它的全部程序使用c++語言編制,圖形化的風格是基于kde和qt的。值得一提的是,caldera在定制圖形化安裝時,修改了內核,實現(xiàn)了內核的圖形化啟動,同時其安裝程序的硬件檢測功能很強大,可以檢測到部分非即插即用的isa設備,而且還提供了類似html風格的幫助系統(tǒng)。因為安裝程序要求精煉的環(huán)境,而此時通用的XWindows窗口管理器是無法滿足需求的(太大而且占用資源太多),所以caldera中還提供了一個最小化的窗口管理器lwm。在caldera安裝系統(tǒng)包的過程中,您還可以玩吃豆子游戲,這也是lizard的一大創(chuàng)意。

Redhat的安裝程序anaconda可能是大家最熟悉的安裝程序之一。它的全部程序都是由Python完成。Python是一種面向對象的腳本語言,您可以在http://www.python.org獲得它的相關資料。Redhat使用Python Gtk作為圖形界面的開發(fā)工具。在您解開anaconda的源碼包之后,您會發(fā)現(xiàn)一個anaconda的文件,這是程序執(zhí)行的主文件。它提供了一個最小化的slang庫以支持文本方式的安裝。Redhat的安裝程序最大的特點就是很穩(wěn)健,支持的驅動程序較多,對硬件的支持很強(這說明Redhat安裝內核定制得非常好,而且得到了相當多的廠商支持)。但是Redhat安裝程序的功能不是特別強,比如對于reiserfs、lvm不提供支持,不支持中文安裝(7.2可能會推出中文版)。也有很多廠商的安裝程序是稍微修改了RedHat源碼構成的,比如VALinux、中科紅旗等。

對于Mandrake的安裝程序gi,它的全部程序都是使用Perl編制,您可以從Mandrake的CVS服務器上下載最新的安裝程序。Perl是一種功能強大的腳本語言,可以非常方便的處理Linux上的各種配置腳本,它的圖形界面使用Perl-GTK編制。Mandrake的安裝程序是第一種提供中文安裝的主流發(fā)布。它的安裝程序的特點是新,支持的功能相當多,包括配置復雜的文件系統(tǒng),支持無線通訊設備,多種打印機支持等等。

Redhat和Mandrake的安裝程序都是由腳本構成的,它們雖然速度稍慢,但是其構成的安裝程序一般都比較穩(wěn)定,而且便于移植到其他平臺上。Redhat的整個安裝環(huán)境是保存在一個stage2.img的文件里。您可用命令:

mount -o loop stage2.img /mnt/tmp

將其掛接到指定的目錄下,察看Redhat安裝程序的結構。Mandrake的安裝環(huán)境保存在mdkinst的目錄下。

2 安裝環(huán)境的構成

一個圖形化的安裝環(huán)境實際上就是一個最小化的Linux運行環(huán)境。一般由如下幾部分構成:Linux系統(tǒng)安裝內核,Linux系統(tǒng)的初始Ram磁盤,系統(tǒng)運行所需的一些shell命令和程序所必需的系統(tǒng)庫,初始化程序,系統(tǒng)運行時必須的外部命令,XFree86子系統(tǒng),字體集和本地化的環(huán)境設置,系統(tǒng)的桌面風格和貼圖,鍵盤映射,設備配置數(shù)據(jù)庫,系統(tǒng)安裝程序等部分。

系統(tǒng)內核vmlinuz存在系統(tǒng)的啟動映像之中,在系統(tǒng)啟動時調入,然后Linux調入初始Ram磁盤,由此Ram磁盤上的程序加載運行安裝程序的第一階段加載程序。這是個可執(zhí)行程序,它一般執(zhí)行加載硬盤驅動模塊,將磁盤上的整個安裝環(huán)境調入內存,并作為根分區(qū)掛接。

這時就有一個在內存中的最小化的Linux系統(tǒng)了,一段映像程序結束運行,釋放自己所占的內存,并將控制轉移到真正的系統(tǒng)安裝程序。這時系統(tǒng)安裝程序開始啟動XFree86子系統(tǒng),設置正確的本地化環(huán)境,包括本地化環(huán)境變量,字體集,正確的鍵盤映射等,這時就允許用戶進行交互,從而在用戶的干預下,完成整個系統(tǒng)的安裝過程。

整個安裝過程的一般流程:

2.1 定制安裝內核

一個好的安裝程序內核是和安裝程序緊密相關的,它必須是完備的和精簡的。完備的內核是指:如果安裝程序要對某方面的功能進行支持的話,必須在內核中也提供相應的支持。精簡的內核是指:對于安裝程序不需要的功能,內核一定不要支持,而且能作為模塊存在的,就一定要把它設置為模塊。這樣定制出來的內核很小,保證了定制的內核以及必須的硬盤驅動模塊能放入啟動映像中。

例如,對于2.4.3內核一組選項是:(在下面的一組選項中沒有注明的選項,可以在定制安裝程序的內核時省略)

Loadable module support         可加載模塊支持

Enable loadable module support   將可加載模塊支持打入內核

Kernel module loader        將內核模塊加載器打入內核

Processor type and features 內核支持的處理器類型

(386) Processor family     選擇386兼容方式編譯內核

Toshiba Laptop support    東芝筆記本支持作為模塊

(off) High Memory Support    對大于2GB的內存不提供支持

選擇386兼容方式是為了保證安裝程序具有良好的兼容性,在某種程度上來說,速度的快慢并不是衡量安裝程序的指標。一個好的安裝程序,應該具有高穩(wěn)定性和高兼容性。

General setup                一般選項

Networking support           內核級網絡支持

PCI support               內核級PCI總線支持


上一頁 1 2 下一頁

關鍵詞:

評論


相關推薦

技術專區(qū)

關閉