Systemd? Вы еще ничего не видели!


Леннарт Поеттеринг вызвал большой переполох в мире Linux своим системным подходом к настройке. Теперь он предложил новый способ создания дистрибутивов и передачи вашего кода в руки пользователей, и все это основано на Btrfs.

Схема, предложенная Poettering и разработчиками ядра systemd, стремится решить ряд проблем. Основная жалоба заключается в том, что дистрибутивы Linux не передают приложения в руки конечных пользователей каким-либо эффективным способом. Каждый дистрибутив использует свою собственную систему пакетов для всех пользователей, чтобы настроить ОС, установив то, что они хотят использовать. Это означает, что если вы разрабатываете новое приложение, вам придется подождать, пока дистрибутив не соберет для вас упаковку. Кроме того, пакеты страдают от ада зависимостей, что усложняет жизнь потенциальному пользователю.

Решение Леннарта состоит в использовании функций файловой системы B-tree. На данный момент Btrfs является частью ядра и обычно считается продвинутой файловой системой, хотя ее мало кто использует. Первоначально он был изобретен в Sun / Oracle и в настоящее время поддерживается Facebook.

Идея состоит в том, чтобы использовать интервалы между именами в файловой системе, чтобы позволить программистам предоставлять свои приложения в виде загружаемых подтомов. Идея состоит в том, чтобы иметь такую схему именования, как:

app: : <время выполнения>: <архитектура>: <версия>

для пакетов приложений. Например:

iapp: org.libreoffice.LibreOffice: GNOME3_20: x86_64: 133

Аналогичные схемы именования также используются для ряда других стандартных частей ОС: root: для базовой ОС, usr: для файловой системы пользователя, home: для домашнего каталога конкретного пользователя и т. Д. На данном томе может быть несколько вложенных томов root: и usr: и множество вложенных томов app :.

Система загружается с одного из корневых подтомов, затем монтирует соответствующий подтом usr :. Когда пользователь входит в соответствующий дом: подключается подтом. Когда приложение запускается, соответствующий вложенный том app: монтируется в / opt / .

Итак, если вы хотите распространять новое приложение, все, что вам нужно сделать, это создать соответствующий подтом Btrfs и сделать его доступным для пользователей.

Одна и та же схема может использоваться для загрузки различных конфигураций с одного и того же устройства хранения. Это просто сводится к подъему и смешиванию подтомов. Если вы хотите сохранить разные среды разработки, разные операционные системы, даже тогда вы можете изменить все в кратчайшие сроки.

Если вы беспокоитесь о том, чтобы хранить так много копий одного и того же кода и данных на одном томе, не беспокойтесь, потому что Btrfs предназначен для дедупликации. Его основная философия реализации — это копирование при записи, при котором новые физические копии создаются только в том случае, если есть разница.

Это еще не все!

Используя средство отправки и получения Btrfs, вы можете вычислить разницу между двумя версиями файловой системы. Это можно использовать для создания двоичной дельты, то есть разницы между версией 1 и версией 2 вашего приложения. Затем вы можете отправить его на компьютер пользователя, и у него будет установлена новая версия.

Процитируем запись в блоге, в которой описывается эта идея:

«Вот как мы представляем себе установку и обновление операционных систем, приложений, сред выполнения, фреймворков. Во время установки мы просто десериализуем начальную дельту отправки и получения в нашем томе btrfs, а позже, когда будет выпущена новая версия, мы просто добавить несколько новых битов, добавив другую дельту отправки и получения под новым именем подтома. И мы делаем то же самое для самой ОС, для среды выполнения, фреймворка или приложения. никаких технических различий больше нет. Основная операция по установке приложений, среды выполнения, фреймворков, операционных систем поставщиков, а также операция по их обновлению выполняется одинаково для всех «.

Чтобы узнать обо всех других чуть более мелких преимуществах, вам нужно будет прочитать весь пост в блоге. Он также будет представлен на октябрьском LinuxCon Europe.

Разработчики systemd начали работу над этой идеей и надеются, что к ним присоединятся и другие. Конечно, вероятно, будет реакция со стороны пользователей, которым нравится Linux таким, какой он есть. Однако с точки зрения пользователя старая добрая файловая система Linux останется относительно неизменной. Что изменится, так это то, как программисты распространяют свои приложения и обновления приложений, а также то, как мы можем перенастроить используемую нами систему.

Однако это, вероятно, не облегчит развитие этой схемы. Принимая его, сообщество Linux в основном принимает Btrfs в качестве стандартной файловой системы, и этого не произойдет без большой турбулентности. Некоторые видят, что это переносит Linux в 21 век, а другие видят в этом изменение базовой философии Linux.

Действительно интересные времена.


Добавить комментарий