Разработчики ПО предлагают новую структуру Linux-дистрибутивов

2/09/2014 10:57

Леннарт Поттеринг (Lennart Poettering) опубликовал заметку, в которой подробно рассказал об идеях на будущее по переработке организации построения дистрибутивов Linux. Главной целью предложенных изменений является упрощение формирования пакетов с приложениями или окружениями операционной системы и обеспечение возможности их установки независимо от применяемого дистрибутива. Отмечается, что в настоящее время новые веяния в построении дистрибутивов уже развиваются в таких системах, как Ubuntu Apps, Docker, ChromeOS и CoreOS, но каждая из этих систем узко специализирована и не подходит для универсального применения. Например, Ubuntu Apps рассчитан только на распространение приложений для рабочего стола, Docker жестко завязан на изолированных контейнерах, ChromeOS и CoreOS оперируют только системными образами. При этом ключевой идеей всех этих систем является предоставление готовых окружений, заменяемых целиком и не зависящих от базового программного окружения. Благодаря использованию подразделов (sub-volume) Btrfs и предоставляемых ядром Linux изолированных пространств имён, разработчики Systemd намереваются подготовить унифицированное решение, подходящее для установки и обновления как целых операционных систем и изолированных контейнеров, так и для отдельных приложений и программных интерфейсов, упакованных в самодостаточные пакеты. Также предлагается реализовать возможность полной верификации всех компонентов системы по цифровым подписям, включая конечные приложения и образы преднастроенных изолированных контейнеров. Осуществление установки с использованием снапшотов, с сохранением прошлого состояния программы или ОС, обеспечит атомарное применение изменений и предоставит пользователю возможность возврата к прошлой конфигурации. Процесс установки по сути сведётся к репликации готового образа, который будет оставаться неизменен во время работы системы. Пространства имён и подразделы Btrfs помогут организовать сосуществование нескольких идентичных веток в ФС. Например, можно установить несколько подразделов /root и /usr с начинкой разных дистрибутивов, между которыми можно будет переключаться. Появится возможность подключать разные подразделы с частями ФС для разных пользователей и приложений. Кроме того, будет обеспечена возможность установки разных версий runtime-компонентов/фреймворков/библиотек для их подключения в привязке к приложению, производитель которого определил данные версии в числе зависимостей. Runtime-компоненты и библиотеки предлагается оформлять в виде урезанного образа раздела /usr, содержащего только файлы, необходимые для работы заданного приложения. Приложения предлагается размещать в области /opt/ (например, /opt/org.libreoffice.LibreOffice), при этом экземпляр программы будет размещён в подразделе, привязанном к runtime-компонентам и версии (например, app:org.libreoffice.LibreOffice:GNOME3_20:x86_64:133). Размещение обособленного образа программы в отдельном подразделе позволит организовать доступ к данному подразделу из разных дистрибутивов, установленных на текущем ПК. Для обеспечения доступа к пользовательским данным из окружения разных дистрибутивов и приложений, также предлагается размещать содержимое home-директории пользователя в отдельном подразделе Btrfs. Таким образом, итоговое рабочее окружение формируется как набор подразделов Btrfs, которые выступают в роли блоков для формирования ОС. Для предотвращения излишнего разрастания дискового пространства в результате размещения разных копий библиотек и компонентов дистрибутивов будут использованы средства Btrfs по дедупликации данных, которые обеспечат физическое хранение только одной копии повторяющихся данных. Для установки и обновления образов, как системы, так и программ, предлагается применять единые методы, основанные на атомарной замене снапшота с активным образом. В случае выявления проблем, останется возможность быстро откатиться на снапшот с прошлым состоянием системы.
Источник