Google развивает новую операционную систему Fuchsia

Компания Google опубликовала наработки по созданию новой операционной системы Fuchsia, для которой развивается два ядра: Magenta и LK. Ядра распространяются под лицензией MIT, а системные компоненты под лицензией Apache 2.0. Код написан на языке Си. В качестве поддерживаемых архитектур заявлены ARM, ARM64 и x86–64. Минимальное системное окружение уже может быть запущено в QEMU. В скором времени ожидается появление сборки для Raspberry Pi 3.

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

Официального анонса нового проекта, поясняющего цели разработки, пока не опубликовано — в настоящий момент Google просто разместил код в репозиториях. Документация к проекту минимальна, а общая информация оформлена в виде загадки «Pink + Purple == Fuchsia (a new Operating System)». При этом, в команде Fuchsia отмечены некоторые крупные разработчики, принимавшие участие в создании проектов NewOS, BeOS, Danger, iOS и webOS, включая Трейвиса Гайселбрета (Travis Geiselbrecht) и Брайана Свитлэнда (Brian Swetland), инженеров, развивавших ядро BeOS. По словам Брайана в Google изначально было принято решение по разработке Fuchsia как открытого проекта, поэтому доступ к коду открыт на начальной стадии развития.

Судя по опубликованному коду для разработки интерфейса приложений предлагается использовать фреймворк Flutter, написанный на языке программирования Dart (в состав Fuchsia входит обвязка для запуска приложений на Dart). Для отрисовки задействован компонент Escher, использующий OpenGL или Vulkan и поддерживающий расширенные визуальные эффекты, такие как объёмные мягкие тени, отражение цветов и рассеивание света. Для разработчиков системных приложений предлагается фреймворк Mojo.

©  OpenNet