Компания 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 ha un'interfaccia grafica dedicata, sviluppata in Dart utilizzando il framework Flutter. Il progetto include anche il framework Peridot per la creazione dell'interfaccia utente, il gestore pacchetti Fargo, la libreria standard libc, il sistema di rendering Escher, il driver Vulkan Magma, il gestore composito Scenic, le file system MinFS, MemFS, ThinFS (FAT in Go) e Blobfs, oltre al gestore di partizioni FVM. Per lo sviluppo di applicazioni, sono supportati i linguaggi C/C++, Dart e, per i componenti di sistema, è consentito l'uso di Rust, mentre nel stack di rete è inclusa l'implementazione in Go e nel sistema di build è usato Python.

Durante il processo di avvio viene utilizzato un gestore di sistema, che comprende appmgr per la creazione dell'ambiente di esecuzione iniziale, sysmgr per la formazione dell'ambiente di avvio e basemgr per la configurazione dell'ambiente utente e l'organizzazione dell'accesso al sistema. Per garantire la sicurezza, è proposta un avanzata sistema di isolamento sandbox, in cui nuovi processi non hanno accesso agli oggetti del kernel, non possono allocare memoria e non possono eseguire codice; l'accesso alle risorse viene gestito attraverso un sistema di spazi dei nomi che definisce i diritti disponibili. La piattaforma offre un framework per la creazione di componenti, che sono programmi eseguiti nel proprio sandbox, capaci di interagire con altri componenti tramite IPC.
Fonte: opennet.ru
