“Linux”不等同於Linux核心:構建Linux系統的8個軟體包

geekfan發表於2014-01-11

  Linux發行版並不僅僅是Linux核心。所有的Linux發行版都包含了除核心之外的一些必要的軟體包,比如Grub載入程式、Bash shell、GNU shell工具軟體、守護程式、X.org圖形伺服器和桌面環境等等。所有這些不同的程式均由相互獨立的開發小組開發。這些程式被Linux發行版整合到一起從而形成一套完整的“Linux”作業系統。這和Windows作業系統不同,因為整個Windows系統全部由微軟公司開發。

linux-tux-penguin

  載入程式 (Bootloader)

  當你開啟電腦的時候,電腦的BIOS或者UEFI韌體會從其引導裝置中載入軟體。任何一個作業系統啟動時首先載入的都是載入程式。在Linux作業系統中,通常使用的載入程式是Grub。如果你在一臺電腦上安裝了多個作業系統,Grub會提供一個選單供你選擇。例如,如果你裝了雙系統(Linux和Windows),你可以從Linux和Window中選擇任何一項來啟動。如果你的電腦只安裝了Linux,或許Grub可以瞬間啟動它,但是它提供的選擇選單還在那裡。Grub負責啟動Linux系統、提供命令列啟動選項和允許以其它方式啟動Linux以排除故障。沒有載入程式的Linux作業系統是無法啟動的。

Grub載入程式

  Linux核心

  確切地講,Grub引導的是Linux核心。它是作業系統的一部分,並且通常被稱為“Linux”。核心是整個Linux系統的核心。它管理著CPU、記憶體和輸入/輸出裝置(例如鍵盤、滑鼠和顯示器)。由於核心可以直接和硬體互動,很多硬體驅動程式都成為Linux核心的一部分並且在核心中執行。其它所有的軟體都執行在核心之上。核心是最底層的軟體,它提供操作硬體的介面。它在硬體之上提供一個抽象層來處理硬體的各種事務,從而把系統的其它部分從硬體中解放出來。Windows作業系統使用的核心是Windows NT,Linux作業系統使用的是Linux核心。

  守護程式 (Daemons)

  守護程式是不可缺少的後臺程式。作為啟動程式的一部分,它在Linux核心之後和登入介面顯示之前啟動。Windows把這些程式成為“服務”,而類Unix系統則稱它們為“守護程式”。例如,管理任務排程的crond就是一個守護程式——最後的字母d即代表守護程式。廣泛使用的管理系統日誌的syslogd也是守護程式。伺服器程式,如sshd,也是以守護程式的形式在後臺執行。這種做法可以保證它們一直處在執行狀態,從而持續監聽遠端連線。
守護程式本質上只是在後臺執行的程式,但它們是讓人很少留意的系統級程式。

  Shell

  大多數Linux系統的預設shell是Bash shell。Shell提供了命令處理介面,從而可以在命令列視窗中輸入命令來控制電腦。Shell也可以以Shell指令碼的方式執行,這種情況下一組Shell命令被寫在指令碼中並按順序依次執行。
即使只使用圖形桌面,shell也一直在後臺執行。當你開啟終端視窗的時候就會看到shell提示符。

Linux終端-Bash Shell

  Shell工具軟體

  Shell提供了一些最基本的內嵌命令。但大多數使用者經常用到的shell命令並沒有被內嵌到Shell中。例如,GNU核心工具軟體包提供了很多和cp(複製檔案)、ls(列出當前目錄下的檔案)和rm(刪除檔案)一樣重要的命令。如果沒有這些重要的命令,Linux的功能就會受到極大的限制。事實上,Bash shell本身就是GNU專案的一部分。這就是為什麼大家一直在爭議應該把Linux叫做“Linux”還是應該叫它“GNU/Linux”。“Linux”的批評者認為Linux系統中包含了大量的通用軟體,但“Linux”沒有明確指出它們的存在;而“GNU/Linux”的批評者則認為Linux系統中也包含了很多“GNU/Linux”無法代表的重要軟體。並不是所有的shell工具軟體和命令列程式都包含在GNU專案中。一些命令和終端程式都有自己特定的專案。

  X.org圖形伺服器

  Linux圖形桌面不是Linux核心的一部分。它是由一個名叫“X伺服器”的工具包提供的,它實現了很早就有的“X視窗系統”。目前最受歡迎的X伺服器——或叫做圖形伺服器——是X.org。你看到的圖形登入視窗和桌面正是X.org體現它的魔力所在。整個圖形系統是由X.org控制的,它提供了與顯示卡、顯示器、滑鼠和其它一些裝置的介面。X.org只提供了圖形系統而不是整個桌面環境。桌面環境和工具包可以構建在X.org提供的圖形系統之上。

  桌面環境

  你真正使用的Linux桌面是一個桌面環境。例如,Ubuntu採用Utility桌面環境,Fedora採用GNOME,Kubuntu採用KDE,Mint一般使用Cinnamon或MATE。 這些桌面環境提供了一些你看得見的東西——桌面背景、皮膚、視窗的標題欄和邊框。桌面環境通常包含一些自己開發的工具軟體來形成一個整體。例如,GNOME和Unity包含了Nautilus檔案管理器;而KDE則包含了Dolphin檔案管理器。

Unity桌面環境

  桌面程式

  並不是每個桌面程式都是桌面環境的一部分。例如,Firefox和Chrome是與桌面環境無關的,它們通常可以在任何桌面環境中執行。同樣,OpenOffice套件也與具體桌面環境無關。你可以在任何桌面環境中執行任意Linux桌面程式。但是為某個特定桌面環境設計的程式在其它桌面環境中執行時會顯得不協調或執行速度較慢。例如,如果你在KDE中執行GNOME下的Nautilus檔案管理器,它會顯得不協調並要求你安裝一系列的GNOME庫,而且啟動時它或許會後在臺執行GNOME桌面程式。這種情況下它可以執行起來並且可以被使用的。

  Linux發行版執行最後的步驟:把上述的所有軟體整合到一起使它們很好的工作,並新增其它一些必要的軟體。例如,Linux發行版通常都包含自己特定的系統安裝軟體。通過這個軟體,你可以安裝Linux系統和軟體包管理器(用來安裝其它軟體或更新現有的軟體)。

  原文連結: Chris Hoffman 翻譯: 極客範 - 小道空空

相關文章