
ຫຼັງຈາກສອງເດືອນຂອງການພັດທະນາ, Linus Torvalds ແນະ ນຳ ການປ່ອຍແກ່ນ Linux 7.1. Среди наиболее заметных изменений: новый драйвер ntfsplus, первая стадия прекращения поддержки CPU i486, удаление старых Ethernet-адаптеров, удаление протоколов ISDN и AX.25, включение по умолчанию механизма Intel FRED, поддержка BPF-обработчиков в io_uring, оптимизация подсистемы подкачки, поддержка субпланировщиков в sched_ext, ввод/вывод в режиме zero-copy в драйвере ublk, ioctl-операция shutdown в Btrfs, динамическое переключение режима производительности в драйвере amd-pstate, поддержка xattr для Unix-сокетов.
ຮຸ່ນໃຫມ່ປະກອບມີການແກ້ໄຂ 17275 ຈາກນັກພັດທະນາ 2589, ຂະຫນາດ patch ແມ່ນ 57 MB (ການປ່ຽນແປງທີ່ໄດ້ຮັບຜົນກະທົບ 13528 ໄຟລ໌, 751785 ເສັ້ນຂອງລະຫັດໄດ້ຖືກເພີ່ມ, 405916 ເສັ້ນຖືກລຶບ). ການປ່ອຍຫຼ້າສຸດມີ 15624 ການແກ້ໄຂຈາກນັກພັດທະນາ 2477, ຂະຫນາດ patch ແມ່ນ 56 MB. ປະມານ 41% ຂອງການປ່ຽນແປງທັງຫມົດທີ່ນໍາສະເຫນີໃນ 7.1 ແມ່ນກ່ຽວຂ້ອງກັບໄດເວີອຸປະກອນ, ປະມານ 12% ຂອງການປ່ຽນແປງແມ່ນກ່ຽວຂ້ອງກັບການປັບປຸງລະຫັດສະເພາະກັບສະຖາປັດຕະຍະກໍາຮາດແວ, 14% ແມ່ນກ່ຽວຂ້ອງກັບ stack ເຄືອຂ່າຍ, 5% ແມ່ນກ່ຽວຂ້ອງກັບລະບົບໄຟລ໌, ແລະ 3% ແມ່ນກ່ຽວຂ້ອງກັບລະບົບຍ່ອຍ kernel ພາຍໃນ.
ຄຸນສົມບັດໃໝ່ທີ່ສຳຄັນໃນ kernel 7.1 (kernewbies.org, lwn.net, ເປີດສຸດທິ):
ລະບົບຍ່ອຍແຜ່ນ, I/O ແລະລະບົບໄຟລ໌
- В состав принята новая реализация файловой системы NTFS — ntfsplus, основанная на коде удалённого из ядра классического драйвера ntfs. Старый драйвер был переработан, расширен возможностью записи данных и адаптирован для поддержки современных возможностей, таких как использование folios ຂອງຫນ້າຂອງຄວາມຊົງຈໍາ (folios) вместо структуры buffer_head. В новом драйвере реализовано отложенное выделение блоков, позволившее добиться высокой производительности операций записи и снижения фрагментации. Для буферизированных операций записи/чтения, прямого ввода/вывода, маппинга экстентов и операций страничной записи/чтения задействована библиотека iomap. В тестах iozone драйвер ntfsplus оказался на 3-5% быстрее ntfs3 при записи в однопоточном режиме и на 35-110% при использовании 4 потоков. Скорость чтения ntfsplus и ntfs3 находится примерно на одном уровне. Драйвер ntfs3 остаётся в составе ядра и в него ແນະນໍາ исправления и небольшие улучшения.
- Добавлена поддержка генерации и верификации данных проверки целостности T10 (deepwiki.com) на уровне файловой системы, а не блочного устройства, что позволяет добиться повышения производительности операций чтения.
- В драйвер блочных устройств ublk, позволяющий вынести специфичную логику на сторону процесса в пространстве пользователя, ເພີ່ມ поддержка ввода/вывода через разделяемую память без копирования данных между буферами (режим zero-copy).
- Для самошифруемых блочных устройств SED-OPAL ເພີ່ມ ioctl для управления режимом ຜູ້ໃຊ້ດຽວ и реализована команда STACK_RESET.
- В Btrfs объявлена стабильной поддержка ioctl-операции shutdown, позволяющей перевести ФС в состояние, при котором предпринимается попытка завершения выполнения уже запущенных операций, но блокируются все новые операции.
- В exfat реализована возможность резервированием пустых областей через вызов fallocate().
- В ФС CIFS добавлена поддержка создания временных файлов с флагом O_TMPFILE.
- ໃນການໂທລະບົບ fsmount() добавлена опция FSMOUNT_NAMESPACE, создающая новое пространство имён точек монитирования для монтируемой файловой системы. В системные вызовы clone3() и unshare() добавлены флаги для возвращения нового пространства имён точек монтирования, содержащего только примонтированную пустую ФС-заглушку на базе nullfs, драйвер fs-dax c ФС-интерфейсом к устройствам DAX (Direct Access).
- В NFS-сервер ເພີ່ມ защита от атак по подбору файловых дескрипторов, реализованная через заверение дескрипторов криптографической подписью. Защита включается через опцию монтирования sign_fh.
- ເພີ່ມແລ້ວ символьный драйвер fs-dax, предоставляющий интерфейс для взаимодействия с устройствами DAX (kernel.org) (Direct Access), поддерживающими работу в обход страничного кэша. Указанный интерфейс необходим для интеграции в ядро файловой системы famfs, размещаемой в оперативной памяти.
- В файловой системе Ceph ປະຕິບັດ сбор метрик о вводе/выводе в привязке к подразделам.
ຫນ່ວຍຄວາມຈໍາແລະການບໍລິການລະບົບ
- Принята первая серия изменений для прекращения поддержки процессоров i486. Из Kconfig удалены опции для сборки ядра с поддержкой процессоров 486DX, 486SX и AMD ELAN (CONFIG_M486, CONFIG_M486SX и CONFIG_MELAN), а из Makefile исключены опции компиляции для систем i486 (-march=i486). Код для фактической поддержки работы на процессорах i486 пока оставлен в ядре, но сборка для подобных систем теперь потребует применения патчей к сборочным файлам. Причины удаления поддержки процессоров i486 обусловлены желанием избавить ядро от усложнённого кода, эмулирующего некоторые аппаратные операции, такие как CX8 (сравнить и обменять 8 байт) и TSC (счётчик циклов CPU, используемый в планировщике задач).
- В драйвере amd-pstate, применяемом для управления энергопотреблением на системах с процессорами AMD, ປະຕິບັດ динамическое переключение настроек производительности и изменение поведения управления питанием в зависимости от работы от стационарного питания или аккумулятора. При стационарном подключении теперь активируется режим performance, а при работе от аккумулятора — balance_performance.
- Задействован по умолчанию механизм Intel FRED (Flexible Return and Event Delivery), позволяющий повысить эффективность и надёжность доставки информации о низкоуровневых событиях. Повышение производительности и сокращение задержек обеспечивается благодаря возвращению событий при помощи процессорной инструкции IRET вместо передачи событий через таблицу IDT (Interrupt Descriptor Table). Повышение надёжности достигается благодаря раздельной обработке поступления события в контексте ядра и контексте пользователя, защиты от вложенного выполнения NMI и сохранения в расширенном кадре стека всех связанных с исключением регистров CPU.
- В подсистему perf ເພີ່ມ поддержка блоков мониторинга производительности памяти (PMU — Performance Monitoring Unit), используемых в SoC NVIDIA Tegra410.
- Ускорено выполнение операций futex на системах ARM, благодаря задействованию инструкций Arm 9.6 LSUI, позволяющих ядру обращаться к памяти пространства пользователя без предварительного отключения режима защиты PAN (arm.com) (Privileged Access Never).
- На системах с процессорами ARM улучшена поддержка расширения архитектуры набора команд MPAM (Memory System Resource Partitioning and Monitoring) и добавлена возможность её использования в пространстве пользователя для управления ресурсами через механизм resctrl. MPAM обеспечивает пометку каждого обращения к памяти идентификатором секции (PARTID, Partition ID) и идентификатором группы мониторинга (PMG, Monitoring Group ID). В привязке к PARTID можно ограничить потребление ресурсов, таких как пропускная способность памяти или размер кэша, что бы какая-то группа задач не заняла все ресурсы. В контексте мониторинга сочетание PMG и PARTID можно использовать для отслеживание потребления ресурсов памяти при определённых видах нагрузки.
- ເພີ່ມແລ້ວ возможность использования режима реального времени (PREEMPT_RT) на 32-разрядных процессорах ARM. Ранее поддержка PREEMPT_RT была обеспечена для архитектур x86 и x86-64, ARM64, RISC-V и LoongArch.
- ໃນການໂທລະບົບ clone3() добавлены новые флаги: CLONE_NNP — ຫ້າມ получения новых привилегий в созданном процессе; CLONE_AUTOREAP — автоматическое завершение процесса вместо его превращения в процесс-зомби до выполнения функции wait() родительским процессом; CLONE_PIDFD_AUTOKILL — завершение дочернего процесса в случае закрытия связанного с ним дескриптора pidfd (например, при завершении родительского процесса).
- Для каждого модуля ядра в каталог /sys/module добавлен файл import_ns, содержащий список импортированных пространств имён символов (symbol namespace).
- В систему асинхронного ввода/вывода io_uring добавлена поддержка использования подсистемы BPF для создания обработчиков. Например, можно заменить основной цикл диспетчеризации на BPF-программу.
- ໃນລະບົບຍ່ອຍ BPF модернизирован анализ использования стека, что значительно ускорило проверку верификатором многих BPF-программ.
- С целью оптимизации производительности ຂຽນຄືນໃຫມ່ подсистема hrtimer (high resolution timer). Планировщик задач теперь может использовать таймеры с высоким разрешением без потери производительности вместо менее точных таймеров.
- ສືບຕໍ່ перенос изменений из ветки Rust-for-Linux, ທີ່ກ່ຽວຂ້ອງກັບການນຳໃຊ້ພາສາ Rust ເປັນພາສາທີສອງສຳລັບການພັດທະນາໄດຣເວີ ແລະ ໂມດູນເຄີເນລ (ການຮອງຮັບ Rust ບໍ່ໄດ້ເປີດໃຊ້ງານໂດຍຄ່າເລີ່ມຕົ້ນ, ແລະ ບໍ່ໄດ້ສົ່ງຜົນໃຫ້ Rust ຖືກລວມຢູ່ໃນລາຍຊື່ຂອງການສ້າງທີ່ຕ້ອງເພິ່ງພາອາໄສສຳລັບເຄີເນລ). ຈົນເຖິງເວີຊັນ 1.85 (ຈັດສົ່ງໃນ Debian 13) повышены требования к версии Rust, необходимой для сборки компонентов ядра. Добавлена экспериментальная Kconfig-опция CONFIG_RUST_INLINE_HELPERS для встраивания Си-прослоек в Rust-код во время компиляции (оптимизация ускорила работу блочного драйвера null на 2%). Добавлен макрос ‘const_assert!’. Расширены возможности модулей sizes, clk, ptr, sync, error.
- ເຂົ້າໄປໃນກົນໄກ SCHED_EXT, позволяющий использовать BPF для создания планировщиков CPU, ເພີ່ມ начальная возможность создания вложенных планировщиков (sub-scheduler), при помощи которых для каждого cgroup можно задействовать собственный планировщик задач.
- Продолжена оптимизация подсистемы подкачки (swap). Удалена старая структура swap_map, заменённая на механизм «ຕາຕະລາງສະຫຼັບ». Изменение позволило повысить производительность и уменьшить потребление памяти в подсистеме подкачки.
- В подсистему Damon (Data Access MONitor), позволяющую отслеживать доступ процесса к данным в оперативной памяти (например, можно узнать к каким областям памяти обращался процесс, а какие области памяти остались невостребованными), ເພີ່ມ поддержка разных алгоритмов автоматического ການປັບ квот.
- В подсистеме трассировки ປະຕິບັດ концепция внешних кольцевых буферов, позволяющая получать данные трассировки из виртуальных машин. Возможность задействована в гипервизорах KVM и nVHE для передачи данных трассировки из гостевой системы на сторону хоста.
- В подсистему RV (kernel.org) (Runtime Verification), предназначенную для проверки корректности работы высоконадёжных систем, добавлены компоненты мониторинга «stall» для отслеживания задач, выполнение которых временно приостановлено или заблокировано, и «ກໍານົດເວລາ» для анализа поведения планировщика задач.
Virtualization ແລະຄວາມປອດໄພ
- По умолчанию выставлен флаг PROC_MEM_FORCE_PTRACE, допускающий обход прав доступа к памяти процесса через файл /proc/PID/mem только для процессов, применяющих для отладки системный вызов ptrace().
- ເພີ່ມແລ້ວ новый набор hook-ов для LSM-модулей (Linux Security Module), упрощающий реализацию политик для стековых файловых систем, таких как overlayfs. В LSM также ເພີ່ມ hook для управления доступом к Unix-сокетам, который ມີສ່ວນຮ່ວມ в LSM-модуле Landlock для назначения политик доступа к Unix-сокетам.
- Во встроенную криптобиблиотеку lib/crypto, предоставляющую более простые и быстрые функции, чем в традиционном crypto API, ເພີ່ມ поддержка алгоритмов AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH и SM3. Добавлена ເອກະສານ по lib/crypto.
- Реализован режим pKVM (Protected KVM) для строгой изоляции ຄວາມຊົງຈໍາທີ່ບໍ່ເປີດເຜີຍຊື່ с использованием расширений виртуализации для архитектуры AArch64. В данном режиме страницы памяти гостевой исключаются из таблицы виртуальных адресов хостовой системы.
- В гипервизор KVM добавлена поддержка пятой версии виртуального контроллера прерываний ARM (VGICv5 — ARM Virtual Generic Interrupt Controller v5).
ລະບົບຍ່ອຍເຄືອຂ່າຍ
- Для unix-сокетов, создаваемых функцией socket(), ປະຕິບັດ поддержка расширенных атрибутов файлов (xattr) user.*. Из областей применения отмечается выставление меток через расширенные атрибуты к Unix-сокетам, используемым для IPC Varlink, с целью их выделения из общей массы для инспектирования и отладки работы IPC при помощи BPF-программ. В systemd-journald расширенные атрибуты намерены использовать для определения формата лога в привязке к сокету /dev/log.
- ລຶບແລ້ວ поддержка протокола UDP-Lite (RFC 3828), допускающего доставку пакетов с неправильной контрольной суммой с расчётом на то, что, например, частично повреждённые аудио и видеоданные могут быть восстановлены на уровне кодека. Протокол удалён так как им никто не пользуется.
- ລຶບອອກແລ້ວ возможность сборки стека IPv6 в форме модуля ядра, которая не применялась на практике (IPv6 либо встраивают в ядро, либо полностью отключают), но усложняла сопровождение так как при сборке IPv6 модулем ядра (CONFIG_IPV6=m), множество подсистем вынуждены добавлять бесполезные обработчики на случай выгрузки модуля IPv6.
ອຸປະກອນ
- ໃນໄດຣເວີ AMDGPU ລວມ новый дисплейный движок (DC) для APU AMD серии HD 7000 (Sea Islands, GCN 1.1).
- ໃນ Nouveau ຄົນຂັບ ເພີ່ມ начальная поддержка GPU NVIDIA GA100 на базе микроархитектуры Ampere.
- Продолжена работа над drm-драйвером (Direct Rendering Manager) Xe для GPU на базе архитектуры Intel Xe, которая используется в видеокартах Intel семейства Arc и интегрированной графике, начиная с процессоров Tiger Lake. Добавлена поддержка графической подсистемы процессоров Intel Nova Lake-P. Реализованы очищаемые буферные объекты (Purgeable Buffer Objects).
- ພວກເຮົາຍັງສືບຕໍ່ລວມສ່ວນປະກອບໄດຣເວີ Nova ສຳລັບ GPU NVIDIA ທີ່ມີເຟີມແວ GSP ທີ່ໃຊ້ຕັ້ງແຕ່ຊຸດ NVIDIA GeForce RTX 2000 ໂດຍອີງໃສ່ສະຖາປັດຕະຍະກຳ Turing. ໄດຣເວີຖືກຂຽນດ້ວຍພາສາ Rust. ການຮອງຮັບເບື້ອງຕົ້ນສຳລັບ GPU ໂດຍອີງໃສ່ສະຖາປັດຕະຍະກຳ Turing ໄດ້ຖືກເພີ່ມເຂົ້າມາ.
- ເພີ່ມແລ້ວ DRM-драйвер corebootdrm для вывода графики через фреймбуфер прошивок на базе CoreBoot.
- ເພີ່ມແລ້ວ поддержка звуковых ASoC AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP и WM8962. Улучшена поддержка звуковых устройств с интерфейсом USB: Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow, PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
- ເພີ່ມແລ້ວ драйвер yogafan для отслеживания скорости вращения кулера на ноутбуках Lenovo Yoga, Legion и IdeaPad.
- ເພີ່ມແລ້ວ поддержка ARM-плат, SoC и устройств: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 и ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
- ລຶບແລ້ວ поддержка применяемых в SoC Baikal-T1 контроллеров AHCI SATA и PCIe, а также драйверов таймера, памяти, physmap, шины, hwmon, dwc и bt1-rom. В качестве причины удаления называется отсутствие сопровождения и незавершённая интеграция в состав ядра компонентов платформы Baikal, производство которой в РФ свернули в ноябре 2025 года.
- ລຶບອອກແລ້ວ 12 драйверов для Ethernet-устройств с интерфейсами ISA и PCMCIA, выпускавшихся до 2002 года, для которых не нашлись пользователи, применяющие их в рабочих системах. Также из ядра исключены подсистема ISDN, реализации протоколов AX.25, CAIF и Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol), драйверы yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport и logibm (busmouse). Причиной удаления стало отсутствие активных сопровождающих на фоне увеличения числа выявляемых при помощи syzbot и AI-инструментов ошибок, которые никто не берётся исправлять и вся нагрузка нa устранение серьёзных проблем ложится на сопровождающих основные сетевые подсистемы ядра. Всего удалено более 140 тысяч строк кода.
ແຫຼ່ງຂໍ້ມູນ: linux.org.ru
