什麼Linux,Linux內核及Linux作業系統

2020-12-23 itworld123

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

什麼是Linux及內核

在1991年,有個名為Linus Torvalds的學生在網際網路上發布了一個名為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發行版很多,下面簡單的介紹比較流行的發行版。

Redhat發行版

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

圖3 redhat發行版

CentOS發行版

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

圖4 CentOS發行版

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

Ubuntu發行版

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

5 Ubuntu發行版圖片描述

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

圖6 Ubuntu桌面

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

Suse發行版

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

圖7 Suse發行版

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

圖8 Linux30件大事

Linux作業系統整體架構

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

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

圖4 Linux整體架構

Linux內核(Kernel)

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

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

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

系統庫

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

系統程序(工具集)

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

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

圖5 Linux子系統架構

相關焦點

  • 什麼Linux,Linux內核及Linux作業系統,整體架構介紹
    如圖2是從1991年到2007年間Linux發行版的演化情況(高清圖請私信, linuxtl)。可以看出,到2007年已經有不少於20個發行版了。前面我們介紹了作業系統不僅僅包含內核,內核只是作業系統的基礎,實現了對硬體資源的管理。
  • Linux內核編譯
    這幾天一直在忙Linux內核編譯,終於完成啦!所以特來此與大家分享一下編譯的過程。下載資源1.土土用的是linux-2.6.36.tar.bz2。土土準備了網盤連結,需要的小夥伴自取。為了方便,我們稍微改下路徑,讓文件放到linux下。
  • 帶你閱讀linux內核源碼:linux內核啟動過程分析
    關注「技術簡說」,帶你閱讀不一樣的linux內核。當你在路上遇到一位絕世的麗人,你首先會很好奇她從哪裡來,是什麼樣的成長環境造就了這曠世的美麗。同樣的道理,當你接觸linux內核這位大美女的時候,你也會有上面的小心思,那我們就來看:linux內核從哪兒來? -- 內核是如何運行起來的,它的啟動過程是怎麼樣的?本文或者後續文章代碼均參考自:linux 4.9.230版本。
  • oeasy教您玩轉linux快速入門010101內核版本uname
    linux咱們這次講點什麼呢?這次咱們講講這個 linux([ˈlɪnəks]),什麼是 linux([ˈlɪnəks])呢?咱平常所說的 linux([ˈlɪnəks])作業系統的全稱是 GNU/linux.單獨的 linux([ˈlɪnəks]) 一般指的並不是作業系統,而是作業系統的 .
  • oeasy教您玩轉linux快速入門010101內核版本uname
    linux咱們這次講點什麼呢?這次咱們講講這個 linux([lnks]),什麼是 linux([lnks])呢?這linux([lnks])呀,其實天天和咱們打交道.咱們打車訂餐玩遊戲不都得訪問伺服器麼?這linux([lnks])就是伺服器的kernel(內核)。
  • ARM在嵌入式linux內核裁剪與移植的應用
    嵌入式linux是大勢所趨,其巨大的市場潛力與醞釀的無限商機必然會吸引眾多的廠商進入這一領域。本文引用地址:http://www.eepw.com.cn/article/149868.htm1 嵌入式linux作業系統Linux是一類Unix計算機作業系統的統稱。Linux作業系統的內核的名字也是Linux.Linux作業系統也是自由軟體和開放原始碼發展中最著名的例子。
  • linux技術談|linux系統內核優化案例之網絡服務參數
    linux系統是一個何以做伺服器,還可以做工作站,更是嵌入式設備的功臣,今天的地球科技幾乎全部都搭建在linux系統之上。當然在桌面護作業系統領域,linux系統的ubuntu等等一批優秀方案正在成為windows現macos的掘墓者。無所不能的linux系統,在作為不同系統出現時,系統參數的個性化設置就成為linux調優的關鍵手段。
  • 帶你閱讀linux內核源碼:linux內核原始碼編程規範
    linux內核代碼是許許多多遵循相同內核開發規範的牛人們的共同的創造的結晶。作為一名linux內核或者驅動開發工程師,很有必要了解這些內核開發規範。好處有以下幾個:這些約定或者規範對我們閱讀linux內核源碼、了解設計思路有很大幫助我們基於linux內核做開發,也要往內核裡添加代碼,遵守開發規範,有助於別人閱讀和理解我們的代碼。linux內核代碼規範約定如下:1.強烈推薦單行的寬度為八十列。
  • Linux-1.1.1 Linux與開源軟體(背書連載)
    很多新手都有一個疑惑的問題:「linux我聽過,但是學習之後能用來幹什麼呢?或者說linux能具體做什麼呢?」帶著這個疑問,本書開篇先概述linux與開源軟體的關係以及linux的應用領域和未來的發展方向。
  • Linux作業系統你真的了解嗎?
    Linux是一個開源的,由C語言編寫的作業系統。作業系統的心臟,我們稱為kernel內核。很多人可能知道Linux官方提供了一系列教程來指導你,一步一步的自己搭建作業系統內核,這不是一件難的事情但是把它完成可以提升你的自信程度,以及各種各種。
  • 官方唯一推薦的Linux內核剖析文檔《深入理解Linux內核》免費分享
    Linux是類Unix 作業系統大家族中的一名成員。從20世紀90年代末開始,Linux 這位相對較新的成員突然變得非常流行,並且躋身於那些知名的商用Unix作業系統之列如果你是某種語言的開發者,你從事這個行業,不管你怎麼學習下去,linux永遠繞不開。
  • 作業系統 - Linux 內核模塊的介紹&實踐
    通過此文,你會了解到怎麼創建一個內核模塊,並且加載到Linux內核中。然後修改這個內核模塊,以便在/proc文件系統中創建一個條目。開發內核模塊的優勢就是,這是一個與內核交互的相對而言比較容易的方法,因為可以讓你寫程序直接調用內核函數。
  • Ubuntu中升級Linux內核
    新內核4.2有哪些改進:  ●重寫英特爾的x86彙編代碼  ●支持新的ARM板和SoC  ●對F2FS的per-file加密  ●AMD GPU內核DRM驅動程序  ●對Radeon DRM驅動的VCE1視頻編碼支持  ●初步支持英特爾Broxton Atom SoC
  • 詳解|linux和windows有什麼區別 linux優缺點有哪些
    linux優缺點一覽:什麼是linux?Linux是一套免費使用和自由傳播的類Unix作業系統,是一個多用戶、多任務、支持多線程和多CPU的作業系統。它能運行主要的UNIX工具軟體、應用程式和網絡協議。它支持32位和64位硬體。
  • 華為竟然是linux5.8內核的第一貢獻者!
    中國華為#竟然是linux5.8內核的第一貢獻者!超過谷歌等美國公司!每個安卓手機用戶都要說一聲感謝!作為作業系統內核這麼牛的專家,做出鴻蒙作業系統那不是順理成章的嗎?貢獻的代碼數第一,29萬3365行,佔比27.8%,第二名則是8.8%,發現的bug數是243個,第一!而補丁數是第二:1399個,佔比8.6% ,第一是英特爾,1939個,11.9%。
  • 麒麟作業系統:在linux上運行安卓應用
    使用安卓生態,對於發展linux系統來說相當重要,畢竟安卓也是基於linux內核,兩者關係密切。只要運行在鯤鵬、飛騰處理器上的麒麟作業系統,都會預裝Kydroid 3.0基礎版,可支持微信、抖音等常用應用。Kydroid 3.0加強版不同之處在於,提供了更加豐富的應用。
  • Linux內核編譯初體驗
    下載內核在ftp://ftp.kernel.org/pub/linux/kernel/下載原版內核本文引用地址:http://www.eepw.com.cn/article/201611/319326.htm此處使用linux-2.6.22.6.tar.bz22.
  • Manjaro Linux 17.1.0,基於 Arch Linux 的作業系統
    另外linux49和linux414已經更新到他們的最新版本。這標誌著2017年的最後一次Manjaro更新當前支持的內核linux316 3.16.51linux318 3.18.90 [EOL]linux41 4.1.48linux44 4.4.108linux49 4.9.73linux412 4.12.14 [EOL]
  • Arm Linux 內核生成過程
    依據arch/arm/kernel/vmlinux.lds 生成linux內核源碼根目錄下的vmlinux,這個vmlinux屬於未壓縮,帶調試信息、符號表的最初的內核,大小約23MB;arm-linux-gnu-ld -EL -p --no-undefined -X -o vmlinux -T arch/arm/kernel
  • Linux基礎-linux系統的誕生(天才的傑作)
    什麼是linux作業系統?與我們平時常用的window作業系統一樣,不同的是它是開源的,可以自由傳播的linux系統如何誕生?說到Linux系統的誕生,就不得不提到Linux之前的Unix系統。第三個就是linux之父:Linus Torvalds出場了。他在上大學期間接觸了Unix系統,並閱讀了老師譚邦寧教授用於教學的類Unix系統源碼,然後他就開始設計開發了......然後幾個月之後,Linux系統內核就誕生了(天才有時候已經無發用語言來形容,只有心裡的崇敬和膜拜)。現在的linux系統有那些組成?