unikernel介紹

最近聽了一個關於容器的講座,裏面提到docker未來很可能向Unikernel發展,因此查資料學習了下。

定義

參考維基:unikernel由庫操作系統組成,是一個特殊的、單地址空間的機器鏡像。開發者從中選擇模塊化棧和最小庫集合,組成應用需要的最小化系統架構來運行。這些庫跟應用和配置代碼一起編譯,來構建封閉的、固定用途的鏡像(unikernels),可以直接運行在hypervisor或硬件上,而不需要linux和windows這樣的操作系統。

其中單地址空間是指,只有一個地址空間,即沒有用戶空間和內核空間的區分,因此沒有用戶態和內核態的切換,不需要用戶空間和內核空間的數據拷貝。

簡單來說,unikernel就是一個精簡版的操作系統,去除了運行當前應用不需要的模塊。如下圖是傳統操作系統和Mirage unikernel的對比。
在這裏插入圖片描述

相關概念-hypervisor

也稱作VMM虛擬機監視器,是可以創建和運行虛擬機的軟件、固件或硬件。在hypervisor上可以多個虛擬機,提供了虛擬機的隔離可運行不同的操作系統。
具體可參考:

  1. hypervisor
  2. Hypervisor的演化史及未來展望
  3. 虛擬化類型

特點

Unikernel主要目的是減小不必要的代碼邏輯,讓最簡單的操作系統來運行應用。
比如運行web應用,可能只需要運行網絡處理邏輯、磁盤處理邏輯、語言解釋邏輯、cpu調度邏輯就可以了,其他的權限管理、進程切換、可視化、音視頻播放等都可以刪除掉。

優點
  1. 性能更優 不需要用戶態和內核態拷貝
  2. 代碼量更小,相比傳統操作系統減小90%以上
  3. 安全,代碼減小意味着漏洞更少
  4. 快速啓動,可以在用戶請求時才啓動並進行處理
缺點
  1. 難調試和難擴展
  2. 如果硬件更換,硬件驅動可能需要更改,即unikernel需要更新

相關資料

https://zhuanlan.zhihu.com/p/29053035
http://unikernel.org/

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