В репозиториях микроядерной операционной системы Fuchsia, c августа прошлого года развиваемой компанией Google в форме открытого проекта, появилась реализация пользовательской оболочки Armadillo. Оболочка написана на языке Dart с использованием фреймворка Flutter, который также позволяет создавать мобильные приложения для iOS и Android. Отрисовка осуществляется при помощи компонента Escher, работающего через графический API Vulkan.

Пользовательское окружение разделено на два компонента: Armadillo и Armadillo User Shell. Armadillo является переносимым приложением, которое может запустить на любых платформах, поддерживаемых во Flutter, в том числе в Android и iOS (для android подготовлена демонстрационная сборка в форме APK-файла, позволяющая протестировать интерфейс без установки Fuchsia). Armadillo User Shell является обвязкой над приложением Armadillo, предоставляющей средства для обеспечения взаимодействия с сервисами Fuchsia через интерфейсы FIDL и организации работы окружения пользователя поверх системных компонентов ОС Fuchsia.

В настоящее время доступен прототип Armadillo, предоставляющий только набор обособленных демонстрационных шаблонов, позволяющих оценить те или иные подходы к построению интерфейса, без привязки к конкретной функциональности. В набор входит реализация домашнего экрана, экранной клавиатуры и оконного менеджера, предоставляющего средства для компоновки окон в мозаичном и многооконном режимах, а также в форме вкладок и сменяющих друг друга карт.

Для оценки также предложен интерфейс "Story" для доступа к списку недавно используемых приложений, расширенному дополнительными возможностями группировки и организации совместной работы одновременно с несколькими приложениями. Дополнительно доступны блок быстрых настроек и система контекстных подсказок в стиле Google Now, которая также может применяться для организации запуска приложений в зависимости от решаемой задачи.

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

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