В репозиториях микроядерной операционной системы Fuchsia, c августа прошлого года развиваемой (https://www.opennet.ru/opennews/art.shtml?num=44952) компанией Google в форме открытого проекта (https://github.com/fuchsia-mirror/), появилась (http://www.hotfixit.net/single-post/2017/05/03/How-to-build-...) реализация пользовательской оболочки Armadillo (https://github.com/fuchsia-mirror/sysui). Оболочка написана на языке Dart с использованием фреймворка Flutter (https://flutter.io/), который также позволяет создавать мобильные приложения для iOS и Android. Отрисовка осуществляется при помощи компонента Escher (https://fuchsia.googlesource.com/escher/), работающего через графический API Vulkan.Пользовательское окружение разделено на два компонента: Armadillo (https://github.com/fuchsia-mirror/sysui/tree/master/armadillo) и Armadillo User Shell (https://github.com/fuchsia-mirror/sysui/tree/master/armadill...). Armadillo является переносимым приложением, которое может запустить на любых платформах, поддерживаемых во Flutter, в том числе в Android и iOS (для android подготовлена демонстрационная сборка в форме APK-файла (https://www.dropbox.com/s/jdc3j4hjxpi1a1n/Armadillo.apk), позволяющая протестировать интерфейс без установки Fuchsia). Armadillo User Shell является обвязкой над приложением Armadillo, предоставляющей средства для обеспечения взаимодействия с сервисами Fuchsia через интерфейсы FIDL и организации работы окружения пользователя поверх системных компонентов ОС Fuchsia.
В настоящее время доступен прототип Armadillo, предоставляющий только набор обособленных демонстрационных шаблонов, позволяющих оценить те или иные подходы к построению интерфейса, без привязки к конкретной функциональности. В набор входит (https://arstechnica.com/gadgets/2017/05/googles-fuchsia-smar.../) реализация домашнего экрана, экранной клавиатуры и оконного менеджера, предоставляющего средства для компоновки окон в мозаичном и многооконном режимах, а также в форме вкладок и сменяющих друг друга карт.
Для оценки также предложен интерфейс "Story" для доступа к списку недавно используемых приложений, расширенному дополнительными возможностями группировки и организации совместной работы одновременно с несколькими приложениями. Дополнительно доступны блок быстрых настроек и система контекстных подсказок в стиле Google Now, которая также может применяться для организации запуска приложений в зависимости от решаемой задачи.
Напомним, что для Fuchsia развивается два ядра: Magenta (https://github.com/fuchsia-mirror/magenta/blob/master/docs/i...) и LK (https://github.com/fuchsia-mirror/magenta/blob/master/docs/l...). Magenta является (https://fuchsia.googlesource.com/magenta/+/master/docs/mg_an...) полнофункциональным ядром, ориентированным на применение на достаточно мощных устройствах, таких как смартфоны и персональные компьютеры. Ядро LK, ранее развивавшееся в рамках проекта littlekernel (https://github.com/littlekernel/lk), предназначено для систем с ограниченным размером ОЗУ и небольшой производительностью процессора, которые обычно применяются во встраиваемых решениях. LK может рассматриваться как открытая альтернатива таким системам, как FreeRTOS (http://www.freertos.org/) и ThreadX. Ядро Magenta оформлено в виде надстройки над LK с реализацией дополнительных концепций. Например, в Magenta имеется поддержка процессов, а в LK нет, но реализация процессов в Magenta вовлекает компоненты LK для работы с памятью и потоками. В Magenta также поддерживаются такие отсутствующие в LK возможности, как уровень пользователя, система обработки объектов и модель обеспечения безопасности на основе capability.
URL: https://arstechnica.com/gadgets/2017/05/googles-fuchsia-smar.../
Новость: http://www.opennet.ru/opennews/art.shtml?num=46517