Monolithic && Microkernel區別
單核
- 整個操作系統都放置在內核中
- 它作爲一個大過程運行
- 由於所有服務都放置在內核中,因此它們只有一個地址空間
- 更大
- 易於實現/編碼
- 性能高(因爲內核可以將所有內容放入內核,因此可以直接調用任何函數)
- 安全性降低(如果一項服務失敗,則整個系統崩潰)
微內核
- 內核中僅放置了最少的代碼(僅基本內存管理和進程間通信代碼)
- 在這裏,內核被分解爲稱爲服務器的進程
- 由於服務(服務器提供服務)是分開的,因此它們具有不同的地址空間
- 尺寸更小
- 很難實現/編碼
- 性能低下(由於服務器是分開的,因此要從其他服務器調用服務,需要IPC(進程間通信),這需要內核的許可,從而增加了訪問時間並降低了性能)
- 更安全(即使一項服務崩潰,其他服務也可以由於分離而正常運行)
圖中很清楚的看到二者的區別: