隨著(zhù)MirageOS 3.0的發(fā)布,開(kāi)源MirageOS unikernel項目在2月23日達到了一個(gè)重要的里程碑。unikernel的基本思想是,它是一個(gè)高度優(yōu)化和專(zhuān)門(mén)構建的操作系統,可以幫助實(shí)現應用程序的高效運行和交付。

MirageOS 1.0 版本于2013年12月首次亮相,這是Linux基金會(huì )的Xen虛擬機管理程序虛擬化項目領(lǐng)導的一項工作。隨著(zhù)新的MirageOS 3.0版本的發(fā)布,Unikernel現在正在擴展到Xen虛擬機管理程序的范圍之外,并且現在還支持KVM和Bhyve虛擬機管理程序。
自MirageOS 1.0發(fā)行版以來(lái),還發(fā)生了變化的是Unikernel Systems的所有權,這是MirageOS背后的主要開(kāi)發(fā)人員之一。Docker公司于2016年1月收購了 Unikernel Systems。
MirageOS項目負責人Anil Madhavapeddy對eWEEK表示:“ MirageOS仍然是Xen項目的孵化項目,是一個(gè)開(kāi)源的單內核項目。” “自從收購Unikernel Systems以來(lái),該項目沒(méi)有改變;但是圖書(shū)館生態(tài)系統增長(cháng)了很多:我們現在在數百個(gè)存儲庫中擁有350多個(gè)貢獻者。
MirageOS將自己定義為“庫操作系統”,這意味著(zhù)它可以部署為在存在必需的驅動(dòng)程序和引導程序的任何目標系統上運行。Madhavapeddy解釋說(shuō),隨著(zhù)MirageOS 3.0版本的發(fā)布,開(kāi)發(fā)人員的體驗有了重大改進(jìn),并且對核心庫API進(jìn)行了重構,以提高可移植性和性能。添加新的虛擬機管理程序目標以及KVM和Bhyve也很重要,因為MirageOS的先前版本僅支持在Linux,BSD和macOS上運行的Xen虛擬機管理程序。
Madhavapeddy說(shuō):“ MirageOS 3.0通過(guò)IBM貢獻的Solo5項目以KVM的形式添加了第二個(gè)虛擬機管理程序目標。”
他補充說(shuō),Solo5添加了“ virtio”和“ ukvm”目標,它們現在已與Mirage前端工具完全集成。這兩個(gè)目標使用virtio為不同的用例提供服務(wù),以便在可模擬傳統虛擬網(wǎng)絡(luò )的公共云(例如Google Compute Engine)上運行。Madhavapeddy解釋說(shuō),ukvm目標是一種非常簡(jiǎn)單的設備模式,僅專(zhuān)用于unikernel使用,并且僅需要KVM內核支持,而不需要任何用戶(hù)空間設備仿真。
Madhavapeddy說(shuō):“為所有這些架構推廣MirageOS 3的工作量很大,但是有一種新的配置語(yǔ)言使這一切都非常易于管理。” “現在,我們的MirageOS 3的早期用戶(hù)可以在Debian上的FreeBSD Bhyve,Xen,KVM上愉快地部署他們的網(wǎng)站,甚至可以通過(guò)Hypervisor框架直接在macOS上進(jìn)行實(shí)驗。”
MirageOS現在可以在Xen以外的虛擬機管理程序上運行,這對于Xen Project來(lái)說(shuō)不是問(wèn)題。Xen項目顧問(wèn)委員會(huì )主席Lars Kurth表示,Xen項目在早期一直是Unikernels的大力支持者和支持者。
Kurth對eWEEK表示: “作為Xen項目的孵化項目,MirageOS為他們提供了實(shí)施該計劃所需的基礎設施支持。”
Kurth補充說(shuō),MirageOS總是有可能與其他虛擬機管理程序一起工作,以將unikernel的功能引入其他環(huán)境。他指出,Xen項目將這視為單內核增長(cháng)的下一個(gè)階段,非常高興能夠繼續支持MirageOS,以將這一關(guān)鍵技術(shù)帶給整個(gè)系統制造商社區。
Docker Inc.已使用MirageOS啟用其適用于Mac和Windows 應用程序的 Docker 。Madhavapeddy解釋說(shuō),Docker引擎在MacOS上的自定義庫管理程序或Windows上的Hyper-V虛擬機(VM)之上的Alpine Linux發(fā)行版中運行,并且該VM由Docker應用程序管理。
Madhavapeddy說(shuō):“在Mac應用程序上運行的容器中,每個(gè)單個(gè)網(wǎng)絡(luò )數據包都是通過(guò)MirageOS TCP / IP堆棧重建的,這對Mirage 3的整體穩定性表示了肯定。”
當Docker使用MirageOS組件時(shí),容器和unikernel是交付應用程序的兩種不同方式。Unikernel提供操作系統級別的組件,而容器則依賴(lài)于主機操作系統。
Madhavapeddy說(shuō):“關(guān)于Docker和unikernel之間的交集,我們認為unikernel和容器是一個(gè)連續體。” “最終,我們希望使開(kāi)發(fā)人員能夠輕松地使用熟悉且連貫的工具鏈來(lái)構建,發(fā)布和運行他們的代碼-不管應用程序是在容器中還是作為Unikernel構建,或者無(wú)論出現什么情況,下一個(gè)。
