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

itworld123 發佈 2020-02-08T11:23:07+00:00

什麼是Linux及內核在1991年,有個名為LinusTorvalds的學生在網際網路上發布了一個名為Linux的作業系統。

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

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

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

什麼是Linux及內核

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

在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發行版很多,下面簡單的介紹比較流行的發行版。

Redhat發行版

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

CentOS發行版

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

Red Hat和CentOS等作業系統發行版主要應用在企業服務中,更多的應用在服務端業務中,比如Web服務和雲計算等等

Ubuntu發行版

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

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

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

Suse發行版

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

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

Linux作業系統整體架構

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

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

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

Linux內核(Kernel)

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

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

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

系統庫

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

系統程序(工具集)

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

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

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

參考文獻

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/

關鍵字: