什麼是核心以及不同型別的核心?
核心是作業系統的重要組成部分。核心是在我們啟動系統時,引導載入程式之後載入的第一個程式。核心駐留在記憶體中,直到作業系統關閉。
核心提供使用者與系統硬體元件之間的介面。當一個程序向核心發出請求時,這被稱為系統呼叫。
功能
核心的功能如下:
程序管理
訪問計算機資源
裝置管理
記憶體管理
中斷處理
I/O 通訊
檔案系統...等等。
訪問計算機資源 - 核心訪問各種計算機資源,例如 CPU、I/O 裝置和其他資源。核心位於使用者和系統資源之間,以建立通訊。
資源管理 - 核心以一種方式在各種程序之間共享資源,以便每個程序都能統一訪問這些資源。
記憶體管理 - 通常記憶體管理由核心完成,因為每個程序都需要一些記憶體空間,並且必須為其執行分配和釋放記憶體。
裝置管理 - 核心管理系統中連線的由程序使用的外圍裝置的分配。
核心型別
核心的不同型別如下:
單核心
在單核心中,使用者服務和核心服務都實現於同一個記憶體空間中。這樣做會增加核心的大小,同時也會增加作業系統的大小。由於沒有獨立的使用者空間和核心空間,因此程序在單核心中的執行速度會更快。
優點
單核心的優點如下:
它透過系統呼叫提供 CPU 排程、記憶體排程、檔案管理。
由於沒有獨立的空間,因此程序的執行速度很快。
缺點
單核心的缺點如下:
- 如果服務失敗,則系統也會發生故障。
- 如果嘗試新增新服務,則需要修改整個作業系統。
微核心
微核心與單核心不同。它略有不同,因為在微核心中,使用者服務和核心服務實現於不同的空間中。由於分別使用使用者空間和核心空間,因此它減少了核心的大小,進而減少了作業系統的大小。
由於我們為使用者和核心服務使用不同的空間,因此應用程式和服務之間的通訊藉助訊息解析完成,因此降低了執行速度。
微核心的優點是可以隨時輕鬆新增新服務。
微核心的缺點是這裡我們分別使用使用者空間和核心空間。因此,它們之間的通訊可能會降低整體執行時間。
混合核心
它是單核心和微核心的組合。它利用了單核心的速度和微核心的模組化。
混合核心是微核心,在核心空間中包含一些非必要的程式碼,以便程式碼比在使用者空間中執行更快。因此,某些服務(如網路堆疊或檔案系統)在核心空間中執行以減少效能開銷,但它仍然在使用者空間中將核心程式碼作為伺服器執行。
納核心
顧名思義,核心的完整程式碼非常小,這意味著在硬體特權模式下執行的程式碼非常小。術語“納核心”用於解釋核心支援納秒級時鐘解析度。
外核
外核是由麻省理工學院並行和分散式作業系統小組開發的一種作業系統核心。在這種型別的核心中,資源保護與管理分離,從而允許我們執行特定於應用程式的自定義。
在外核中,沒有強制抽象,這是使其與單核心和微核心不同的特性。但其缺點是設計複雜。外核的設計非常複雜。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP