premiera projektu , pozwalającego na tworzenie systemów operacyjnych jednego zastosowania, w których aplikacja dostarczana jest jako samodzielny „unikernel”, zdolny do działania bez użycia systemów operacyjnych, oddzielnego jądra OS i jakichkolwiek warstw pośrednich. Do tworzenia aplikacji używany jest język OCaml. Kod projektu na wolnej licencji ISC.
Cała funkcjonalność na niskim poziomie, charakterystyczna dla systemu operacyjnego, jest zrealizowana w formie biblioteki, dołączanej do aplikacji. Aplikacja może być rozwijana w dowolnym systemie operacyjnym, po czym jest kompilowana do wyspecjalizowanego jądra (koncept ), które może być uruchamiane bezpośrednio na hypervisorach Xen, KVM, BHyve i VMM (OpenBSD), na platformach mobilnych, w formie procesu w środowisku zgodnym z POSIX lub w środowiskach chmurowych Amazon Elastic Compute Cloud i Google Compute Engine.
Wygenerowane środowisko nie zawiera zbędnych elementów i взаимодействuje bezpośrednio z hypervisorem bez sterowników i systemowych warstw pośrednich, co pozwala na znaczące obniżenie kosztów operacyjnych oraz zwiększenie bezpieczeństwa. Praca z MirageOS sprowadza się do trzech etapów: przygotowanie konfiguracji z określeniem używanych w środowisku , zbudowanie środowiska i uruchomienie środowiska. Runtime do zapewnienia działania na Xen oparty jest na okrojonym jądrze , a dla innych hypervisorów i systemów bazujących na jądrze .
Pomimo że aplikacje i biblioteki są tworzone w wysokopoziomowym języku OCaml, ostateczne środowiska pokazują całkiem niezłą wydajność oraz minimalny rozmiar (na przykład serwer DNS zajmuje zaledwie 200 Kb). Uproszczona została również konserwacja środowisk, ponieważ w przypadku aktualizacji programu lub zmiany konfiguracji wystarczy stworzyć i uruchomić nowe środowisko. Obsługiwanych jest w języku OCaml do wykonywania operacji sieciowych (DNS, SSH, OpenFlow, HTTP, XMPP itp.), pracy z magazynami oraz zapewnienia równoległego przetwarzania danych.
Główne zmiany w nowej wersji związane są z zapewnieniem obsługi nowych możliwości zaproponowanych w narzędziu (środowisko sandboxowe do uruchamiania unikernel):
- Dodano możliwość uruchamiania unikernel MirageOS w izolowanym środowisku („sandboxed process tender”), dostarczanym przez narzędzie Podczas korzystania z backendu spt, rdzenie MirageOS są uruchamiane w procesach użytkownika Linux, do których stosuje się minimalną izolację opartą na seccomp-BPF;
- Zrealizowano wsparcie z projektu Solo5, który umożliwia zdefiniowanie kilku podłączonych do unikernel adapterów sieciowych i urządzeń magazynujących przy izolacji opartej na backendach hvt, spt i muen (użycie dla backendów genode i virtio jest obecnie ograniczone do jednego urządzenia);
- Wzmocniono ochronę backendów opartych na Solo5 (hvt, spt), na przykład zapewniono kompilację w trybie SSP (Stack Smashing Protection).
Źródło: opennet.ru
