Branches/p11/TechnicalNotes

Материал из ALT Linux Wiki
< Branches‎ | p11
Версия от 02:04, 27 мая 2024; ArsenyMaslennikov (обсуждение | вклад) (Если будет наполнение для секции — вернём.)
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Что нового в 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.
  • Библиотека openssl в составе платформы обновлена до ветки 3.1, а поддержка ветки 1.1 прекращена, в том числе самим апстримом. В репозитории остался пакет openssl 1.1 без комплекта разработки для совместимости с устаревшими пакетами из состава репозитория.
    • По сравнению с p10 изменились API, ABI и семантика. Например, по умолчанию библиотека откажется устанавливать соединения по TLS 1.0 и TLS 1.1, что, вероятно, будет выглядеть для читающего логи пользователя как ошибка связи. Чтобы вернуть поддержку, разработчик сможет, например, вызвать функцию SSL_CTX_set_security_level(3)
    • Подробнее у апстрима.
  • Программа apt-get научилась выводить устанавливаемые и удаляемые пакеты в столбик.
    • До:
 The following extra packages will be installed:
   libOpenUSD0 libPtex2 libalembic1.8 libblosc libcudart libdcmtk18 libdraco
   libembree4-4 libgflags libharu2.4 libhdf5-310 liblog4cplus libopenCOLLADA
   libopenexrcore30 libopenimagedenoise2 libopenimageio2.5 libopenpgl0
   libopenshadinglanguage1.13 libopensubdiv3.6.0 libopenvdb10.1 libpartio1 libspnav
   ocl-icd
 The following NEW packages will be installed:
   blender libOpenUSD0 libPtex2 libalembic1.8 libblosc libcudart libdcmtk18 libdraco
   libembree4-4 libgflags libharu2.4 libhdf5-310 liblog4cplus libopenCOLLADA
   libopenexrcore30 libopenimagedenoise2 libopenimageio2.5 libopenpgl0
   libopenshadinglanguage1.13 libopensubdiv3.6.0 libopenvdb10.1 libpartio1 libspnav
   ocl-icd
 0 upgraded, 24 newly installed, 0 removed and 0 not upgraded.
    • После:
 The following extra packages will be installed:
   libOpenUSD0    libdraco      libopenCOLLADA              libopensubdiv3.6.0
   libPtex2       libembree4-4  libopenexrcore30            libopenvdb10.1
   libalembic1.8  libgflags     libopenimagedenoise2        libpartio1
   libblosc       libharu2.4    libopenimageio2.5           libspnav
   libcudart      libhdf5-310   libopenpgl0                 ocl-icd
   libdcmtk18     liblog4cplus  libopenshadinglanguage1.13
 The following NEW packages will be installed:
   blender        libdcmtk18    liblog4cplus          libopenshadinglanguage1.13
   libOpenUSD0    libdraco      libopenCOLLADA        libopensubdiv3.6.0
   libPtex2       libembree4-4  libopenexrcore30      libopenvdb10.1
   libalembic1.8  libgflags     libopenimagedenoise2  libpartio1
   libblosc       libharu2.4    libopenimageio2.5     libspnav
   libcudart      libhdf5-310   libopenpgl0           ocl-icd
 0 upgraded, 24 newly installed, 0 removed and 0 not upgraded.

Системные компоненты

  • Системный интерпретатор сценариев /bin/sh теперь также основан на Bash 5.2 вместо Bash 4. Рекомендуем ознакомиться со списком изменений от апстрима GNU Bash, в числе которых могут быть обратно несовместимые изменения.
  • Пакет systemd обновлён до версии 255. Список изменений от апстрима
  • Обновлена UEFI-программа shim. На UEFI-загружаемых машинах с включенным Secure Boot и UEFI-ключами от Microsoft новый загрузчик перестанет грузить ядра из p10 и более ранних платформ.
    Не забудьте установить ядро из p11 после обновления пакетов! Также не следует точечно обновлять пакеты, входящие в цепочку доверенной загрузки: shim-signed, grub-efi, fwupd-efi, kernel-image-*; их необходимо обновлять синхронно.


Интерфейс пользователя. Web-браузеры. Средства связи

  • Окружение рабочего стола и пакет приложений GNOME обновлены до ветки 46.
  • Окружение рабочего стола Plasma и пакет приложений KDE обновлены до версии 5.115.0. Plasma 6, выпущенная весной 2024, в платформе p11 не планируется.
  • MATE обновлена до 1.28.0.
  • Диалоговый шелл по умолчанию /bin/bash обновлён до Bash 5.2.
  • Сервер обработки мультимедиа PipeWire обновлён до 1.0.7.
  • Mesa обновлена до версии 24.0.6.
  • 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 содержит все обновления источника, а также дополнительные опции:
    • Параметр, задающий тайм-аут чтения сокета smbd в миллисекундах.
    • Добавлена поддержка (только Heimdal) глобальной опции «игнорировать SID запросчика» для корректной работы доверительных отношений со старыми версиями MS AD.
    • Параметр «client Force DNS canonicalize Hostname» позволяет клиентской библиотеке пытаться разрешить каноническое имя. Эта функция позволяет взаимодействовать через Kerberos со службами, используя записи CNAME, без добавления SPN для определенного сервиса на хосте.
  • Версия Kerberos 1.21.

Виртуализация

  • libvirt обновлён до версии 10.2.0.
  • Инструмент для запуска OCI-контейнеров runc обновлён до версии 1.1.12.
  • TODO: OVS
  • TODO: OVN
  • TODO: PVE
  • TODO: Kubernetes: уточнить набор версий

Мультимедиа

  • PipeWire обновлён до 1.0.7.
    • В 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. Он может отображать и запускать установленные модули Альтератора.