Firma Google rozwija środowisko MicroFuchsia, które obejmuje okrojoną wersję systemu operacyjnego Fuchsia, zoptymalizowaną do działania w maszynach wirtualnych na platformie Android. W kodzie bazy Android rozpoczęto już przyjmowanie zmian mających na celu zapewnienie działania MicroFuchsia. Do uruchamiania maszyn wirtualnych z MicroFuchsia wykorzystany zostanie dodany w Androidzie 13 framework AVF (Android Virtualization Framework), zrealizowany na bazie hipernadzoru KVM i narzędzi crosvm.
Wcześniej Google wykorzystywał AVF do uruchamiania środowiska "Microdroid", stosowanego do izolacji zewnętrznych komponentów systemowych w Androidzie, a także eksperymentował z uruchamianiem systemów gości z Chromium OS. Przyczyny przygotowywania MicroFuchsia dla Androida nie zostały na razie ujawnione, ale przypuszcza się, że firma Google rozwija bardziej wydajne i minimalistyczne środowisko do izolowanego uruchamiania usług w Androidzie, które zużywa mniej zasobów niż środowisko Microdroid oparte na komponentach systemowych Androida i jądrze Linuxa.
Fuchsia opiera się na mikrojądrze Zircon, które bazuje na pracach projektu LK, rozszerzonego do zastosowania w różnych klasach urządzeń, w tym smartfonach i komputerach osobistych. Zircon rozszerza LK poprzez wsparcie dla procesów i współdzielonych bibliotek, poziom użytkownika, system przetwarzania obiektów oraz model zabezpieczeń oparty na capabilities. Sterowniki są realizowane jako dynamiczne biblioteki działające w przestrzeni użytkownika, ładowane przez proces devhost i zarządzane przez menedżera urządzeń (devmg, Device Manager).
W trakcie ładowania używany jest menedżer systemu, który obejmuje appmgr do stworzenia początkowego środowiska programowego, sysmgr do formowania środowiska ładowania oraz basemgr do konfiguracji środowiska użytkownika i organizacji logowania do systemu. Aby zapewnić bezpieczeństwo, wprowadzono zaawansowany system izolacji sandbox, w którym nowe procesy nie mają dostępu do obiektów jądra, nie mogą przydzielać pamięci i nie mogą uruchamiać kodu, a dostęp do zasobów realizowany jest przez system przestrzeni nazw, który określa dostępne uprawnienia. Platforma udostępnia framework do tworzenia komponentów, które są programami uruchamianymi w swoim sandboksie, które mogą komunikować się z innymi komponentami poprzez IPC.
Źródło: opennet.ru
