Google ввёл в строй сайт для разработчиков, посвящённый ОС Fuchsia
Компания Google запустила сайт fuchsia.dev с информацией о развиваемой в недрах компании операционной системе Fuchsia. На сайте опубликована подборка имеющейся документации и ссылки на исходные тексты компонентов ОС, включая микроядро Zircon. Документация охватывает вопросы разработки Fuchsia и приложений для данной ОС, сборки системы из исходных текстов, описания основных составных частей и фреймворков.
Напомним, что в рамках проекта Fuchsia развивается универсальная операционная система, способная работать на любых типах устройств, от рабочих станций и смартфонов до встраиваемой и потребительской техники. Разработка ведётся с учётом опыта создания платформы 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-изоляции, в которой новые процессы не имеют доступа к объектам ядра, не могут выделять память и не могут запускать код, а для доступа к ресурсам применяется система пространств имён, определяющая доступные полномочия.
© OpenNet