MirageOS 4.0 發布,這是一個在虛擬機管理程序之上運行應用程序的平台

經過一年半的開發,MirageOS 4.0專案已經發布,允許為一個應用程式建立作業系統,其中該應用程式作為一個獨立的「unikernel」交付,能夠在不使用作業系統的情況下運行系統、單獨的操作系統內核和任何層。 OCaml 語言用於開發應用程式。 該項目代碼是根據免費的 ISC 許可證分發的。

作業系統固有的所有低階功能都以附加到應用程式的庫的形式實現。 該應用程式可以在任何作業系統上開發,然後編譯成專用核心(unikernel 概念),該核心可以直接運行在 Xen、KVM、BHyve 和 VMM (OpenBSD) 虛擬機器管理程式之上、行動平台之上、 POSIX相容於環境或雲端環境Amazon Elastic Compute Cloud 和Google Compute Engine 中的進程形式。

產生的環境不包含任何多餘的內容,並且直接與虛擬機器管理程式交互,無需驅動程式或系統層,這可以顯著降低管理成本並提高安全性。 使用 MirageOS 分為三個階段:透過定義環境中使用的 OPAM 套件來準備配置、組裝環境以及啟動環境。 為了確保在虛擬機器管理程式之上運行,運行時是基於 Solo5 核心建構的。

儘管應用程式和庫是用高級 OCaml 語言創建的,但生成的環境表現出相當好的效能和最小的大小(例如,DNS 伺服器僅佔用 200 KB)。 環境的維護也得到了簡化,因為如果需要更新程式或更改配置,建立並啟動新環境就足夠了。 支援數百個 OCaml 語言庫,用於執行網路操作(DNS、SSH、OpenFlow、HTTP、XMPP、Matrix、OpenVPN 等)、使用儲存並提供平行資料處理。

主要改進:

  • 編譯專案和unikernel的過程已經改變。 使用dune工具包和本機儲存庫(monorepo)取代先前使用的ocamlbuild組裝系統。 為了創建這樣的儲存庫,添加了一個新的實用程式 opam-monorepo,這使得將套件管理與原始程式碼建置分開成為可能。 opam-monorepo 實用程式的工作包括為專案相關的依賴項建立鎖定檔案、載入和提取依賴項程式碼以及設定環境以使用沙丘建置系統。 實際的組裝是由沙丘工具包執行的。
  • 提供了可重複的建置過程。 使用鎖定檔案提供了依賴版本的鏈接,並允許您隨時使用相同的程式碼完全重複建置過程。
  • 已經實現了一種新的交叉編譯過程,並提供了從一個通用構建環境對所有受支援的目標平台進行交叉編譯的能力,該能力還可以交叉編譯具有C 綁定的依賴項和庫,而無需將這些綁定新增至主包。 交叉編譯是使用沙丘建構系統提供的工作空間來組織的。
  • 新增了對新目標平台的支持,例如,提供了建立在 Raspberry Pi 4 板上運行的獨立應用程式的實驗能力。
  • 已經完成將 MirageOS 的部分內容整合到與 OCaml 語言開發相關的生態系統中的工作,以簡化 Unikernel 形式的應用程式組裝。 許多 MirageOS 軟體包已移植到沙丘構建系統。 opam-monorepo 公用程式可使用 opam 套件管理器進行安裝,並可用於使用 dune 建置系統的專案。 為了維護解決沙丘中建構依賴關係問題的補丁,創建了兩個儲存庫:dune-universe/opam-overlays 和dune-universe/mirage-opam-overlays,使用Mirage CLI 實用程式時預設啟用這兩個儲存庫。
  • MirageOS 與 C 和 Rust 庫的整合已簡化。
  • 已經提出了一個新的 OCaml 運行時,它允許您無需 libc(無 libc)。
  • 可使用 Merlin 服務與標準整合開發環境整合。

來源: opennet.ru

添加評論