Петр Хосек (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 ima vlastito grafičko sučelje napisano u Dart-u koristeći okvir Flutter. Projekt također razvija okvir korisničkog sučelja Peridot, upravitelj paketa Fargo, standardnu biblioteku libc, sustav renderiranja Escher, upravljački program Magma Vulkan, upravitelj kompozita Scenic, MinFS, MemFS, ThinFS (FAT u jeziku Go) i Blobfs datoteku sustave, kao i FVM particije. Za razvoj aplikacija omogućena je podrška za C / C ++, Dart, Rust je također dopušten u komponentama sustava, u Go mrežnom stogu i u sustavu za izgradnju jezika Python.
Proces pokretanja koristi upravitelja sustava, koji uključuje appmgr za stvaranje početnog softverskog okruženja, sysmgr za izgradnju okruženja za pokretanje i basemgr za postavljanje korisničkog okruženja i organiziranje prijave. Kako bi se osigurala sigurnost, predlaže se napredni sustav izolacije sandboxa u kojem novi procesi nemaju pristup objektima kernela, ne mogu alocirati memoriju i ne mogu pokretati kod, a za pristup resursima koristi se sustav imenskog prostora koji određuje dostupne dozvole. Platforma pruža okvir za stvaranje komponenti, a to su programi koji se pokreću u svom sandboxu koji može komunicirati s drugim komponentama putem IPC-a.
Izvor: opennet.ru