Prototyp krajowego systemu operacyjnego Phantom opartego na Genode będzie gotowy przed końcem roku

Dmitrij Zawaliszin opowiedział o projekcie przeniesienia maszyny wirtualnej systemu operacyjnego Phantom do pracy w środowisku systemu operacyjnego Genode microkernel. W wywiadzie zauważono, że główna wersja Phantom jest już gotowa do projektów pilotażowych, a wersja oparta na Genode zostanie doprowadzona do gotowości do użytku pod koniec roku. Jednocześnie strona internetowa projektu jak dotąd podaje jedynie działający prototyp koncepcyjny, którego stabilność i funkcjonalność nie zostały doprowadzone do poziomu odpowiedniego do użytku przemysłowego, a wśród najbliższych planów wspomniano o utworzeniu wersji alfa odpowiedniej do eksperymentów przez zewnętrznych deweloperów.

Kod projektu jest rozpowszechniany na licencji LGPL, ale ostatnia zmiana w głównym repozytorium jest datowana na listopad 2019 r. Publiczna aktywność związana z projektem jest skoncentrowana w repozytorium z forkiem dla Genode, który jest utrzymywany przez Antona Antonova, studenta Uniwersytetu Innopolis, od grudnia 2020 r.

System operacyjny Phantom rozwijał się jako osobisty projekt Dmitrija Zawaliszyna od początku lat 2000., a od 2010 roku jest przeniesiony pod skrzydła Digital Zone, firmy stworzonej przez Dmitrija. System wyróżnia się skupieniem na wysokiej niezawodności i wykorzystaniem koncepcji „wszystko jest obiektem” zamiast „wszystko jest plikiem”, co pozwala obejść się bez używania plików poprzez zapisywanie stanu pamięci i ciągły cykl pracy. Aplikacje w Phantom nie kończą się, a jedynie wstrzymują i wznawiają pracę od przerwanego punktu. Wszystkie zmienne i struktury danych mogą być przechowywane tak długo, jak potrzebuje tego aplikacja, a programista nie musi specjalnie martwić się o zapisywanie danych.

Aplikacje w Phantom są kompilowane do kodu bajtowego, który działa w maszynie wirtualnej opartej na stosie, podobnej do maszyny wirtualnej Java. Maszyna wirtualna zapewnia trwałość pamięci aplikacji — system okresowo opróżnia migawki stanu maszyny wirtualnej do trwałego magazynu. Po wyłączeniu lub nieprawidłowym zakończeniu pracy można wznowić pracę, zaczynając od ostatniej zapisanej migawki pamięci. Migawki są tworzone asynchronicznie i bez zatrzymywania maszyny wirtualnej, ale migawka rejestruje jednorazowy wycinek, tak jakby maszyna wirtualna została zatrzymana, zapisana na dysku i ponownie uruchomiona.

Wszystkie aplikacje są wykonywane we wspólnej globalnej przestrzeni adresowej, co eliminuje przełączanie kontekstu między jądrem a aplikacjami oraz znacznie upraszcza i przyspiesza interakcję między aplikacjami działającymi na maszynie wirtualnej, która może wymieniać obiekty, przekazując referencje. Dostęp jest rozdzielony na poziomie obiektów, do których referencje można uzyskać tylko poprzez wywołanie odpowiednich metod (nie ma arytmetyki wskaźników). Wszelkie dane, w tym wartości liczbowe, są przetwarzane jako oddzielne obiekty.

W przypadku aplikacji, działanie wydaje się ciągłe i nie jest zakłócane przez restarty systemu operacyjnego, awarie ani wyłączanie komputera. Model programowania Phantoma można porównać do uruchamiania niekończącego się procesu. serwer Aplikacje w językach programowania obiektowego. Przenoszenie programów Java do Phantom jest uważane za jedną z głównych metod tworzenia aplikacji, co ułatwia podobieństwo maszyny wirtualnej Phantom do JVM. Oprócz kompilatora kodu bajtowego Javy, projekt planuje stworzenie kompilatorów dla Pythona i C#, a także implementację pośredniego translatora kodu WebAssembly.

Aby wykonywać operacje o wysokiej wydajności, takie jak przetwarzanie obrazu i dźwięku, możliwe jest uruchamianie natywnych obiektów binarnych w oddzielnych wątkach (do ich budowania używany jest LLVM). Aby uzyskać dostęp do usług jądra niskiego poziomu, niektóre klasy maszyn wirtualnych (klasy „wewnętrzne”) są implementowane na poziomie jądra systemu operacyjnego. Aby uruchomić Linux- aplikacje są wyposażone w warstwę POSIX, która emuluje wywołania niezbędne do działania procesów Unix (trwałość aplikacji w warstwie POSIX nie jest jeszcze zapewniona).

Prototyp krajowego systemu operacyjnego Phantom opartego na Genode będzie gotowy przed końcem roku

Tradycyjny Phantom OS, oprócz maszyny wirtualnej, zawiera własne jądro z implementacją wątków, menedżera pamięci, zbieracza śmieci, mechanizmy synchronizacji, system wejścia/wyjścia i sterowniki do pracy ze sprzętem, co znacznie komplikuje doprowadzenie projektu do gotowości do powszechnego użytku. Komponenty ze stosem sieciowym, podsystemem graficznym i interfejsem użytkownika są rozwijane osobno. Warto zauważyć, że podsystem graficzny i menedżer okien działają na poziomie jądra.

Aby poprawić stabilność, przenośność i bezpieczeństwo projektu, podjęto próbę przeniesienia maszyny wirtualnej Phantom do pracy przy użyciu komponentów otwartego systemu operacyjnego mikrojądra Genode, którego rozwój nadzoruje niemiecka firma Genode Labs. Dla osób chcących eksperymentować z Phantomem na bazie Genode przygotowano specjalne środowisko assembly oparte na Dockerze.

Użycie Genode umożliwi wykorzystanie już przetestowanych mikrojąder i sterowników, a także przeniesienie sterowników do przestrzeni użytkownika (w obecnej formie sterowniki są pisane w C i wykonywane na poziomie jądra Phantom). W szczególności możliwe będzie wykorzystanie mikrojądra seL4, które przeszło matematyczną weryfikację niezawodności, potwierdzającą, że implementacja w pełni odpowiada specyfikacjom określonym w języku formalnym. Rozważana jest możliwość przygotowania podobnego dowodu niezawodności dla maszyny wirtualnej Phantom, co pozwoli na weryfikację całego środowiska systemu operacyjnego.

Mówi się, że głównym zastosowaniem portu opartego na Genode będzie tworzenie aplikacji dla różnych urządzeń przemysłowych i wbudowanych. Przygotowano już zestaw zmian w maszynie wirtualnej, a także dodano powiązania oparte na Genode dla komponentów jądra i kluczowych interfejsów niskiego poziomu zapewniających trwałość. Należy zauważyć, że maszyna wirtualna Phantom może już działać w 64-bitowym środowisku Genode, ale nadal wymaga implementacji operacji VM w trybie trwałości, przeprojektowania podsystemu sterowników oraz dostosowania komponentów do stosu sieciowego i podsystemu graficznego dla Genode.

Prototyp krajowego systemu operacyjnego Phantom opartego na Genode będzie gotowy przed końcem roku
Prototyp krajowego systemu operacyjnego Phantom opartego na Genode będzie gotowy przed końcem roku
Prototyp krajowego systemu operacyjnego Phantom opartego na Genode będzie gotowy przed końcem roku


Źródło: opennet.ru
Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster