震撼的Linux全景圖:業界成熟的內核架構長什么樣?


1)Linux怎么來的?

  • Linus 為了方便訪問大學服務器中的資源 ,在自己的機器上寫了一個文件系統和硬盤驅動,這樣就可以把自己需要的資源下載到自己的機器中。隨后linus把這款操作系統雛形開源,成千上萬的程序員敲出了linux操作系統。

2)為什么很多公司企業網絡把linux當作服務器來使用?

  • Linux 系統性能穩定且開源

3)Linux系統中基本思想是什么?

  • 一切都是文件:每個文件都有確定的用途,包括用戶數據、命令、配置參數、硬件設備等對於操作系統內核而言,都被視為各種類型的文件。

4)Linux能發展到今天僅僅是靠一群黑客嗎?

  • 由很多世界級的頂尖科技公司聯合開發,如 IBM、甲骨文、紅帽、英特爾、微軟,它們開發 Linux 並向 Linux 社區提供補丁,使 Linux 工作在它們的服務器上,向客戶出售業務服務。

5)Linux 內部的全景圖長什么樣?

 

 

 

 

6)現階段我們需要把上圖掌握到什么程度?

  • 知道大概有5個組件,好幾十模塊,每個模塊完成什么功能

7)這么多模塊,模塊與模塊之間是如何通信的?

  • 之間的通信主要是函數調用

8)直接使用函數調用來通信有什么缺點?

  • 一旦有一個函數出現問題,那就系統崩潰。

9)既然確定這么明顯,那為什么還要采用這種方式?

  • 因為它的性能極高,操作系統好不好,性能說了算。

10)蘋果操作系統的內核Darwin長什么樣?

 

 

 

 

  • 它有兩個內核層——Mach 層與 BSD 層。

  • Mach 內核是卡耐基梅隆大學開發的經典微內核,提供最基本的操作系統服務

  • BSD 則是伯克利大學開發的類 UNIX 操作系統,提供一整套操作系統服務。

11)為什么兩套內核會同時存在呢?

  • Mach是最開始的,但是隨着發展它的性能不能很好的完成業務。為了兼容之前的Mach開發的應用和設備驅動,就保留了它,同時引入新的BSD內核。

12)應用如何使用 Darwin 系統的服務呢?

  • 通過用戶層的框架和庫來調用 Darwin 系統 API。

13)那我Darwin 系統如何區分用戶要調用的是Mach層的服務還是BSD層的服務?

  • 調用時,傳一個號碼進來,如果小於0,則是調Mach內核的服務。如果大於0,則是調BSD內核的服務。

14)Mach 中的組件 Libkern是什么?

  • 一個庫,提供了很多底層的操作函數,同時支持 C++ 運行環境。

15)IOKit又是什么?

  • 依賴Libkern庫,管理所有的設備驅動和內核功能擴展模塊。

16)Windows 的內核 NT怎樣來的?

  • 一開始windows的內核是MS-DOS,沒有界面,它也沒有硬件保護機制,后來微軟基於它研發的圖形界面不穩定,動不動就死機。競爭對手也用上了類UNIX操作系統,所以微軟必須搞一套自己的操作系統來上市競爭--Windows NT就誕生了。

17)什么是Windows NT?

  • 微軟於 1993 年推出的面向工作站、網絡服務器和大型計算機的網絡操作系統,也可做 PC 操作系統。是一款全新從零開始開發的新操作系統,並應用了現代硬件的所有特性,“NT”所指的便是“新技術”(New Technology)。

18)NT 內核架構圖長什么樣?

 

 

 

 

  • 上圖中我們只關注內核模式下的東西,也就是傳統意義上的內核。

18)為什么內核之下是硬件抽象層 HAL?

  • 不同的硬件平台只要提供對應的 HAL 就可以移植系統了

19)NT內核的精妙之處在哪里?

  • 各層次分明,各個執行體互相獨立,這種“高內聚、低偶合”的特性,正是檢驗一個軟件工程是否優秀的重要標准。

20)Linux、Darwin-XNU 和 Windows 的區別是什么?

  • Linux 性能良好,結構異常復雜,不利於問題的排查和功能的擴展。

  • Darwin-XNU 和 Windows 結構良好,層面分明,利於功能擴展,不容易產生問題且性能穩定。

21)Windows NT 內核屬於哪種架構類型?

  • NT是混合內核,內核相較於linux來說小,但是仍有一些模塊在內核,也有相當多的模塊在用戶態。 架構額外清晰,也難怪幾十年迭代都未曾大改大變


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM