Linux發行版製作過程中的各個步驟ZDNet軟體頻道 時間:2008-05-13 作者: | 中國IT實驗室 我要評論(
)
本文關鍵詞:作業系統
安裝
技巧
Linux
製作Linux發布的目的是為了在系統中能夠快速,正確地建立Linux系統內容。製作Linux發布的主要工作是決定各種軟體的去留,因為有了RPM包對其提供優良的管理能力。
1.項目整體分析
製作Linux發布的目的是為了在系統中能夠快速,正確地建立Linux系統內容。製作Linux發布的主要工作是決定各種軟體的去留,因為有了RPM
(RedHat Package Manager)包對其提供優良的管理能力,所以以目前比較成熟的RedHat 7.1(Linux Kernel Version 2.4.2-12)Linux發布程式作為藍本,以RPM包作為基本的制定單元,以需求為原則對其進行取捨,得到適合實際需要的Linux系統。
由此,項目自然而然的以分析RedHat
Linux的光碟片安裝系統為起點,在掌握了其結構和行為的基礎上,在包一級(結構部分)和代碼一級(行為部分)進行修改,同時建立相應的測試環境,以便對修改進行及時的規範。
2.項目分步驟實施細節
2.1對Linux光碟片安裝系統的分析
結構部分
在安裝光碟片中,主要的目錄結構和檔案大致如下:
images/ 此目錄下包含了製作啟動盤的映像檔案(檔案尾碼img),其中boot.img是當安裝介質為CD-ROM時負責引導系統的映像檔案,bootnet.img是當安裝介質為FTP、NFS等時負責引導系統的映像檔案。
driver.img是由一些特殊裝置驅動程式模組組成的映像檔案,在當前核心不支援這些裝置的情況下,提供了對它們進行訪問的一種方法。其中,boot.img映像檔案中主要包含以下檔案:
其中,initrd.img為Linux ext2檔案系統,構成如下:
可執行檔/sbin/loader的任務是判斷安裝介質的有效性,並從中執行安裝程式。其實正是boot.img,在系統啟動時被執行,經解析之後在記憶體建立起了Linux核心,並根據設定檔sysLinux.cfg裝載虛擬檔案系統,形成了完整的Linux
System,為後續的工作提供了必要的作業系統環境。
Boot.img映像的檔案系統類型為msdos,而其中的initrd.img映像的檔案系統類型必為Linux系統自己的ext2,所以對於它們的解析操作是不同的。
RedHat/ 此目錄是RedHat
Linux發布的核心目錄,主要的目錄結構都在這裡,其中RPMS/ 包含了RedHat
Linux發布的主要部分,即以RPM包的形式將Linux系統中的二進位可執行檔,設定檔,文檔等等組織在一起,形成能完成一定功能的比較獨立的軟體包(檔案尾碼rpm)。這個目錄就是把這些軟體包都集合在一起,形成了RedHat
Linux發布。
base/包含了在安裝過程中要用到的描述組織圖和安裝行為的所有檔案,其中comps,hdlist和hdlist2是描述RPM包組織圖的檔案。
comps此檔案把各個RPM包按一定的原則組織成若干組,即components,這樣在安裝過程中就不必對每一個包做出取捨,而以組為單位。comps檔案為簡單文字格式設定,它的結構如下所示:
4 表示RPM包的版本號碼,當前為4
1 base { }
base是此component名,中是此component中所包含的RPM包的名稱列表,1表示在安裝中預設為選中,即預設安裝。
0 –hide IDS sensor
{
snort
libpcap
}
表示IDS sensor組中包含有snort和lipcap這兩個RPM包。0表示這個組在安裝中預設為不選中即預設不安裝,並且由—hide指出不在使用者介面上顯示此組。
hdlist和hdlist2 這兩個檔案維護從RPM包名到真實包檔案名稱的映射過程,例如從snort這個RPM包名到真實包檔案名稱snort-1.8.1- 1.1.2.i386.rpm的映射。這兩個檔案是用特殊的程式產生的,無法用簡單的方法察看其中的內容和結構。
如所示映像檔案中的主要部分是安裝程式anaconda,它的主執行體是/usr/bin下的anaconda,由其調用的大量常式分布在/usr/lib/anaconda下,而安裝過程中要用到的資源檔分布在/usr/share/anaconda下。