「ds」Monolithic && Microkernel區別

Monolithic && Microkernel區別

單核

  • 整個操作系統都放置在內核中
  • 它作爲一個大過程運行
  • 由於所有服務都放置在內核中,因此它們只有一個地址空間
  • 更大
  • 易於實現/編碼
  • 性能高(因爲內核可以將所有內容放入內核,因此可以直接調用任何函數)
  • 安全性降低(如果一項服務失敗,則整個系統崩潰)

微內核

  • 內核中僅放置了最少的代碼(僅基本內存管理和進程間通信代碼)
  • 在這裏,內核被分解爲稱爲服務器的進程
  • 由於服務(服務器提供服務)是分開的,因此它們具有不同的地址空間
  • 尺寸更小
  • 很難實現/編碼
  • 性能低下(由於服務器是分開的,因此要從其他服務器調用服務,需要IPC(進程間通信),這需要內核的許可,從而增加了訪問時間並降低了性能)
  • 更安全(即使一項服務崩潰,其他服務也可以由於分離而正常運行)

 

圖中很清楚的看到二者的區別:

參考:https://www.quora.com/What-is-the-difference-between-a-monolithic-kernel-and-microkernel#:~:text=Monolithic%20kernel%20is%20a%20single%20large%20process%20running%20entirely%20in,a%20single%20static%20binary%20file.&text=Examples%20of%20monolithic%20kernel%20based%20OSs%3A%20Unix%2C%20Linux.,separate%20processes%2C%20known%20as%20servers.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章