Branches/p11/TechnicalNotes
< Branches | p11
Версия от 14:01, 23 мая 2024; ArsenyMaslennikov (обсуждение | вклад) (→Сетевые подключения и службы)
Что нового в p11
Изменения общего рода
- В репозитории зафиксирована версия glibc 2.38.
- Каталоги /bin, /sbin, /lib* объединены с аналогами в /usr. Миграция происходит при обновлении пакета filesystem на версию из состава p11. При свежей установке p11 /bin, /sbin, /lib* сразу являются симлинками на аналоги в usr/.
- В неопределённом будущем планируется научить инсталлятор формировать recovery-раздел при установке на носитель достаточного объёма. Его создание можно будет отключить по желанию администратора. С его помощью пользователь персоналки или администратор сможет восстановить основную систему.
- Подсистема cgroup версии 1 объявляется устаревшей. Ядро Linux в платформе всё ещё поддерживает cgroup v1, но другие компоненты постепенно прекращают поддержку или вовсе её не имеют. Рекомендуем разработчикам приложений использовать подсистему cgroup версии 2, а администраторам приложений, всё ещё зависящих от cgroup v1 — изучить документацию этих приложений и работать с ними на свой страх и риск.
Механизмы защиты. Доставка ПО
- Для пользователя nobody изменён uid с 99 на значение (65536-2), равное значению overflowuid в наших ядрах.
- В репозитории разрешены пакеты с символом ~ в версии или релизе. Тильда признана лексикографически старше конца строки, по аналогии с sort -V и предназначена для обозначения версий типа release candidate, например, 1.2~rc2. Это не повлияет на обновление с p10.
- TODO: Прояснить статус appstream
- Библиотека openssl в составе платформы обновлена до ветки 3.1, а поддержка ветки 1.1 прекращена, в том числе самим апстримом. В репозитории остался пакет openssl 1.1 без комплекта разработки для совместимости с устаревшими пакетами из состава репозитория;
- TODO: что примечательного в openssl 3? как дела у TLS 1.0/1.1?
- TODO: ещё user-facing свойства наших репозиториев?
- TODO: apt? rpm? update-kernel? packagekit/"центры обновлений"?
Системные компоненты
- Системный интерпретатор сценариев /bin/sh теперь также основан на Bash 5.2 вместо Bash 4. Рекомендуем ознакомиться со списком изменений от апстрима GNU Bash, в числе которых могут быть обратно несовместимые изменения.
- Пакет systemd обновлён до версии 254. К моменту выхода дистрибутивов на базе p11 планируется обновить systemd до версии 255. Список изменений от апстрима
- TODO: атрибуты загрузки? поведение загрузчиков?
Интерфейс пользователя. Web-браузеры. Средства связи
- Окружение рабочего стола и пакет приложений GNOME обновлены до ветки 46.
- Окружение рабочего стола Plasma и пакет приложений KDE обновлены до версии 5.115.0. Plasma 6, выпущенная весной 2024, в платформе p11 не планируется.
- MATE обновлена до 1.28.0.
- Диалоговый шелл по умолчанию /bin/bash обновлён до Bash 5.2.
- Сервер обработки мультимедиа PipeWire обновлён до 1.0.5; TODO: wireplumber; altbug:49760
- Mesa обновлена до версии 24.0.6.
- TODO: поподробнее про GPU support status
- Firefox обновлён до 125.0.1; доступен консервативный вариант Firefox ESR 115.10.
- Chromium обновлён до 124.0.6367.118.
- Веб-браузеры Firefox и Chromium активно сопровождаются в рамках жизненного цикла репозитория.
- Chromium-gost обновлён до 124.0.6367.78.
- В платформу собран официальный клиент для мессенджера Telegram telegram-desktop версии 5.0.0. Скорее всего, его планируется обновлять в рамках жизненного цикла платформы.
Сетевые подключения и службы
- iproute2 обновлён до версии 6.8.
- Из ядер и iproute2 убрана поддержка рудиментарного tc-действия ipt.
- mtr обновлён до версии 0.95.
- Теперь оба варианта mtr, с gtk-интерфейсом и без него, используют одну отдельную служебную программу для отправки трассирующих пакетов и не используют set-uid бит. На обе программы влияет control-переключатель mtr; отдельный control для xmtr упразднён.
- NetworkManager обновлён до версии 1.46.0.
- NetworkManager теперь умеет получать имя хоста из обратных DNS-записей и старается для этого пользоваться API systemd-resolved. Если последнего нет в системе, то NM запускает программу nm-daemon-helper, которая сделает запрос через NSS-модуль dns.
- Добавлена поддержка настройки IPv4 NAT в режиме раздачи через nftables. NM по умолчанию проверяет, установлены ли /usr/sbin/nft и /usr/sbin/iptables, и использует тот инструмент, который есть в системе, предпочитая nftables.
- Теперь можно включить для конкретного сетевого подключения Wi-Fi алгоритм выбора случайного MAC-адреса, зависящий от SSID Wi-Fi сети, задав параметр
wifi.cloned-mac-address=stable-ssid
. - Внесено множество улучшений в клиенты DHCPv4 и DHCPv6, в том числе касающихся DHCPv6 Prefix Delegation.
- Добавлена поддержка Multipath TCP. При помощи параметра
connection.mptcp-flags
можно разрешить использовать IP-адреса в составных MPTCP-соединениях. NetworkManager не управляет MPTCP, если тот не включен в sysctl ядра /proc/sys/net/mptcp/enabled; эта настройка отдана на откуп администратору. Строгий режим rp_filter мешает работе MPTCP в ряде случаев, поэтому, занявшись управлением MPTCP, NetworkManager переключит настройку rp_filter на значение 2; иначе он не трогает rp_filter. - Подробнее смотрите у апстрима.
- Фреймворк DPDK обновлён до версии 23.11.0.
- Сервер динамической маршрутизации BIRD обновлён до 2.15.
- Сервер доменной зоны nsd обновлён до 4.9.1.
- Многофункциональный DNS-сервер BIND обновлён до 9.18.26.
- Поддержка ISC DHCP прекращена вслед за апстримом в пользу Kea. Администраторам сервисов DHCP рекомендуется по мере возможности перенести свои системы c сервера ISC DHCP.
- nginx с модулями обновлён до версии 1.24.0.
- Apache httpd обновлён до версии 2.4.59.
- postfix обновлён до версии 3.8.3.
Средства хранения и резервного копирования
Интегрированные решения для групповой работы
- Новая стабильная версия Samba 4.20 совместно с Kerberos 1.21 выносят пакет krb5 из экспериментальной сборки в официально сопровождаемую.
Виртуализация
- libvirt обновлён до версии 10.2.0.
- Инструмент для запуска OCI-контейнеров runc обновлён до версии 1.1.12.
- TODO: OVS
- TODO: OVN
- TODO: PVE
- TODO: Kubernetes: уточнить набор версий
Мультимедиа
- PipeWire обновлён до 1.0.6.
- В p11 пакет PipeWire может выступать не только в качестве брокера захвата экрана для xdg-desktop-portal, но и в качестве сервера ввода/вывода звука, например, вместо PulseAudio.
- Сервер ввода/вывода звука JACK удалён из репозитория в пользу pipewire-jack, слоя совместимости с JACK для PipeWire.
- Система обработки цифрового звука Ardour обновлена до версии 8.6.
- Редактор звуковых данных Audacity обновлён до версии 3.4.2.
- Пакет кодеков и ремуксеров FFmpeg обновлён до 6.1.1.
Инструменты разработки
- Тулчейн Rust обновлён до версии 1.77.
- Доступны наборы инструментов LLVM двух версий: 18 и 17. По умолчанию используются LLVM и Clang 18-й версии; в том числе при сборке firefox, chromium, telegram-desktop и других пакетов платформы, для которых GCC даёт результат хуже.
- В репозитории обеспечена поддержка параллельной установки нескольких мажорных ветвей проекта LLVM одновременно. Утилиты, подобно проекту gcc, устанавливаются с суффиксом, содержащим номер версии (например, clang-17). Доступна обёртка с именем без суффикса, которая вызывает команду нужной версии. Подробнее
- Набор компиляторов GCC, в том числе системный, обновлён до 13.2.
- binutils+gdb обновлены до 2.41.
- Системная версия Python теперь 3.12; на ней работают все собранные в репозиторий модули.
- Интерпретатор Perl обновлён до ветки 5.38.
- TODO: GHC
- Предоставлены ветки JDK 21, 17, 11.
- Набор популярных C++-библиотек boost обновлён до 1.85.
- Тулчейн для языка программирования Golang обновлён до 1.22; новые версии будут выходить по мере сопровождения платформы.
- Vulkan SDK обновлён до 1.3.277.
- docker-engine обновлён до версии 26.1.0.
Разработка
За время развития бранча p10 активно развивались собственные разработки - утилиты ADMC и GPUI, механизм применения групповых политик gpupdate. На текущий момент в p10 и p11 версии приложений синхронизированы. (рассчитываем вести синхронно дальше) Планируется пролонгированное сопровождение этого набора приложений для бранча p10.
- Утилита ADMC создает удобную среду управления доменом. В стек технологий приложения входит графическая оболочка, настройка службы каталогов, управление клиентами, защита от ошибок, вызов инструментов администратора, безопасные запросы через Kerberos. Приложение получает информацию о домене и взаимодействует с контроллерами. Доступно переключение между контроллерами домена. В приложении можно переназначить FSMO-роли.
- Приложение GPUI позволяет редактировать созданные политики в домене Samba аналогично тому, как это происходит в Windows.
- Инструмент применения gpupdate, начиная с версии 0.10, использует dconf для хранения системных данных приложений, полученных из объектов групповой политики. Общее представление о функциональности gpupdate можно получить из перечня его механизмов, разработчики создали более 20 видов механизмов gpupdate для компьютера и пользователей. Настроить можно окружение рабочего стола, системные службы и скрипты, ограничения доступа к методам процессов, переменные окружения, браузеры и так далее.
Новые инструменты
- ALT Diagnostic Tool - графическая утилита диагностики операционной системы. ADT 0.1.3 использует заранее подготовленный набор проверок, предоставляет возможность пользователю выполнить тесты без дополнительных привилегий и единый вид отчета по проверкам. Также в ADT можно добавить собственный набор проверок.
- alterator-manager представлен в версии 0.1.19 - компонент ADT, модульный сервис, предназначенный для конфигурации посредством D-bus.
- alterator-module-executor - компонент ADT, модуль Альтератора для обработки файлов .backend и запуска исполняемых файлов.
- libdomain - универсальная библиотека на языке Си, предназначенная для упрощения взаимодействия с различными серверами LDAP, включая FreeIPA, Samba/AD и OpenLDAP. В libdomain 0.9.13 реализованы начальная поддержка samba, набор тестов для samba, тесты для TLS, тесты для добавления и удаления, модификации и переименования компьютеров в OpenLDAP.
- alterator-browser 0.1.3 - графический пользовательский интерфейс для настройки системы с использованием D-Bus. Он может отображать и запускать установленные модули Альтератора.