Petr Hosek, kierujący zespołem w Google odpowiedzialnym za systemy kompilacji, kompilatory i narzędzia dla deweloperów, zaprezentował pierwsze urządzenie, które będzie wyposażone w system operacyjny Fuchsia. Oprogramowanie oparte na Fuchsia zacznie być dostarczane w inteligentnych ramkach do zdjęć Nest Hub w ramach eksperymentalnej aktualizacji dla uczestników programu Google Preview Program.
Jeśli podczas próby wdrożenia nie pojawią się żadne nieprzewidziane problemy, oprogramowanie oparte na Fuchsia zostanie zastosowane również na urządzeniach innych użytkowników Nest Hub, którzy nie dostrzegą żadnych różnic, ponieważ interfejs oparty na frameworku Flutter pozostanie niezmieniony, zmienią się jedynie niskopoziomowe składniki systemu operacyjnego. Wcześniej w wydawanych od 2018 roku urządzeniach Google Nest Hub, łączących funkcje ramki do zdjęć, systemu multimedialnego i interfejsu do zarządzania inteligentnym domem, stosowano oprogramowanie oparte na powłoce Cast i jądrze Linux.
Przypomnijmy, że w ramach projektu Fuchsia firma Google rozwija od 2016 roku uniwersalny system operacyjny, który może działać na wszystkich typach urządzeń, od stacji roboczych i smartfonów po urządzenia wbudowane i konsumpcyjne. Rozwój ten uwzględnia doświadczenia zdobyte podczas tworzenia platformy Android i bierze pod uwagę brakujące elementy w zakresie skalowalności i zapewnienia bezpieczeństwa.
System oparty jest na mikro ją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 wsparciem dla procesów i współdzielonych bibliotek, poziomem użytkownika, systemem przetwarzania obiektów oraz modelem zapewnienia bezpieczeństwa opartym 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).
Dla Fuchsia przygotowano własny interfejs graficzny napisany w języku Dart z użyciem frameworka Flutter. Projekt rozwija również framework do budowy interfejsów użytkownika Peridot, menedżer pakietów Fargo, standardową bibliotekę libc, system renderowania Escher, sterownik Vulkan Magma, menedżer kompozycji Scenic, systemy plików MinFS, MemFS, ThinFS (FAT w języku Go) i Blobfs oraz menedżer partycji FVM. Dla rozwoju aplikacji udostępniona jest obsługa języków C/C++, Dart, w komponentach systemowych możliwe jest także użycie Rust, w stosie sieciowym Go, a w systemie budowy języka Python.

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
