Официально выпущено ядро Linux 6.7

Линус Торвальдс аннонсировал выпуск ядра Linux 6.7 последней стабильной версии ядра Linux, в которой появилось несколько новых функций и улучшений.

В числе основных особенностей ядра Linux 6.7 – реализация файловой системы bcachefs, файловой системы копирования при записи (COW) для операционных систем на базе Linux, призванной конкурировать с современными возможностями файловых систем Btrfs и ZFS обладая при этом скоростью и производительностью файловых систем EXT4 и XFS.

Ядро Linux 6.7 также вводит поддержку прошивки NVIDIA GSP в графическом драйвере Nouveau с открытым исходным кодом, которая будет использоваться только на оборудовании, где GSP (GPU System Processor) не поддерживается, и будет опциональной на оборудовании, где она уже поддерживается.

В файловую систему Btrfs также включены новые функции, такие как raid-stripe-tree, новое дерево для логического отображения экстентов файлов, когда физическое отображение может не совпадать на нескольких устройствах, простой учет квот (squota) и временная файловая система fsid (temp_fsid).

Кроме того, файловая система Btrfs получила улучшения производительности для сокращения времени удаления файлов на 12% для файлов с большим количеством экстентов за счет уменьшения резервирования для удаления контрольной суммы и сокращения времени выполнения критических функций на 5% за счет более эффективного слияния состояния экстентов при вставках.

Для поклонников файловой системы EXT4 ядро Linux 6.7 улучшает многоблочный аллокатор и оптимизирует обработку освобожденных блоков данных в механизме фиксации, чтобы избежать потенциальных блокировок на спинлок s_md_lock, а также улучшает резервный суперблок для лучшего обновления после онлайн изменения размера или при обновлении метки или UUID.

В ядре Linux 6.7 реализовано множество сетевых улучшений, таких как поддержка GRO-декапсуляции для IPsec ESP в UDP, поддержка usec-разрешения временных меток TCP, включенных выборочно атрибутом маршрута, поддержка TCP Authentication Option (RFC 5925, TCP-AO) в качестве более современной замены опции MD5, поддержка отправки фрагментированных skbs через сокеты vsock и поддержка MCTP через I3C.

Также поддерживается netlink GET для MDB (multicast forwarding), что позволяет пользователю запрашивать одну запись MDB вместо дампа всей таблицы, производительность одного TCP-потока на 200-гигабитной сетевой карте увеличена на 20% за счет отсрочки обычного TCP ACK при обработке обратного хода сокета, а также поддержка rcvlowat и notsent_lowat на MPTCP-сокетах, чтобы помочь приложениям ограничить количество пробуждений.

Сетевые дополнения продолжаются поддержкой локального kptr для каждого процессора, что позволяет выделять и хранить объекты для каждого процессора в картах, поддержкой нескольких считывателей очереди событий PTP timestamp с различными фильтрами, поддержкой выборочной промывки FDB в драйвере туннеля VXLAN, а также поддержкой разрешения ограничения изученных записей FDB в мостах для предотвращения атак OOM.

Кроме того, планировщик пакетов Fair Queuing (FQ) получил встроенный трехполосный приоритет и планирование WRR, поддержку обхода и улучшенную отчетность о неактивных потоках. Поддержка процессорных инструкций BPF v4 была добавлена для платформ ARM32 и s390x, а также возможность привязки таймера BPF к текущему процессору и расширенные крючки cgroup BPF sockaddr для сокетов UNIX.

Ядро Linux 6.7 также добавляет начальную сетевую поддержку Landlock (контроль доступа TCP bind и connect), поддержку HDA-патчей, исправления Thunderbolt/USB4 для поддержки новых типов оборудования и устройств, а также позволяет всем медиадрайверам использовать VB2 kAPI вместо старого V4L2 core videobuf kAPI, который был удален.

Кроме того, перенесен autofs на новый API монтирования, обновлено логирование CephFS, добавлена поддержка несмежных битмасок емкости для реализации CAT от Intel добавлена поддержка ioctls для файловой системы exFAT для получения и установки атрибутов файлов, используемых в fatattr util, а также новая опция монтирования zero_size_dir для выделения кластера при создании каталога.

С другой стороны, файловая система F2FS получила поддержку большего размера страницы путем изменения внутреннего размера блока в соответствии с размером страницы и улучшена поддержка зонированных блочных устройств в отношении восстановления при отключении питания. Поддержка Rust была обновлена до Rust 1.73.0 в ядре Linux 6.7, а функция IBT теперь включена по умолчанию, если она также включена в C.

Что касается поддержки ARM64, то в ядре Linux 6.7 появились новые определения HWCAP и поддержка PMU для Ampere SoC, а платформа ARM получила поддержку блока обработки данных от AMD/Pensando и поддержку нового high-end устройства на базе RISC-V от Sophgo.

Архитектура LoongArch теперь поддерживается в KVM (Kernel-based Virtual Machine), также появилась поддержка PREEMPT_DYNAMIC со статическими ключами и поддержка инструкций BPF CPU v4 в архитектуре LoongArch. Говоря о KVM, на платформах ARM появилась гостевая поддержка инструкций по работе с памятью, поддержка расширений Smstateen и Zicond, а также виртуализация senvcfg.

Для архитектуры RISC-V в ядре Linux 6.7 добавлена поддержка cbo.zero в пользовательском пространстве, поддержка CBO в системах на базе ACPI, поддержка программных теневых стеков вызовов, поддержка обработки смещенных доступов в режиме S, поддержка множества новых перемещений в загрузчике модулей, а также улучшения в операциях очистки кэша T-Head. Кроме того, появилась виртуализированная отладочная консоль SBI (DBCN) для RISC-V на KVM.

Как и ожидалось, ядро Linux 6.7 поставляется с множеством новых и обновленных драйверов для улучшения поддержки оборудования. В него добавлено больше новых драйверов для USB Type-C, расширенная поддержка трассировки XHCI, поддержка USB «La Jolla Cove Adapter (LJCA)», причуда DMI для машин HP Omen, поддержка новых платформ USB dwc3 и улучшение обнаружения прошивки для Lenovo cptkbd.

Более того, поддержка аппаратного обеспечения в Linux 6.7 была улучшена: появилась поддержка чтения MAC-адреса aux во время passthrough на устройствах Lenovo Thinkpad, улучшена функция приостановки/возобновления для клавиатур ThinkPad Compact, утилита обнаружения EC GPE для ноутбука HP 250 G7, а также переопределение ACPI IRQ для ноутбуков TongFang GMxXGxx/ TUXEDO Stellaris/Polaris Gen5.

Последнее, но не менее важное, ядро Linux 6.7 принесло новый драйвер EDAC для интегрированного контроллера памяти Versal от Xilinx, новую привязку дерева устройств для повышающего преобразователя Monolithic Power (MPS) MP3309C, «вендорские» утилиты подсветки для 3 планшетов Lenovo x86 Android, поддержку idmapped mounts в CephFS, а также обновленную реализацию NFSv4.1 для обработки ошибок NFS4ERR_DELAY во время транкинга сессий.

Ядро 6.7 также позволяет Linux нативно обрабатывать ошибки протокола соединения CXL, сигнализируемые через PCIe AER для платформ CXL текущего поколения, добавляет поддержку SVA для AMD IOMMU, добавляет поддержку Amlogic C3 и S4 SoCs для Watchdog, добавляет начальную поддержку Intel Lunar Lake и переводит поддержку Intel Meteor Lake в стабильное состояние.

Для пользователей AMD ядро Linux 6.7 добавляет поддержку некоторых новых аппаратных платформ, включая GC 11.5, DCN 3.5, VPE 6.1, NBIO 7.11 и DML2, поддержку платформ AMD с чипами es83xx, а также AMD ACP 6.3 и 7.0.

С точки зрения безопасности, Linux 6.7 обновляет криптографическую поддержку с новым интерфейсом lskcipher на основе виртуальных адресов, улучшает производительность AES/XTS при 6-стороннем разворачивании для PPC, поддерживает FIPS 202 SHA-3 в PKCS1Pad и быстрый путь для одностраничных сообщений в алгоритме шифрования и дешифрования дисков Adiantum.

Кроме того, AppArmor в Linux 6.7 получил начальную поддержку посредничества при создании io_uring и userns, новое ограничение, ужесточающее использование change_profile, и пару оптимизаций для уменьшения узких мест в производительности, обнаруженных при получении secid текущей задачи и выделении рабочих буферов.

Ядро Linux 6.7 доступно для загрузки прямо сейчас с сайта kernel.org или GitHub Linus Torvalds для тех, кто любит компилировать ядра из исходников. Всем остальным придется подождать, пока новая версия ядра появится в репозиториях стабильного ПО их любимых дистрибутивов Linux.

Linux kernel 6.7 будет недолговечной веткой, поддерживаемой всего пару месяцев. Его сменит ядро Linux 6.8, окно слияния которого уже официально открыто Линусом Торвальдсом. Выход ядра Linux 6.8 ожидается в середине марта 2024 года.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

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