Petr Hosek , szef zespołu Google odpowiedzialnego za systemy kompilacji, kompilatory i narzędzia programistyczne, zaprezentował niedawno pierwsze urządzenie z systemem operacyjnym Fuchsia. Oprogramowanie układowe oparte na systemie Fuchsia rozpocznie wdrażanie w inteligentnych ramkach do zdjęć Nest Hub w ramach eksperymentalnej aktualizacji dla członków programu Google Preview.
Wspomniano, że jeśli podczas testów nie wystąpią żadne nieprzewidziane problemy , oprogramowanie układowe oparte na Fuchsii zostanie wdrożone na urządzeniach innych użytkowników Nest Hub , którzy nie zauważą różnic, ponieważ interfejs zbudowany na platformie Flutter pozostanie taki sam. Zmienią się jedynie niskopoziomowe komponenty systemu operacyjnego.
Wcześniej wydawane od 2018 roku urządzenia Google Nest Hub, które łączyły w sobie funkcje ramki na zdjęcia, systemu multimedialnego i interfejsu do sterowania inteligentnym domem, wykorzystywały oprogramowanie układowe oparte na powłoce Cast i jądrze Linux.
Przypomnijmy, że w ramach projektu Fuchsia, Google od 2016 roku pracuje nad uniwersalnym systemem operacyjnym, który będzie działał na każdym typie urządzeń, od stacji roboczych i smartfonów po urządzenia wbudowane i konsumenckie. Prace rozwojowe są prowadzone z uwzględnieniem doświadczeń zdobytych podczas tworzenia platformy Android oraz z uwzględnieniem braków w zakresie skalowalności i bezpieczeństwa.
System oparty jest na mikrojądrze Zircon, które z kolei bazuje na rozwiązaniach z projektu LK i jest rozszerzone o możliwości wykorzystania w różnych klasach urządzeń, w tym smartfonach i komputerach osobistych. Zircon rozszerza LK o obsługę współdzielonych procesów i bibliotek, zarządzanie na poziomie użytkownika, obsługę obiektów oraz model bezpieczeństwa oparty na możliwościach. Sterowniki są implementowane jako dynamiczne biblioteki przestrzeni użytkownika, ładowane przez proces devhost i zarządzane przez menedżera urządzeń (devmg).
Dla Fuchsii opracowano własny graficzny interfejs użytkownika napisany w języku Dart, wykorzystujący framework Flutter. W ramach projektu rozwijane są również framework Peridot UI, menedżer pakietów Fargo, biblioteka standardowa libc, system renderowania Escher, sterownik Magma Vulkan, Scenic Composer, systemy plików MinFS, MemFS, ThinFS (FAT w Go) oraz Blobfs, a także partycjonowanie FVM. Projekt umożliwia również tworzenie aplikacji mobilnych na systemy iOS i Android. Renderowanie jest obsługiwane przez komponent Escher, który działa poprzez graficzne API Vulkan.
Środowisko użytkownika jest podzielone na dwa komponenty: Armadillo i Armadillo User Shell. Armadillo to przenośna aplikacja, która może działać na dowolnej platformie kompatybilnej z Flutter, w tym na Androidzie i iOS (wersja demonstracyjna została przygotowana w postaci pliku APK dla Androida, co pozwala na przetestowanie interfejsu bez instalowania Fuchsii). Armadillo User Shell to link do aplikacji Armadillo, który udostępnia narzędzia do interakcji z usługami Fuchsii poprzez interfejsy FIDL oraz do organizowania środowiska użytkownika na bazie komponentów systemowych Fuchsii OS.
Do tworzenia aplikacji zapewniona jest obsługa C / C ++, Dart, Rust jest również dozwolony w komponentach systemu, w stosie sieciowym: Ve oraz w systemie budowania języka Python.
Proces rozruchu używa menedżera systemu, który obejmuje appmgr do tworzenia początkowego środowiska oprogramowania, sysmgr do tworzenia środowiska rozruchowego oraz basemgr do konfigurowania środowiska użytkownika i organizowania logowania.
Aby zapewnić bezpieczeństwo, zaproponowano zaawansowany system izolacji piaskownicy, w którym nowe procesy nie mają dostępu do obiektów jądra, nie mogą przydzielać pamięci ani wykonywać kodu. System przestrzeni nazw służy do uzyskiwania dostępu do zasobów, określając dostępne uprawnienia. Platforma zapewnia platformę do tworzenia komponentów, czyli programów działających w swojej piaskownicy i mogących wchodzić w interakcje z innymi komponentami za pośrednictwem protokołu IPC.