Разработка KDE Linux: за март 2026 исправлены зависания и добавлена поддержка iOS

2026-04-01 93 комментарии
Критическая ошибка в systemd 260 приводила к тихому сбою загрузки образа ОС в KDE Linux. Откат тоже не работал из-за повреждения каталога /etc. Разработчики исправили баг и планируют автоматическую привязку версий /etc к образам системы

Разработчики KDE Linux опубликовали мартовский отчёт о развитии дистрибутива. Главным событием месяца стала серия критических сбоев обновления, которые делали систему незагружаемой — причиной оказался баг в systemd 260. Помимо этого, команда переработала управление памятью, добавила поддержку устройств Apple iOS и расширила набор предустановленного ПО. Дистрибутив по-прежнему находится в стадии альфа-версии.

KDE Linux — дистрибутив, разрабатываемый командой проекта KDE на базе пакетов Arch Linux. Системное окружение оформлено в виде неизменяемого образа, обновляемого атомарно. Цель проекта — создать операционную систему общего назначения, в которой все компоненты интегрированы между собой на уровне, сопоставимом с Windows и macOS. На март 2026 года дистрибутив находится в стадии альфа-версии, а этап бета-версии выполнен на 71%.

Сбои обновления из-за systemd 260

Несколько пользователей столкнулись с тем, что после обновления система отказывалась загружаться. Харальд Зиттер (Harald Sitter) установил причину и работает над тем, чтобы подобное не повторилось в будущем.

Обновление системы в KDE Linux состоит из четырёх шагов: загрузка образа ОС, загрузка UKI (Unified Kernel Image, единый образ ядра), перезагрузка с выбором нового образа через менеджер загрузки и развёртывание изменений в каталог /etc, который не является неизменяемым.

UKI (Unified Kernel Image) — единый файл, объединяющий ядро Linux, начальный RAM-диск и параметры загрузки. Менеджер загрузки использует его для выбора и запуска конкретной версии операционной системы.

Баг в свежей версии systemd 260 приводил к тихому сбою на первом шаге — образ ОС не загружался, а UKI загружался успешно. Менеджер загрузки предлагал запуск несуществующего образа, и загрузка ожидаемо проваливалась.

Откат на предыдущий рабочий образ тоже не срабатывал. Собственный механизм развёртывания /etc в KDE Linux не был защищён от ситуации, когда образ ОС отсутствует, но менеджер загрузки всё равно пытается его использовать. В результате содержимое /etc стиралось, и загрузка любого образа становилась невозможной.

В KDE Linux предусмотрены снимки Btrfs каталога /etc, поэтому для восстановления есть задокументированная процедура. Харальд Зиттер улучшил журналирование ошибок и исправил баг на стороне дистрибутива — откат после неудачного обновления больше не повреждает /etc.

Команда также планирует реализовать автоматическую привязку версии /etc к конкретному образу ОС. При откате на предыдущую сборку /etc будет переключаться вместе с ней. Помимо этого, рассматривается объединение первого и второго шагов обновления, чтобы подобный класс сбоев стал технически невозможен.

Discover не мог обновлять систему

Проблемы с systemd 260 этим не ограничились. Разработчики systemd вывели функциональность sysupdate из гарантии стабильности API и нарушили обратную совместимость. В результате центр программ Discover потерял возможность обновлять систему. Обновление через терминал командой

updatectl update
продолжало работать.

Аксели Лахтинен (Akseli Lahtinen) уже адаптировал поддержку sysupdate в Discover под новый подход systemd 260. Ожидается, что sysupdate вернётся под гарантию стабильности API в systemd 261 или 262, поэтому дополнительные изменения ещё возможны. Если ситуация ухудшится, команда рассматривает откат до systemd 259 или даже 258, поскольку версия 259 ломала работу TPM-чипов.

sysupdate — компонент systemd, отвечающий за атомарное обновление неизменяемых операционных систем. Скачивает новый образ ОС и управляет переключением между версиями.

Также были обнаружены дополнительные ошибки, внесённые systemd 260: #41303, #41299 и #41288.

Управление памятью и борьба с зависаниями

Разработчики скорректировали параметры zram, чтобы система не зависала при приближении к пределу доступной памяти. Также был исправлен обработчик нехватки памяти — теперь ресурсоёмкие приложения корректно завершаются, а не вешают систему целиком.

zram — модуль ядра Linux, который создаёт сжатый раздел подкачки прямо в оперативной памяти. Данные сжимаются налету, что быстрее обращения к диску и позволяет эффективнее использовать ограниченный объём памяти.

Поддержка оборудования

Джон Кизер (John Kizer) предустановил службу usbmuxd, благодаря которой подключённые по USB устройства Apple iOS отображаются в файловом менеджере Dolphin и в диалогах выбора файлов. Теперь, например, можно подключить iPhone и скопировать с него фотографии.

Томас Дакворт (Thomas Duckworth) исправил проблему, из-за которой компьютеры без видеокарт NVIDIA не могли полноценно переходить в спящий режим. Обходное решение, предназначенное только для систем с NVIDIA, прежде ошибочно влияло и на остальные конфигурации.

Вишал Рао (Vishal Rao) немного увеличил время отображения экрана выбора образа ОС при загрузке. На телевизорах и медленных мониторах, которым нужно время на включение, пользователь мог не успеть увидеть этот экран.

Новое предустановленное ПО

Хади Чокр (Hadi Chokr) добавил поддержку монтирования образов оптических дисков. Также в дистрибутив добавлена поддержка кодирования аудио с CD в формат Opus, индексирования документов в старых форматах Microsoft Word и открытия архивов с дополнительными типами алгоритмов сжатия.

Несовместимые пакеты и информативные ошибки

Томас Дакворт реализовал компонент, который при попытке открыть неподдерживаемый пакет — например, файл .exe для Windows или .rpm — показывает понятное сообщение об ошибке и предлагает альтернативные варианты установки.

Локализация и проверка орфографии

Обработчик «команда не найдена» теперь выводит переведённый текст, если пользователь работает с системой не на английском языке. Над реализацией работали Нейт Грэм (Nate Graham) и Альберт Асталс Сид (Albert Astals Cid).

Также была исправлена проверка орфографии: установлен английский движок для hunspell, а избыточный aspell удалён для экономии места. Языковые пакеты занимают значительный объём, поэтому включить все в образ системы пока невозможно. В будущем разработчики планируют добавить автоматическую загрузку нужных языковых пакетов.

Настройки системы и командная строка

Яго Ранья Гайосо отключил блокировку экрана и проверку обновлений в live-сеансе, так как в этом режиме они бессмысленны. Также была убрана кнопка отмены установки в процессе, поскольку прерывание на полпути не поддерживается и приводит к неработоспособной системе.

Томас Дакворт настроил утилиту sudo так, чтобы при вводе пароля отображались символы «*» для каждого нажатия клавиши. Прежнее поведение — полное отсутствие визуального отклика — могло сбивать с толку.

Утилиты cp и rsync теперь по умолчанию сохраняют метаданные при копировании файлов: время модификации, расширенные атрибуты и списки контроля доступа (ACL).

Технические изменения

Томас Дакворт исправил ошибку, из-за которой свежеустановленные образы ОС иногда необоснованно понижались в приоритете при выборе загрузки.

Аксели Лахтинен задал переменную окружения $SSH_ASKPASS, направляющую её на KSSHAskPass. Это упрощает работу с SSH-сценариями, где требуется графический ввод пароля.

Хади Чокр добавил каталог ~/.local/bin в переменную $PATH по умолчанию для всех пользователей. Благодаря этому утилита kde-builder и другие программы, установленные в домашний каталог, работают без дополнительной настройки.

© . По материалам pointieststick
Комментарии и отзывы

Нашли ошибку?

Новое на сайте