Fuchsia OS pracuje nad obsługą uruchamiania niezmodyfikowanych programów dla systemu Linux

Programiści Google wydany kilka dni temu plan wdrożenia mechanizmu uruchamiania niezmodyfikowanych programów skompilowanych dla systemu Linux na platformie System operacyjny Fuksja.

Aby uruchamiać programy Linux w przestrzeni użytkownika, planowano dostarczyć warstwę „starnix” do obsługi interfejsu ABI Linuksa. W warstwie rozwiniętej interfejsy systemu jądra Linuksa są zaimplementowane w sterowniku uruchamianym jako proces dla systemu operacyjnego Fuchsia, który działa w przestrzeni użytkownika i tłumaczy żądania z programów Linuksa na wywołania do odpowiednich podsystemów Fuchsia.

Zauważono, żePodczas opracowywania projektu wiele podsystemów Fuchsia będzie musiało zostać zmodyfikowanych zaimplementować wszystkie interfejsy systemowe dostępne w Linuksie. Architektura starnix jest w dużej mierze taka sama jak architektura podsystemu Windows dla systemu Linux, który używa systemu Windows do tłumaczenia wywołań systemowych Linuksa na wywołania systemowe Windows.

Planowane jest zaimplementowanie kodu starnix w Rust, aby zminimalizować możliwe wektory podatnościs, które mogą być potencjalnie użyte do podniesienia uprawnień procesu Linuksa do procesu starnix.

Aby zapewnić bezpieczeństwo w starnix, w miarę możliwości stosowane będą standardowe mechanizmy ochrony Fuchsia.

Na przykład podczas uzyskiwania dostępu do usług systemowych, takich jak system plików, stos sieciowy lub podsystem graficzny, starnix przetłumaczy tylko żądania, konwertując ABI Linuksa na ABI systemu Fuchsia, zezwalając na te same ograniczenia, które są stosowane do zwykłych procesów Fuchsia.

Spowoduje to również zaimplementowanie mechanizmów autoryzacji specyficznych dla Linuksa, na przykład określenie, w jakich sytuacjach jeden proces Linuksa ma prawo zakończyć inny.

Deweloperzy Fuchsia opracowali w przeszłości wsparcie dla uruchamiania aplikacji dla Linuksa, ale eksperymentowali z implementacją, która działa analogicznie do sposobu, w jaki uruchamianie aplikacji Linuksa jest zorganizowane w systemie operacyjnym Chrome.

Aby zapewnić zgodność z systemem Linux, Fuchsia zaoferowała bibliotekę Machina, co umożliwiło uruchamianie programów linuksowych w specjalnej izolowanej maszynie wirtualnej utworzonej przy użyciu hiperwizora opartego na jądrze Zircon i specyfikacji Virtio.

Nie wyklucza się wykorzystania wirtualizacji, ponieważ pełna implementacja interfejsu systemu Linux nie jest łatwym zadaniem.

Oprócz peleryny Starnix, istnieje możliwość stworzenia mechanizmu do uruchamiania plików wykonywalnych Linuksa przy użyciu jądra Linux działającego na oddzielnej maszynie wirtualnej. Ta metoda jest uważana za najłatwiejszą do wdrożenia, ale także najbardziej zasobochłonną.

W pewnym momencie Microsoft zaczął rozwijać swoją warstwę zgodności z Linuksem z poziomu tłumacza, ale ostatecznie przeszedł na używanie natywnego jądra Linuksa w podsystemie Windows dla Linuksa 2.

Ponadto, Fuchsia już zapewnia warstwę kompatybilności z POSIX Lite który działa na szczycie Fuchsia System ABI. POSIX Lite pozwala na uruchamianie niektórych programów linuksowych, ale wymaga rekompilacji kodu aplikacji oraz, w niektórych przypadkach, modyfikacji kodu źródłowego.

Jeden z problemów z POSIX Lite jest niepełną implementacją wszystkich funkcji POSIX, w tym wezwania do zmiany globalnego stanu procesów (na przykład funkcji zabijania), które są sprzeczne z koncepcjami bezpieczeństwa w języku Fuchsia, które zabraniają zmiany globalnego stanu procesów. Wyrazić.

Użycie POSIX Lite jest uzasadnione w procesie przenoszenia otwartych aplikacjis, ale nie rozwiązuje problemów z uruchamianiem programów, do których nie ma dostępu do kodu (np. nie da się osiągnąć kompatybilności z aplikacjami na Androida, które zawierają skompilowane natywne inserty).

Pamiętajmy, że w ramach projektu Fuchsia Google rozwija uniwersalny system operacyjny, który może działać na każdym typie urządzenia, od stacji roboczych i smartfonów po technologie embedded i konsumenckie. Rozwój opiera się na doświadczeniach związanych z tworzeniem platformy Android i uwzględnia braki w zakresie skalowania i bezpieczeństwa.

System oparty jest na mikrojądrze Zircon, opartym na opracowaniach projektu LK, rozszerzonym do użytku w różnych klasach urządzeń, w tym smartfonach i komputerach osobistych.

źródło: https://fuchsia.googlesource.com


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.