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來說小,但是仍有一些模組在核心,也有相當多的模組在使用者態。 架構額外清晰,也難怪幾十年迭代都未曾大改大變