• 單一內核

    編輯
    本詞條由“匿名用戶” 建檔。

    目錄

    單一內核

    編輯

    unikernel 是一種專用的、單一地址空間的機器映像,通過使用庫操作系統構建。 開發人員從模塊化堆棧中選擇最小的庫集,這些庫對應于應用程序運行所需的操作系統構造。 然后,這些庫與應用程序和配置代碼一起編譯,以構建密封的、固定用途的圖像 (unikernel),這些圖像直接在管理程序或硬件上運行,而無需 Linux 或 Windows 等操作系統的干預。

    xxx個這樣的系統是 1990 年代后期的 Exokernel 和 Nemesis。

    設計

    編輯

    圖書館操作系統中,保護邊界被推到最低的硬件層,導致:

    • 一組實現機制的庫,例如驅動硬件或討論網絡協議所需的機制;
    • 一組在應用層實施訪問控制和隔離的策略。

    與傳統的操作系統設計相比,圖書館操作系統架構有幾個優點和缺點。 優點之一是因為只有一個地址空間,所以不需要重復的特權轉換來在用戶空間和內核空間之間移動數據。 因此,庫 OS 可以通過允許直接訪問硬件來提供改進的性能,而無需在用戶模式和內核模式之間轉換(在傳統內核上,這種轉換由單個 TRAP 指令組成,與上下文切換不同)。 可以通過消除在用戶空間和內核空間之間復制數據的需要來實現性能提升,盡管這也可以通過傳統操作系統中的零復制設備驅動程序實現。

    一個缺點是因為沒有分離,嘗試在一個庫操作系統中并排運行多個應用程序,但具有強大的資源隔離,可能會變得復雜。 此外,運行圖書館操作系統的特定硬件需要設備驅動程序。 由于硬件正在迅速變化,這造成了定期重寫驅動程序以保持最新狀態的負擔。

    操作系統虛擬化可以克服商品硬件上的一些缺點。 現代管理程序為虛擬機提供 CPU 時間和高度隔離的虛擬設備。 作為虛擬機運行的庫操作系統只需要為這些穩定的虛擬硬件設備實現驅動程序,就可以依賴管理程序來驅動真實的物理硬件。 然而,仍然需要協議庫來替代傳統操作系統的服務。 創建這些協議庫是實現現代庫操作系統時的大部分工作所在。 此外,在 unikernel 和管理程序之間切換時,以及在管理程序虛擬設備之間傳遞數據時,對管理程序的依賴可能會重新引入性能開銷。

    通過減少部署的代碼量,unikernel 必然會減少可能的攻擊面,從而提高安全性。

    基于 unikernel 的消息傳遞客戶端示例的大小約為使用 Linux 的等效代碼庫的 4%。

    由于其構造的性質,可以跨設備驅動程序和應用程序邏輯執行整個系統優化,從而提高專業化。 例如,在 unikernel 上運行的現成應用程序,如 nginx、SQLite 和 Redis,性能提高了 1.7-2.7 倍。

    單一內核

    單核已定期顯示啟動速度非常快,在請求超時之前及時響應傳入請求。

    單核有助于創建遵循面向服務或微服務軟件架構的系統。

    高度專業化意味著 unikernel 不適合傳統操作系統用于的那種通用、多用戶計算。 添加額外的功能或更改已編譯的 unikernel 通常是不可能的,相反的方法是編譯和部署具有所需更改的新 unikernel。

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/196286/

    (1)
    詞條目錄
    1. 單一內核
    2. 設計

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久