Петр Хосек (Petr Hosek), возглавляющий в Google команду, отвечающую за системы сборки, компиляторы и инструментарий для разработчиков, представил первое устройство, которое будет комплектоваться операционной системой Fuchsia. Прошивка на базе Fuchsia начнёт доставляться в умные рамки для фотографий Nest Hub в рамках экспериментального обновления для участников программы Google Preview Program.
Если в ходе пробного внедрения не возникнет непредвиденных проблем, прошивка на базе Fuchsia будет применена и на устройства остальных пользователей Nest Hub, которые не заметят отличий так как интерфейс, построенный на базе фреймворка Flutter, останется прежним, изменятся только низкоуровневые составляющие операционной системы. Ранее в выпускаемых с 2018 года устройствах Google Nest Hub, сочетающих функции рамки для фотографий, мультимедийной системы и интерфейса для управления умным домом, применялась прошивка на базе оболочки Cast и ядра Linux.
Напомним, что в рамках проекта Fuchsia компанией Google c 2016 года развивается универсальная операционная система, способная работать на любых типах устройств, от рабочих станций и смартфонов до встраиваемой и потребительской техники. Разработка ведётся с учётом опыта создания платформы Android и учитывает недостатки в области масштабирования и обеспечения безопасности.
Система базируется на микроядре Zircon, основанном на наработках проекта LK, расширенного для применения на различных классах устройств, включая смартфоны и персональные компьютеры. Zircon расширяет LK поддержкой процессов и разделяемых библиотек, уровнем пользователя, системой обработки объектов и моделью обеспечения безопасности на основе capability. Драйверы реализуются в виде работающих в пространстве пользователя динамических библиотек, загружаемых процессом devhost и управляемых менеджером устройств (devmg, Device Manager).
Fuchsia posiada własny interfejs graficzny napisany w Dart z wykorzystaniem frameworka Flutter. W ramach projektu opracowano także framework interfejsu użytkownika Peridot, menedżer pakietów Fargo, standardową bibliotekę libc, system renderowania Escher, sterownik Magma Vulkan, menedżer kompozytów Scenic, MinFS, MemFS, ThinFS (FAT w języku Go) i plik Blobfs systemów, a także partycje FVM. Do tworzenia aplikacji zapewniona jest obsługa C / C ++, Dart, Rust jest również dozwolony w komponentach systemu, w stosie sieciowym Go oraz w systemie kompilacji języka Python.
Proces rozruchu wykorzystuje menedżera systemu, który obejmuje appmgr do utworzenia początkowego środowiska oprogramowania, sysmgr do zbudowania środowiska rozruchowego i basemgr do skonfigurowania środowiska użytkownika i organizacji logowania. Aby zapewnić bezpieczeństwo, zaproponowano 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 do dostępu do zasobów wykorzystywany jest system przestrzeni nazw, który określa dostępne uprawnienia. Platforma zapewnia platformę do tworzenia komponentów, czyli programów działających w piaskownicy, które mogą wchodzić w interakcje z innymi komponentami za pośrednictwem IPC.
Źródło: opennet.ru