Бесплатно Экспресс-аудит сайта:

10.01.2024

Линус Торвальдс анонсировал выход Linux 6.7: обзор основных изменений

Линус Торвальдс анонсировал выход Linux 6.7 после двухмесячной разработки. Основные изменения включают интеграцию файловой системы Bcachefs, прекращение поддержки Itanium, возможность работы Nouveau с прошивками GSP-R, поддержка TLS-шифрования в NVMe-TCP, возможность использования исключений в BPF, поддержка futex в io_uring, оптимизация fq планировщика, поддержка расширения TCP-AO и возможность ограничения сетевых соединений в механизме защиты Landlock, добавлено управление доступом к user namespace и io_uring через AppArmor.

Версия 6.7 включает 18405 правок от 2066 разработчиков, с размером патча 72 МБ, затрагивающим 13467 файлов, с 906147 добавленными и 341048 удаленными строками кода. Примерно 45% изменений связаны с драйверами устройств, 14% - с обновлением кода для конкретных архитектур, 13% - с сетевым стеком, 5% - с файловыми системами, и 3% - с внутренними подсистемами ядра.

Важные нововведения в ядре 6.7:

  1. Дисковая подсистема, ввод/вывод и файловые системы:
    • Включен код файловой системы Bcachefs , в которой предпринята попытка добиться уровня производительности, надёжности и масштабируемости, свойственного XFS, в сочетании с элементами расширенной функциональности, имеющейся в Btrfs и ZFS.
    • Btrfs получил упрощенный режим квот и новую структуру данных «stripe tree». Структура пока задействована в реализациях RAID0 и RAID1 для зонированных блочных устройств. В будущем данную структуру планируют использовать и в RAID более высокого уровня
    • В Ceph добавлена поддержка маппинга идентификаторов пользователей.
    • В efivarfs внедрена возможность указания uid и gid при монтировании.
    • В exFAT добавлены ioctl-вызовы для чтения и изменения атрибутов ФС. Добавлена обработка каталогов нулевого размера.
    • F2FS поддерживает блоки 16K.
    • Autofs переведен на новый API монтирования.
    • OverlayFS получил новые опции монтирования «lowerdir+» и "datadir+". Добавлена поддержка вложенного монтирования OverlayFS с xattrs.
    • В XFS проведена оптимизация нагрузки на CPU в коде распределения блоков в реальном времени. Обеспечена возможность одновременного выполнения операций чтения и FICLONE.
    • EXT2 переведен на использование фолиантов страниц памяти.
  2. Память и системные сервисы:
    • Прекращена поддержка архитектуры ia64 (Intel Itanium).
    • Добавлен параметр командной строки ядра «ia32_emulation», позволяющий на стадии загрузки включать и отключать поддержку эмуляции 32-разрядного режима в ядрах, собранных для архитектуры x86-64.
    • Внесены изменения из ветки Rust-for-Linux, связанных с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра.
    • В cgroup-контроллер cpuset добавлены новые настройки.
  3. Виртуализация и безопасность:
    • В fscrypt внедрена возможность блочного шифрования.
    • В iommufd добавлено отслеживание "dirty" данных.
    • В механизм Landlock добавлены новые функции управления доступом.
    • В AppArmor добавлена возможность управления доступом к io_uring и user namespaces.
  4. Сетевая подсистема:
    • В NVMe-TCP добавлена поддержка TLS-шифрования.
    • Оптимизирован планировщик fq.
    • В протокол TCP добавлена опциональная возможность использования временных меток (TCP TS) с микросекундной точностью (RFC 7323).
  5. Оборудование:
    • Nouveau получил поддержку прошивок GSP-RM от NVIDIA RTX 20+.
    • В драйвере AMDGPU реализована поддержка GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 и DML2. Улучшена поддержка бесшовной загрузки (без мерцания при переключении видеорежима).
    • В i915 добавлена поддержка чипов Intel Meteor Lake и добавлена начальная реализация Intel LunarLake (Xe 2).

Кроме того, латиноамериканский фонд свободного ПО сформировал вариант полностью свободного ядра 6.7 - Linux-libre 6.7-gnu , очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В выпуске 6.7 обновлён код чистки блобов в различных драйверах и подсистемах, например, в драйверах amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs и btqca. Удалён код чистки драйверов localtalk и rtl8192u из-за их исключения из состава ядра. Убраны лишние компоненты чистки драйверов xhci-pci, rtl8xxxu и rtw8822b, ранее добавленные по ошибке. Проведена чистка имён блобов в dts-файлах для архитектуры Aarch64. Удалены блобы в новых драйверах mt7925, tps6598x, aw87390 и aw88399.