什麼是內核?
作業系統如何連接硬體和程式?
該部落格上撰寫的文章是出於教學目的而創建的。 另外,文章中的資訊可能不正確,請謹慎。
遊戲、瀏覽器、記事本等程式並未直接操作CPU、記憶體和磁碟。 作業系統中管理程式和硬體之間資源的核心部分稱為核心。
核心是一個資源管理器
電腦上有很多程式想要同時運行,但CPU核心和記憶體都是有限的。 核心決定向誰提供 CPU 時間、哪些記憶體可用以及如何存取檔案和裝置。
應用
遊戲/瀏覽器/記事本
↓ 請求
核心
進程/記憶體/檔案/裝置管理
↓ 控制
CPU/RAM/SSD/鍵盤/網路卡
內核的代表角色如下。
- 管理進程和執行緒的執行順序。
- 建立供每個程式使用的虛擬記憶體空間。
- 透過檔案系統管理檔案和目錄。
- 它透過設備驅動程式與硬體進行通訊。
- 處理網路資料包。
- 防止程式篡改另一個程式的記憶體。
程式向核心發出請求
僅僅因為應用程式想要讀取文件,它不會直接創建SSD控制命令。 當您呼叫作業系統提供的函數時,核心會檢查權限和參數,然後執行實際任務。
std::ifstream file("save.dat");
在C++程式碼中,它看起來像一個簡單的檔案對象,但更進一步它使用了作業系統的檔案開啟和讀取功能。 這樣,應用程式請求內核函數的通道稱為系統呼叫。
如果核心崩潰,整台電腦都會受到影響。
如果一個通用程式出錯,通常只有該程式被終止。 然而,由於核心和核心模式驅動程式管理整個系統,如果這裡發生不正確的記憶體訪問,整個作業系統可能會停止。
因此,由於內核程式碼具有較高的權限,因此驗證和穩定性非常重要。 核心不僅僅是作業系統程式之一,而是控制硬體安全共享的中心層。