OC Fuchsia переходит в стадию тестирования на сотрудниках Google

OC Fuchsia переходит в стадию тестирования на сотрудниках Google

2.03.20
Компания Google внесла изменения, свидетельствующие о переходе операционной системы Fuchsia на стадию финального внутреннего тестировния "dogfooding", подразумевающую использование продукта в повседневной деятельности сотрудников, перед его доведением до обычных пользователей. На указанной стадии продукт находится в состоянии, уже прошедшем основное тестирование специальными командами оценки качества. Перед тем как поставлять продукт широким массам дополнительно проводят итоговую проверку на своих сотрудниках, не вовлечённых в разработку.

В клиенте к системе управления доставкой обновлений Omaha, в которой тестируются выпуски Chrome и Chrome OS, добавлен компонент fuchsia.cobalt.SystemDataUpdater и предложена инструкция по переводу устройств на новую ветку "dogfood-release" при помощи утилиты fx (аналог adb для Fuchsia). В систему непрерывной интеграции добавлены сборки загрузчика для ветки dogfood, а в платформу Fuchsia включены отдельные метрики для оценки результатов тестирования.

В комментариях к изменениям в Fuchsia упомянуты две ссылки для доставки обновлений fuchsia-updates.googleusercontent.com и arm64.dogfood-release.astro.fuchsia.com, во второй ссылке Astro является кодовым именем умного экрана Google Nest Hub, который, судя по всему, используется сотрудниками Google в качестве прототипа для тестирования Fuchsia вместо штатной прошивки Cast Platform. Интерфейс Nest Hub построен на базе приложения Dragonglass, использующего фреймворк Flutter, который также поддерживается в Fuchsia.

Напомним, что в рамках проекта Fuchsia компанией Google развивается универсальная операционная система, способная работать на любых типах устройств, от рабочих станций и смартфонов до встраиваемой и потребительской техники. Разработка ведётся с учётом опыта создания платформы 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.

0_1583135045.png

В процессе загрузки используется системный менеджер, включающий appmgr для создания начального программного окружения, sysmgr для формирования загрузочного окружения и basemgr для настройки пользовательского окружения и организации входа в систему. Для совместимости с Linux в Fuchsia предлагается библиотека Machina, которая позволяет запускать Linux-программы в специальной изолированной виртуальной машине, формируемой при помощи гипервизора на базе ядра Zircon и спецификаций Virtio, по аналогии с тем, как организован запуск Linux-приложений в Chrome OS.

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

 
Назад
Сверху Снизу