Дорогие читатели, если вы не очень следите за миром графических оболочек для линукса, из которых самой лучшей является, конечно, KDE - вот вам одно из последних событий. Хотя новость об этом уже была, я берусь превзойти предыдущего докладчика.

В духе веяний времени, KDE собирается выпустить неизменяемый (immutable) дистрибутив, основанный на archlinux. Что, на мой взгляд, в очередной раз подтверждает, что KDE пережила многие другие графические оболочки не просто так. Вначале я, конечно, отнёсся к идее скептически и удивился, что её одобрили - потому что, с виду, она чрезвычайно наивная.

Но потом до меня дошло, в чём тут может быть юмор. В общем, судя по всему, разработчики KDE забьют очередную шайбу в ворота конкурентов - GNOME с их GNOME OS. Банан для названия выбран очень удачно: я помню, как какой-то художник выставил банан в качестве инсталяции современного искусства, а потом кто-то купил его за большие деньги и сразу съел. В этой статье вы найдёте "вредные советы" о том, как сделать свой дистрибутив, которые на практике могут оказаться очень даже полезными.

UPDATE:

Один добрый человек указал в комментариях, что этот banana linux очень похож на SteamOS. Что называется - "я как-то не подумал об этом". Ну конечно - чтобы поддерживать игры Steam из коробки! Вот мы их и разгадали. Ну что же - "опыт ты не сорвал, а только подтвердил". Читая дальше, вы узнаете ход мыслей человека, которому не пришёл в голову данный факт.

* * *

О том, как я узнал об этом banana linux, не спрашивайте. Иногда я захожу на planet.kde.org, чтобы развеяться и с целью медитации - посмотреть, о чём пишут люди, напрочь оторванные от мира насущных проблем. Что касается KDE, она уже стоит у меня около года. Перед этим я пользовался GNOME, но когда оказалось, что для развертывания рабочего проекта нужно запустить больше докер-контейнеров, чем на проекте было разработчиков, я задумался о том, чтобы пересесть на что-то более легковесное. Кстати, у меня осталась старая система с GNOME на другом разделе, и я иногда в неё загружаюсь - разница в производительности между KDE и GNOME очень и очень ощутимая. Мне нравится проект KDE, который развивается "не из-за, а вопреки" обстоятельствам. По-моему, отрыв от GNOME в производительности увеличился как раз в последние годы, когда все основные дистрибутивы давно выбрали GNOME в качестве основного.

Новый проект KDE, banana linux, всё-таки отличается от их основного рода деятельности. Но, поскольку полёт фантазии в нём, похоже, присутствует, он тоже должен быть обречён на успех. Коротко о его технической реализации: предполагается поставлять неизменяемый образ системы. Возможность ставить какие-то пакеты из репозиториев archlinux не предполагается.

Вот слайды из презентации:

Я посмотрел эту презентацию. В ней докладчик говорит, что - вот, у нас есть KDE Neon, который нам мало что приносит, кроме проблем. Он стал довольно сильно расходиться с ubuntu lts, на котором он основан, и от этого больше вреда, чем пользы. Это - отрицательный момент.

С другой стороны, говорит докладчик, так получилось, что у нас появились hardware vendors, которые с нами сотрудничают - интернет-магазины ноутбуков, которые в качестве одного из вариантов ставят на них линукс с KDE - KDE Neon. Это - положительный момент.

Задача в том, чтобы убрать отрицательный момент и оставить положительный. Как говорит докладчик, "нам нужно что-то, на чём мы можем написать своё имя (KDE), но чтобы ничего, кроме своих пакетов, нам поддерживать было не нужно". И они нашли оригинальное решение.

Наивный человек мог бы предложить перейти на какой-нибудь более подходящий дистрибутив в качестве базового - например, archlinux - и назвать его "KDE Linux". В конце концов, есть куча дериватив - можно сделать ещё одну. Но, немного подумав, он убедится, что этот вариант не годится: все правки будут быстро попадать в апстрим - arсhlinux - учитывая, что эти правки будут от самих авторов - KDE. От такого дистрибутива не останется ничего, кроме названия, и возникнет вопрос, зачем он нужен. Полноценной же деривативой они становиться не собираются - есть идея лучше.

Конечно же, нужно сделать immutable дистрибутив - это совсем другое дело. Его нельзя напрямую сравнивать с archlinux - он другой. Можно начать с того, что разогнать его на 10-20% - что, вообще, не очень сложно: можно скомпилировать его под более новую архитектуру процессора или, скажем, применить для пакетов profile guided optimization.

Можно использовать в нём read-only файловую систему, а такая как раз есть - EROFS. Она процентов на 20 быстрее, чем те, которые read-write. Хотя, как видно на их слайдах, они планируют использовать btrfs. Вот это непонятно: зачем btrfs? Её используют практичные администраторы для своих инфраструктурных задач. Но banana linux не про практичность и ничего общего с ней не имеет. А EROFS даёт ощутимое ускорение - клиенты будут довольны.

Конечно, с EROFS появляются дополнительные вопросы, о которых стоит подумать: например, небольшой апдейт с багофиксами и обновлениями безопасности плохо укладывается в логику обновления всего образа системы. Но можно оформить эти обновления в виде другого образа и использовать overlay с предыдущим. Не вижу тут ничего нерешаемого.

Остаётся, конечно, "небольшая проблема": такой линукс, мягко говоря, не очень годится для продвинутых пользователей, но и ей можно найти решение. Сделаем для них кнопку - перейти на обычный archlinux. Теперь снова можете ставить свои пакеты, зато он более тормознутый - ну, вы сами выбрали. И берите обратно свою ext4, живите с ней!

Как видите, всё складывается. Вопрос: кто от этого проигрывает? Получается, что никто: arch linux и пользователи получают более качественные пакеты KDE (а KDE очень популярно в этом сообществе), KDE получает контракты с вендорами и яркий рекламный дистрибутив. KDE может спокойно улучшать поддержку разного железа и развивать свою чудесную графическую оболочку.

На этом можно было бы и закончить, но дело в том, что юмор можно продолжить: можно войти в роль и действительно начать делать immutable дистрибутив на базе arch (здесь ключевое слово - начать). Я имею в виду, полноценный immutable дистрибутив, где можно ставить любые пакеты.

* * *

Здесь стоит сказать пару слов о том, как обычно устроены такие дистрибутивы. Их делают stateless - это значит, не важно, как долго и каким путём пользователь собирал свой дистрибутив, важны лишь пакеты, которые в нём содержатся на данный момент. Когда от перемены мест слагаемых сумма не меняется, и это сделано by design - то есть, какому-то конкретному пакету не разрешается делать всё, что он захочет (и иногда у него и нет такой возможности, потому что файловая система read-only).

Обычные дистрибутивы называют императивными: установи мне этот пакет, чтобы он заработал. Или, скажем, обнови все пакеты, если говорим про archlinux.

Касалось бы, главное в бинарном пакете - это файлы, которые он содержит, и что для установки пакета достаточно просто скопировать их в /usr. Но нет - некоторые пакеты определяют внутри себя systemd сервисы, которые должны запускаться при старте, некоторые требуют, чтобы были созданы определённые пользователи. Также, пакеты вносят свой вклад в кэши - иконок, ярлыков, шрифтов и прочего. В императивных дистрибутивах эти действия выполняются при установке и обновлении пакетов. В случае stateless дистрибутива - на этапе создания всего образа, а также вносят свой вклад в общий конфиг.

Также, есть отличие при работе с конфигами в /etc. Традиционно, линуксовые пакеты кладут свои конфиги в /etc, где их потом редактирует пользователь. В stateless дистрибутивах, дефолтные и пользовательские конфиги нужно разделять - дефолтные обычно идут в /usr, а пользовательские - в /etc.

При этом, в archlinux есть своя специфика - в нём пользователь регулярно делает full system update, который обновляет все пакеты. Если делать его где-то раз в 2 недели, будет приходить апдейтов на гигабайт или даже больше. Кстати, тот факт, что апдейты в arch достаточно тяжеловесные, делает идею иммутабельного дистрибутива в какой-то мере разумной: если вес апдейтов сравним с весом всей системы, почему не пересоздавать при апдейтах весь раздел целиком?

Но это всё - общие соображения, вернёмся к нашим баранам. Для превращения arch в immutable дистрибутив потребуется избавить все пакеты от побочных действий при установке и обновлении. Да, пакеты нужно будет менять, но не все пакеты менять одинаково сложно - для некоторых потребуется минимальная адаптация.

И так уж получилось, что разного рода приложения, консольные и графические - это как раз те, которым всего минимальная адаптация и нужна. Так что, ничего не мешает разработчикам banana linux составить список пакетов, которые "нужны пользователю в первую очередь", и добавить возможность их использования в своём дистрибутиве. Их можно ставить на read-only раздел и они будут автоматически обновляться! Эти пакеты можно опубликовать на packages.banana.org, и их число может неуклонно расти!

Вообще, я не вижу каких-то принципиальных проблем, чтобы и весь arch сделать иммутабельным, если очень хочется. Объективно, конечно, нужды в этом нет никакой. Тем более, что хороший иммутабельный дистрибутив уже есть - это NixOS. Но с ним есть та же проблема, что и с тем, чтобы использовать arch в чистом виде - нельзя наклеить на него лейбл KDE.

В общем, не уверен, что у разработчиков KDE именно такие планы, как я описал в этой статье, но думаю, что основное направление мысли совпадает. Думаю попросить deepseek перевести на английский и отослать статью разработчикам KDE. Потому что, например, использование btrfs вместо erofs настораживает - не перепутали бы чего.

Напоследок - опрос.

Комментарии (16)


  1. DjUmnik
    27.09.2025 11:21

    если вы не очень следите за миром графических оболочек для линукса, из которых самой лучшей является, конечно, KDE


    1. glebnnykAC
      27.09.2025 11:21

      Согласен,для меня гном с гном расширениями-это все.Не берусь говорить за всех,но мне как начинающему в Линукс пока этого хватает.Что можете посоветовать после ( какой из оконных менеджеров?)


      1. JBFW
        27.09.2025 11:21

        Так это смотря что вам от оконного менеджера нужно...
        А то может поиграетесь со всякими свистелками, и окажется, что ничего кроме десятка виртуальных экранов и кучи окошек на них - и не нужно...


      1. AndrDD
        27.09.2025 11:21

        Niri мне нравится, как по мне практичнее хайпового hyprland


    1. Vilos
      27.09.2025 11:21

      тоже удивился над фразой...и даже поднял левую бровь...


  1. V1tol
    27.09.2025 11:21

    Вообще на весь этот текст можно ответить одной фразой - SteamOS на Steam Deck. Базовая система это замороженный арч, файловая система btrfs (даже фичу для A\B разделов Valve заливали в апстрим), и десктоп режим KDE. Можно сказать, схема давно обкатана. Себе KDE упрощают жизнь, а Valve будут уверены, что на арче это будет работать - одни плюсы без минусов.


    1. abetkin Автор
      27.09.2025 11:21

      SteamOS не десктопный дистрибутив. И у него файловая система erofs, а не btrfs, как вы пишете


      1. savagebk
        27.09.2025 11:21

        А каким образом производится запись пользовательских данных в этой файловой системе?


        1. abetkin Автор
          27.09.2025 11:21

          никаким, она только для чтения


          1. savagebk
            27.09.2025 11:21

            Так а куда в SteamOS сохраняются пользовательские данные?


            1. abetkin Автор
              27.09.2025 11:21

              в домашнюю директорию, там другая файловая система


              1. V1tol
                27.09.2025 11:21

                А команда sudo steamos-readonly disable тогда что делает? Я вот не поленился и посмотрел, что эта команда делает прямо в официальном рекавери образе (у меня нет стимдека).

                Сюрприз-сюрприз, команда всего-лишь меняет флаг "только для чтения" на btrfs разделе. Прогнал поиском по содержимому - btrfs упоминается в сотне различных конфигов и скриптов, erofs нигде, кроме строк в линуксовых бинарниках. Выходит, что дипсик, как и полагается нейронке, оказался не прав?

                Бонусом, скриншот файловых систем рекавери образа. Полагаю, скрипты дописывают разделы B при восстановлении стимдека.


                1. abetkin Автор
                  27.09.2025 11:21

                  Да, вы совершенно правы, там btrfs. В таком случае, решение KDE использовать то же самое совершенно понятно и разумно


                1. abetkin Автор
                  27.09.2025 11:21

                  написал для вас UPDATE)


    1. abetkin Автор
      27.09.2025 11:21

      deepseek подсказывает:

      SteamOS 3.x: Гибридный подход (Btrfs + EROFS)

      1. A/B-разделы для системы (RO - Read Only):

        • Эти системные разделы отформатированы в EROFS (Enhanced Read-Only File System).

      2. Домашний раздел (RW - Read/Write):

        • Этот раздел отформатирован в Btrfs.


      1. abetkin Автор
        27.09.2025 11:21

        UPDATE:
        Ваше замечание абсолютно верное. Изначальная идея с EROFS для read-only системных разделов была либо отброшена, либо существует только на очень раннем этапе загрузки, прежде чем система переключается на основную корневую ФС Btrfs. Btrfs была выбрана как краеугольный камень для обеспечения надежности, атомарности обновлений и эффективности хранения данных в SteamOS 3.x. Спасибо, что заставили меня углубиться и дать более точный ответ!