MirageOS to biblioteka systemu operacyjnego, która pozwala na tworzenie systemów operacyjnych jednej aplikacji w którym wniosek jest dostarczany jako «jednojądrowe»Który eJest niezależny, może działać bez użycia systemów operacyjnych, oddzielnego jądra systemu operacyjnego i nie tylko.
Do języka programowania aplikacji OCaml jest językiem z bibliotekami w celu zapewnienia funkcjonalności sieci, pamięci masowej i funkcji obsługiwanych przez system. Kod projektu jest rozpowszechniany na wolnej licencji ISC.
System operacyjny Mirage obsługuje kilkadziesiąt bibliotek w języku OCaml do wykonywania operacji sieciowych (DNS, SSH, OpenFlow, HTTP, XMPP itp.), Współpracują z repozytoriami i zapewniają równoległe przetwarzanie danych.
O MirageOS
Dla tych, którzy nie wiedzą, kim są unikernels, to jest o struktury specjalnie zaprojektowane do korzystania z bibliotek systemu operacyjnego, minimum niezbędne do uruchomienia określonej aplikacji. Oszczędza to wirtualizację całego systemu operacyjnego i poprawia ogólną wydajność.
Wszystkie funkcje niskiego poziomu właściwe dla systemu operacyjnego jest zaimplementowany w postaci biblioteki dołączonej do aplikacji.
Aplikację można tworzyć na dowolnym systemie operacyjnym, a następnie skompilować do wyspecjalizowanego jądra (stąd koncepcja Unikernel).
Że może działać bezpośrednio na hipernadzorcach Xen, KVM, BHyve i VMM, w postaci procesu w środowisku zgodnym z POSIX lub w Amazon Elastic Compute Cloud i Google Compute Engine.
Wygenerowane środowisko współpracuje bezpośrednio z hiperwizorem bez kontrolerów czy warstw systemowych, co pozwala osiągnąć znaczną redukcję kosztów całkowitych oraz zwiększyć bezpieczeństwo poprzez zmniejszenie ilości kodu wdrażanego do uruchomienia aplikacji.
Praca z MirageOS sprowadza się do trzech etapów:
- Przygotowanie konfiguracji wraz z definicją pakietów OPAM używanych w środowisku
- Tworzenie środowiska
- Początek środowiska.
Pomimo tego, że aplikacje i biblioteki są tworzone w języku OCaml wysokiego poziomu, środowiska końcowe wykazują dość dobrą wydajność i minimalny rozmiar (na przykład serwer DNS ma tylko 200 KB).
Uproszczona jest również obsługa środowisk, ponieważ w przypadku konieczności aktualizacji programu lub zmiany konfiguracji wystarczy utworzyć i uruchomić nowe środowisko.
Główne nowe funkcje MirageOS 3.5
Niedawno została wydana nowa wersja tej biblioteki, która MirageOS 3.5 osiąga swoją wersję z nowymi ulepszeniami.
W MirageOS 3.5 se dodaj specyfikację interfejsu do pracy z bazą danych w formacie (mirage-kv)I nowy magazyn z obsługą operacji odczytu i zapisu oraz opcja przechowywania „nietrwałego przechowywania danych w pamięci RAM”.
Celem tej pracy jest zastąpienie interfejsu mirage-fs przechowywaniem. Dodatkowo rozwijana jest pamięć rozproszona irmin, która zapewnia możliwość tworzenia baz danych i dostępu poprzez protokół Git, a także system plików wodan, który może być używany na pendrive'ach.
Biblioteki API w tej nowej wersji zostały rozszerzone do mirage-clock (zegar systemowy), mirage-protocol (protokoły sieciowe) i mirage-net (urządzenia sieciowe).
Ponadto dodano obsługę ponownego składania fragmentów pakietów IPv4 (reasemblacja fragmentów) do implementacji stosu TCP / IP. W przypadku protokołu TCP został dodany wsparcie podtrzymujące.
Pakiet mirage-net, który zapewnia narzędzia do niskopoziomowej interakcji z urządzeniami sieciowymi, implementuje późniejsze wersje xen, solo5, unix, macos i vnetif.
Środowisko uruchomieniowe oparte na Solo5 było obsługiwane do pracy na hipernadzorcach FreeBSD bhyve i OpenBSD VMM, obsługujących ARM64 i KVM, dodając możliwość pracy z mikrojądrem GenodeOS.
Wreszcie, kolejną kluczową kwestią jest to, że dodano możliwość dołączania zależności pakietów do unikernel, które wymagają menedżera pakietów opam 2.0.2.
Oraz obsługę języka OCaml 4.06.0 w trybie bezpiecznym do pracy z napisami.
Jeśli chcesz dowiedz się więcej na ten temat możesz się skonsultować poniższy link.