Дистрибутив Chimera Linux, сочетающий ядро Linux с окружением FreeBSD

Даниэль Колеса (Daniel Kolesa) из компании Igalia, принимающий участие в разработке проектов Void Linux, WebKit и Enlightenment, развивает новый дистрибутив Chimera Linux. Проект используется ядро Linux, но вместо инструментария GNU формирует окружение пользователя на основе начинки базовой системы FreeBSD, а для сборки использует LLVM. Дистрибутив изначально развивается как кроссплатформенный и поддерживает архитектуры x86_64, ppc64le, aarch64, riscv64 и ppc64.

В качестве цели проекта называется желание предоставить Linux-дистрибутив с альтернативным инструментарием и учесть при создании нового дистрибутива опыт разработки Void Linux. По мнению автора проекта пользовательские компоненты FreeBSD менее усложнены и больше подходят для легковесных и компактных систем. Своё влияние также оказала поставка под разрешительной лицензией BSD. Собственные наработки Chimera Linux также распространяются под лицензией BSD.

Помимо пользовательского окружения FreeBSD в дистрибутиве также задействованы пакеты GNU Make, util-linux, udev и pam. Система инициализации построена на основе переносимого системного менеджера dinit, доступного для Linux и BSD-систем. Вместо glibc применяется стандартная Си-библиотека musl.

Для установки дополнительных программ предлагаются как бинарные пакеты, так собственная система сборки из исходных текстов — cports, написанная на Python. Сборочное окружение запускается в отдельном непривилегированном контейнере, создаваемом при помощи инструментария bubblewrap.
Для управления бинарными пакетами задействован пакетный менеджер APK (Alpine Package Keeper, apk-tools) из Alpine Linux (изначально планировалось использовать pkg из FreeBSD, но возникли большие проблемы с его адаптацией).

Проект пока находится на начальной стадии развития — несколько дней назад удалось обеспечить загрузку с возможностью входа пользователя в консольном режиме. Предоставляется инструментарий для бутстрэппинга (bootstrap), позволяющий пересобрать дистрибутив из собственного окружения или из окружения на базе любого другого дистрибутива Linux. Процесс сборки включает три стадии: сборка компонентов для формирования контейнера со сборочным окружением, собственная пересборка при помощи подготовленного контейнера и ещё одна собственная пересборка но уже на основе окружения, созданного на второй стадии (дублирование необходимо для исключения влияния исходной хост-системы на сборочный процесс).

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