到底什麼是Linux發行版?

到底什麼是Linux發行版?

Linux內核完成系統引導後,它會找到並掛載一個根文件系統。一旦合適的根文件系統被成功掛載,啟動腳本會啟動很多系統需要的程序和實用工具。這些程序般會調用其他程序來完成具體的任務,例如生成一個登錄shell、初始化網絡設備接口和運行用戶的應用程序。每一個程序都有一些必須由系統中其他成員來滿足的具體需求(一般稱為依賴關係)。大多數的Linux應用程序都依賴一個或多個系統程序庫。還有一些程序需要配置文件和日誌文件,諸如此類。總的來說,即使一個小型的嵌入式Linux系統也需要很多文件,這些文件分佈在根文件系統的合適的目錄中。

完整的桌面Linux系統的根文件系統中包含數千個文件。這些文件來自軟件包(package),而軟件包通常按照功能來組合文件。軟件包由一個包管理器負責安裝和管理。紅帽公司(Red Hat)的rpm就是一個流行的包管理器,它廣泛用於Linux系統中安裝、刪除和更新軟件包。如果你的工作站採用了紅帽公司的Linux操作系統,包括Fedora系列,你可以使用命令rpm –qa來列出系統中已安裝的所有軟件包。如果你使用的是基於Debian的發行版,例如Ubuntu,使用命令dpkg –l即可獲得同樣的效果。

一個軟件包可以包含很多文件,事實上,有的軟件包中包含了數百個文件。一個完整的Linux發行版會包含幾百個甚至幾千個軟件包。

下面是一些嵌入式Linux發行版中可能存在的軟件包:

  1. initscripts,包含了基本的系統啟動和關閉腳本;
  2. apache,實現了流行的Apache web服務器;
  3. telnet-server,包含了實現遠程登錄服務器(telnet server)功能的必要文件,允許你遠程登錄到嵌入式目標上;
  4. glibc,實現了標準C程序庫;
  5. busybox,包含了很多命令行工具的精簡版本,這些工具都是UNIX/Linux系統中的常用工具。

這就是Linux發行版的作用。一個典型的Linux發行版包含好幾張光盤的內容,其中裝滿了有用的應用程序、程序庫、實用工具和文檔等。當Linux發行版安裝好之後,用戶就可以使用功能完備的系統了,這個系統基於一組默認的配置合理的選項,這些選項也可以根據具體需要進行調整。你可能熟悉某個流行的桌面Linux發行版,比如Red Hat或Ubuntu。

針對嵌入式目標的Linux發行版與一般的桌面發行版之間有很多不同之處。首先,嵌入式發行版中的二進制可執行程序是不能在PC上運行的,它們是針對嵌入式系統所使用的硬件架構和處理器而開發的。(當然,如果你的嵌入式系統使用和PC一樣的x86架構,情況可能會有所不同。)Linux發行版通常包含很多面向普通桌面用戶的圖形用戶界面(GUI)工具,例如花哨的圖形時鐘、計算器、個人時間管理工具和電子郵件客戶端等。嵌入式Linux發行版往往會省略這類應用程序,而是更多地提供面向開發者的專用工具,如內存分析工具和遠程調試工具等。

另外,嵌入式發行版中一般會包含交叉開發工具,而不是本地開發工具。例如gcc工具鏈,它運行於採用x86架構的桌面PC,但是會生成可以運行於目標系統的二進制代碼,而這個目標系統的架構一般不是x86。這個工具鏈中的很多其他工具也都是按照類似的方式進行配置的:它們運行於開發主機(通常是一臺x86架構的PC),但生成針對其他架構(例如ARM或Power)的目標文件。



相關推薦

推薦中...