Firma Google opublikowała wydanie systemu operacyjnego Fuchsia 14, na bazie którego stworzono wstępne aktualizacje oprogramowania dla ramek fotograficznych Google Nest Hub i Nest Hub Max. System Fuchsia jest rozwijany przez firmę Google od 2016 roku, mając na uwadze niedociągnięcia w zakresie skalowalności i bezpieczeństwa, które występują w platformie Android.
Główne zmiany w Fuchsia 14:
- Rozszerzone możliwości warstwy Starnix, zapewniającej uruchamianie niezmodyfikowanych programów Linuxa poprzez translację interfejsów systemowych jądra Linux do wywołań odpowiednich subsystemów Fuchsia. W nowej wersji dodano wsparcie dla montowania zdalnych systemów plików, w fxfs dodano xattrs dla linków symbolicznych, w wywołaniu systemowym mmap() dodano punkty śledzenia, rozszerzono informacje w /proc/pid/stat, włączono wsparcie dla fuchsia_sync::Mutex, zrealizowano wsparcie dla O_TMPFILE, pidfd_getfd, sys_reboot(), timer_create, timer_delete, times() i ptrace(), w implementacji ext4 wykorzystano systemowy cache plików.
- Udoskonalony stos Bluetooth. Dodano wsparcie dla dźwięku w profilu Bluetooth HSP (HandSet Profile) i zredukowano opóźnienia przy transmisji dźwięku przez profil A2DP.
- W Matter, implementacji standardu dla podłączania urządzeń w inteligentnym domu, dodano wsparcie dla grup aktualizacji oraz możliwość obsługi stanów przejściowych przy zarządzaniu podświetleniem.
- W stosie sieciowym dla wszystkich platform włączono wsparcie dla gniazd FastUDP.
- Dodano wsparcie dla systemów wielordzeniowych (SMP) opartych na architekturze RISC-V.
- Dodano API do interakcji z planistą zadań.
- Dodano wsparcie dla DeviceTree.
- Sterownik dla urządzeń dźwiękowych z interfejsem USB został przeniesiony na użycie frameworka DFv2.
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).
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
