“Linux”不等同於Linux核心:構建Linux系統的8個軟體包
Linux發行版並不僅僅是Linux核心。所有的Linux發行版都包含了除核心之外的一些必要的軟體包,比如Grub載入程式、Bash shell、GNU shell工具軟體、守護程式、X.org圖形伺服器和桌面環境等等。所有這些不同的程式均由相互獨立的開發小組開發。這些程式被Linux發行版整合到一起從而形成一套完整的“Linux”作業系統。這和Windows作業系統不同,因為整個Windows系統全部由微軟公司開發。
載入程式 (Bootloader)
當你開啟電腦的時候,電腦的BIOS或者UEFI韌體會從其引導裝置中載入軟體。任何一個作業系統啟動時首先載入的都是載入程式。在Linux作業系統中,通常使用的載入程式是Grub。如果你在一臺電腦上安裝了多個作業系統,Grub會提供一個選單供你選擇。例如,如果你裝了雙系統(Linux和Windows),你可以從Linux和Window中選擇任何一項來啟動。如果你的電腦只安裝了Linux,或許Grub可以瞬間啟動它,但是它提供的選擇選單還在那裡。Grub負責啟動Linux系統、提供命令列啟動選項和允許以其它方式啟動Linux以排除故障。沒有載入程式的Linux作業系統是無法啟動的。
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提示符。
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檔案管理器。
桌面程式
並不是每個桌面程式都是桌面環境的一部分。例如,Firefox和Chrome是與桌面環境無關的,它們通常可以在任何桌面環境中執行。同樣,OpenOffice套件也與具體桌面環境無關。你可以在任何桌面環境中執行任意Linux桌面程式。但是為某個特定桌面環境設計的程式在其它桌面環境中執行時會顯得不協調或執行速度較慢。例如,如果你在KDE中執行GNOME下的Nautilus檔案管理器,它會顯得不協調並要求你安裝一系列的GNOME庫,而且啟動時它或許會後在臺執行GNOME桌面程式。這種情況下它可以執行起來並且可以被使用的。
Linux發行版執行最後的步驟:把上述的所有軟體整合到一起使它們很好的工作,並新增其它一些必要的軟體。例如,Linux發行版通常都包含自己特定的系統安裝軟體。通過這個軟體,你可以安裝Linux系統和軟體包管理器(用來安裝其它軟體或更新現有的軟體)。
原文連結: Chris Hoffman 翻譯: 極客範 - 小道空空
相關文章
- RedHat Linux作業系統軟體包的管理RedhatLinux作業系統
- 『學了就忘』Linux軟體包管理 — 40、Linux系統軟體包介紹Linux
- RedHat Linux作業系統軟體包的管理(轉)RedhatLinux作業系統
- 在Debian系統中編譯Linux核心需要安裝的軟體包(轉)編譯Linux
- Linux核心學習—— 1核心體系結構Linux
- 傳統的 Linux 軟體包格式不適合現代應用Linux
- Linux 的 軟體包的管理Linux
- linux系統常用的中介軟體Linux
- Linux核心的整體架構Linux架構
- ◆◆◆◆◆◆◆◆◆◆◆linux下軟體包的管理◆◆◆◆◆◆◆◆◆◆◆◆◆◆Linux
- Linux離你其實並不遙遠--------構建優美的Linux系統環境Linux
- linux核心--子系統Linux
- 4 種用於構建嵌入式 Linux 系統的工具Linux
- Linux核心記憶體管子系統分析Linux記憶體
- 在 CentOS 8 中刪除舊的 Linux 系統核心CentOSLinux
- LINUX核心分析。8Linux
- 你知道 Linux 核心是如何構建的嗎?Linux
- Kali Linux搜尋軟體包Linux
- Linux系統安裝,教你安裝一個屬於自己的Linux系統Linux
- 【Linux】Linux軟體安裝管理1 rpm軟體包安裝Linux
- linux 升級系統核心Linux
- 從原始碼構建一個極簡的Linux作業系統原始碼Linux作業系統
- 介紹幾個Java大型中介軟體系統中須調整的Linux核心引數JavaLinux
- 將 DEB 軟體包轉換成 Arch Linux 軟體包Linux
- 使用BT協議構建軟體快速分發系統(可用於Linux內網快速分發檔案)協議Linux內網
- 安裝的 Linux 軟體包有多少?Linux
- Linux軟體包與預期的不符Linux
- 吐血整理_Linux軟體包的安裝Linux
- Linux 9系統下構建小型入侵檢測系統Linux
- Linux系統中與記憶體相關的幾個核心引數Linux記憶體
- 簡述linux系統中軟體包管理系統Linux
- Linux無系統核心原始碼Linux原始碼
- Linux新核心:提升系統效能Linux
- linux系統基於oracle的核心引數配置說明LinuxOracle
- Linux系統中常用的軟體安裝方式Linux
- 《奔跑吧 Linux核心》之處理器體系結構Linux
- 透過chroot構建Linux作業系統(轉)Linux作業系統
- 基於Linux系統的包過濾防火牆(3)(轉)Linux防火牆