27.09.2020

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


Компания 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 и учитывает недостатки в области масштабирования и обеспечения безопасности.

В зависимости от решаемых задач в Fuchsia предлагаются два ядра, а также ряд прослоек:

  • LK предоставляет ядро для систем с ограниченным размером ОЗУ и небольшой производительностью процессора, которые обычно применяются во встраиваемых решениях. Ядро LK построено на наработках проекта littlekernel и может рассматриваться как открытая альтернатива таким системам, как FreeRTOS и ThreadX.
  • Zircon является полнофункциональным микроядром, ориентированным на применение на достаточно мощных устройствах, таких как смартфоны и персональные компьютеры. Ядро Zircon оформлено в виде надстройки над LK с реализацией дополнительных концепций. Например, в Zircon имеется поддержка процессов, а в LK нет, но реализация процессов в Zircon вовлекает компоненты LK для работы с памятью и потоками. В Zircon также поддерживаются такие отсутствующие в LK возможности, как уровень пользователя, система обработки объектов и модель обеспечения безопасности на основе capability.
  • Слой Garnet реализован поверх Zircon и отвечает за драйверы устройств;
  • Слой Topaz предоставляет интерфейс для создания модулей-расширений.

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

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

Источник: https://www.opennet.ru/opennews/art.shtml?num=52464

Добавить комментарий