什麼Linux,Linux內核及Linux操作系統,整體架構介紹

我們經常傻傻的分不清楚Linux內核和Linux操作系統。對Redhat、CentOS和Ubuntu等更是稀裡糊塗。今天我們介紹一下關於Linux的相關概念、發展歷史及Linux操作系統的整體架構。

關於Linux的技術及其它問題歡迎大家進圈子討論,目前圈子是完全免費的!!!

由於普通文章無法修改,但技術文章不可避免的會出現一些錯誤,修改在所難免,因此本號稍後會將文章同步到專欄當中。專欄中的文章正確性更強,系統性也更強。

什麼是Linux及內核

在1991年,有個名為Linus Torvalds的學生在互聯網上發佈了一個名為Linux的操作系統。說它是操作系統是因為它實現了對計算機核心硬件的管理。但是它有不能稱為一個真正的或者說可用於生產的操作系統,因為它只實現了對計算機資源的簡單管理(也就是實現了一個操作系統內核),卻沒有編譯工具等其它操作系統必備的工具集成到其中。

什麼Linux,Linux內核及Linux操作系統,整體架構介紹

圖1 Linus Torvalds大神

在Linux的早期,Linux這個名詞其實就是Linux操作系統內核的簡稱。Linux內核並非操作系統而是實現了對計算機硬件的管理,是操作系統的基座,通常包括如下幾個方面:

  • 內存管理
  • 進程管理,其實就是對CPU的管理
  • 設備管理,例如鼠標,鍵盤等
  • 文件管理,也就是對硬盤等存儲設備的管理,抽象為文件系統
  • 網絡設備管理,網絡設備可以看作一個特例
  • 應用程序開發接口
  • 由於Linux內核開源且免費的特點,越來越多的公司和個人參與到Linux內核的開發當中。而且很多開源項目也移植到Linux之上,這樣Linux逐漸豐滿起來。

    慢慢的,很多公司在Linux內核的基礎上增加了開發工具和應用軟件,將Linux內核和這些用戶態的軟件打包成為一個操作系統安裝鏡像,這個系統稱為Linux操作系統,或者稱為

    Linux發行版。這個Linux操作系統就好像Windows系統一樣,普通用戶可以使用它進行日常工作。

    Linux發行版很多,比如我們見的比較多的有Ubuntu、Redhat和Suse等等,非常之多。對於傳統概念,操作系統應該是一個具備完整功能的系統,它不僅僅包括內核,還要包括很多應用軟件。因此,後來逐漸將Linux的含義由Linux轉換為Linux操作系統,而Linux的內核則用"Linux內核"作為稱呼,以便於進行區分。

    Linux操作系統及各種發行版

    前面我們簡要的介紹了Linux操作系統、內核和發行版。對於Linux操作系統來說,其本身是一個整體,包括Linux內核、系統庫和系統程序,Linux內核是其最基礎的部分,它實現了對硬件資源的管理,並且提供了使用這些硬件資源的通用接口。

    自1991年發佈LInux內核來,很多公司加入其中,在內核的基礎上構建了自己的操作系統版本,比如Redhat、Debian和Suse等等。如圖2是從1991年到2007年間Linux發行版的演化情況(高清圖請私信, linuxtl)。可以看出,到2007年已經有不少於20個發行版了。

    什麼Linux,Linux內核及Linux操作系統,整體架構介紹

    圖2 Linux發行版時間線

    Linux發行版很多,下面簡單的介紹比較流行的發行版。

    Redhat發行版

    Red Hat Linux是由Red Hat公司發佈的一個Linux發行版。Red Hat Linux可算是一個“中年”的Linux發佈包,其1.0版本於1994年11月3日發佈。Red Hat Linux應該是業界應用最多的操作系統了,很多其它發行版都是基於該發行版,例如CentOS和Oracle Linux等等。

    什麼Linux,Linux內核及Linux操作系統,整體架構介紹

    圖3 redhat發行版

    CentOS發行版

    CentOS發行版是一個Red Hat LInux的開源版本。它是來自於Red Hat Linux依照開放源代碼規定釋出的源代碼所編譯而成。由於Red Hat Linux本身是一個商業操作系統,因此很多企業在使用是存在諸多不便,這些企業就轉移到CentOS上來。

    什麼Linux,Linux內核及Linux操作系統,整體架構介紹

    圖4 CentOS發行版

    Red Hat和CentOS等操作系統發行版主要應用在企業服務中,

    更多的應用在服務端業務中,比如Web服務和雲計算等等

    Ubuntu發行版

    Ubuntu最早是一個基於Dibian的桌面版發行版。Ubuntu基本上可以代替Windows實現日常辦公,因為其發行版中包含日常辦公常用的所有軟件,比如郵件客戶端,開源Office套件等等我們能想到的工具。而且這些工具都是免費的。

    什麼Linux,Linux內核及Linux操作系統,整體架構介紹

    圖5 Ubuntu發行版

    下面是Ubuntu桌面版的一個桌面截圖,可以看出其跟Windows或則MacOS很像,美觀度也是很讚的。

    什麼Linux,Linux內核及Linux操作系統,整體架構介紹

    圖6 Ubuntu桌面

    Ubuntu發展很快,目前除了桌面版外還有服務版和雲計算版等其它版本,幾乎涵蓋了所有的應用領域。

    Suse發行版

    Suse是德國 SuSE Linux AG公司發行維護的Linux發行版,是屬於此公司的註冊商標。第一個版本出現在1994年年初,也是比較早的發行版之一。2004年這家公司被Novell公司收購。

    什麼Linux,Linux內核及Linux操作系統,整體架構介紹

    圖7 Suse發行版

    我們只介紹了比較主流的發行版。Linux的發行版還很多,很難全部介紹。最後我們總結一下幾個關鍵發行版的時間線以及Linux社區的比較重要的幾個大事件,具體如圖所示。當然,這裡面不僅僅包括Linux操作系統本身,還包括編譯器和Git版本控制工具等等。

    什麼Linux,Linux內核及Linux操作系統,整體架構介紹

    圖8 Linux30件大事

    Linux操作系統整體架構

    前面我們介紹了操作系統不僅僅包含內核,內核只是操作系統的基礎,實現了對硬件資源的管理。操作系統的組件通常包括如下幾部分:

    1. 操作系統內核
    2. 系統庫
    3. 系統工具集

    基於上述關鍵組件,用戶可以使用該操作系統,或者基於該操作系統開發自己的應用程序。如圖4為Linux操作系統架構簡圖。從這張圖中我們可以看出操作系統與硬件及應用軟件間的關係。下面我們分別介紹一下各部分含義和作用。

    什麼Linux,Linux內核及Linux操作系統,整體架構介紹

    圖4 Linux整體架構

    Linux內核(Kernel)

    內核時操作系統最核心,最基礎的部分。它實現了對計算機硬件的管理,並且對上層提供接口。這裡的接口包括開發接口和管理接口等等。通常來說有兩者類型的操作系統內核,它們是微內核和宏內核

    微內核,正如其名字一樣,它只包含最基礎的功能特性。在微內核操作系統中只提供了非常簡單的軟件,包括內存管理,進程管理和進程通信等等特性。

    宏內核,宏內核不僅僅提供內存管理、進程管理和通信的特性,還包含很多驅動程序。而且,這些驅動程序通常是可以動態的加載和卸載。

    系統庫

    操作系統不能自嗨,其最重要的是為上層提供抽象的接口,這樣開發人員才能開發應用程序,從而利用計算機資源。其中系統庫就是操作系統提供的抽象接口,也就是開發接口或者系統API。類似的接口很多,比如訪問文件系統的API,網絡套接字API或者進程管理API等等。

    系統程序(工具集)

    系統工具集其實就是操作系統自帶的一些軟件。這些軟件主要實現對操作系統的管理和監控等功能。比如對操作系統網絡狀態的查看(ifconfig),磁盤格式化和磁盤負載監控等等。類似的工具很多,本文不再贅述。

    上面只是簡單的介紹了一下Linux操作系統的幾個核心組件,其實Linux的整體架構要複雜的多。單純從Linux內核的角度,它要管理CPU、內存、網卡、硬盤和輸入輸出等設備,因此內核本身分為進程調度,內存管理,虛擬文件系統,網絡接口等4個核心子系統。

    什麼Linux,Linux內核及Linux操作系統,整體架構介紹

    圖5 Linux子系統架構

    由於篇幅有限,本文不可能對上述子系統進行更加詳細的介紹。更多,更深入的介紹我們後面專門進行介紹。更多精彩內容請關注本號及圈子。

    參考文獻

    https://www.tutorialspoint.com/operating_system/os_linux.htm

    https://www.tutorialspoint.com/unix/unix-getting-started.htm

    https://www.elprocus.com/linux-operating-system/


    分享到:


    相關文章: