Google портирует Chrome для ОС Fuchsia

Компания Google ведёт работу по предоставлению полных сборок браузера Chrome для ОС Fuchsia. В Fuchsia уже предоставляется браузерный движок на основе кодовой базы Chromium для выполнения обособленный web-приложений, но браузер как отдельный полноценный продукт для Fuchsia был недоступен, а сама платформа в первую очередь развивалась для IoT и потребительских устройств, таких как Nest Hub. Последнее время ситуация изменилась и началось развитие возможностей Fuchsia, нацеленных на использование как десктоп-платформы.

В том числе развивается набор изменений, делающих возможным поставку полноценного Chrome в Fuchsia. Начальную сборку Chrome для Fuchsia планируют довести до готовности к выпуску Chrome 94, намеченному на 21 сентября. Работа по портированию ведётся постепенно — вначале обеспечивается возможность сборки урезанной версии, в которой некоторые возможности заменены на заглушки, которые по мере портирования заменяются на рабочие реализации кода, учитывающего специфику Fuchsia. Например, ведётся адаптация для Fuchsia системного лотка, загрузки файлов, функции Click To Call, работы с извлекаемыми носителями, синхронизации, пользовательских каталогов, PWA-приложений, вывода информации о памяти и нагрузке на CPU и импорта настроек из других браузеров.

Напомним, что ОС Fuchsia развивается компаний Google c 2016 года с учётом недостаткой в области масштабирования и обеспечения безопасности, имеющихся в платформе Android. Система базируется на микроядре Zircon, основанном на наработках проекта LK, расширенного для применения на различных классах устройств, включая смартфоны и персональные компьютеры. Zircon расширяет LK поддержкой процессов и разделяемых библиотек, уровнем пользователя, системой обработки объектов и моделью обеспечения безопасности на основе capability. Драйверы реализуются в виде работающих в пространстве пользователя динамических библиотек, загружаемых процессом devhost и управляемых менеджером устройств (devmg, Device Manager).

Для Fuchsia подготовлен собственный графический интерфейс, написанный на языке Dart с использованием фреймворка Flutter. Проектом также развиваются фреймворк для построения интерфейсов пользователя Peridot, пакетный менеджер Fargo, стандартная библиотека libc, система рендеринга Escher, Vulkan-драйвер Magma, композитный менеджер Scenic, файловые системы MinFS, MemFS, ThinFS (FAT на языке Go) и Blobfs, а также менеджер разделов FVM. Для разработки приложений предоставляется поддержка языков C/C++, Dart, в системных компонентах также допускается использование Rust, в сетевом стеке Go, а в системе сборки языка Python.

Google портирует Chrome для ОС Fuchsia

В процессе загрузки используется системный менеджер, включающий appmgr для создания начального программного окружения, sysmgr для формирования загрузочного окружения и basemgr для настройки пользовательского окружения и организации входа в систему. Для обеспечения безопасности предлагается продвинутая система sandbox-изоляции, в которой новые процессы не имеют доступа к объектам ядра, не могут выделять память и не могут запускать код, а для доступа к ресурсам применяется система пространств имён, определяющая доступные полномочия. Платформа предоставляет фреймворк для создания компонентов, представляющих собой программы, запускаемые в своём sandbox, которые могут взаимодействовать с другими компонентами через IPC.

Источник: opennet.ru