Linux — в основном свободное ядро, похожее на ядро Unix, — один из основных примеров бесплатного программного обеспечения с открытым исходным кодом.
В прошлое воскресенье Линус Торвальдс объявил о выпуске новой версии ядра Linux 6.9, которая включает в себя ряд существенных изменений, в том числе модуль dm-vdo для дедупликации и сжатия блочных устройств, улучшения режима прямого доступа к файлам в FUSE, возможность создания pidfd для отдельных потоков, реализацию механизма токенов BPF, поддержку Rust на системах ARM64 и многое другое.
В процессе разработки новой версии Linux 6.9 2,106 разработчиков внесли 15 680 исправлений . Размер патча составляет 54 МБ, изменения затрагивают 11 825 файлов, добавлено 687 954 строки кода и удалено 225 344 строки.
Что нового в ядре Linux 6.9?
В новой версии ядра Linux, 6.9, одной из наиболее заметных особенностей является внедрение нового драйвера dm-vdo в Device Mapper. Этот драйвер позволяет создавать виртуальные блочные устройства на основе существующих блочных устройств . Новое устройство предлагает такие функции, как дедупликация данных, сжатие данных, удаление пустых блоков и возможность увеличения размера блочного устройства по мере необходимости.
Ещё одно заметное изменение касается подсистемы FUSE, где была внедрена начальная реализация режима «сквозной передачи» . Это позволяет получать данные из файлов непосредственно на уровне ядра, избегая таким образом процесса, работающего в пользовательском пространстве. В определённых ситуациях это может значительно повысить производительность.
Кроме того, в Linux 6.9 файловая система Ext2 помечена как устаревшая. Это связано с тем, что драйвер поддерживает только 32-битные метки времени inode, которые будут переполнены 19 января 2038 года. Рекомендуется использовать ext4 вместо ext2, поскольку она обратно совместима с файловой системой Ext2.
Кроме того, начиная с версии ядра 5.15, старый драйвер NTFS был удален и заменен новым драйвером NTFS3 . Это произошло потому, что предыдущий драйвер не обновлялся много лет, находился в плохом состоянии и работал только в режиме чтения.
Кроме того, в другие файловые системы , такие как Btrfs, exFAT, F2FS, XFS и другие, были внесены многочисленные улучшения и оптимизации для повышения производительности, функциональности и совместимости с различными устройствами и потребностями в хранении данных.
В функцию pidfd_open () был введен флаг PIDFD_THREAD , позволяющий создавать PIDFD для отдельных потоков, а не только для лидера группы потоков. Кроме того, предлагается реализация псевдо-FS для доступа к PIDFD через виртуальную файловую систему.
В процессорах Intel Atom реализована защита от уязвимости RFDS . Она включает в себя обновление микрокода и использование инструкции VERW для очистки содержимого буферов микроархитектуры при возврате из ядра в пользовательское пространство.
Добавлена базовая поддержка расширения AMD SEV-SNP (Secure Nested Paging) для защиты гостевых систем. Это расширение обеспечивает безопасную работу вложенных таблиц страниц памяти и защищает от определенных атак на процессоры AMD EPYC. KVM планирует интегрировать необходимые изменения для использования SNP в версии 6.10.
Модули IMA и EVM были перенесены в фреймворк LSM, что упростило код и объединило дублирующие функции. IMA проверяет целостность компонентов операционной системы с помощью цифровых подписей и хешей, а EVM защищает расширенные атрибуты файлов от атак, направленных на компрометацию их целостности.
Среди других существенных изменений можно отметить следующие :
- Netfilter теперь позволяет определять таблицы из пользовательского пространства, связанные с управляющим фоновым процессом. В nftables добавление элементов в наборы с объединенными диапазонами было ускорено, что повысило эффективность системы фильтрации пакетов.
- Проведены работы по реализации поддержки чипов Intel LunarLake, графических процессоров AMD RDNA3.5 и RDNA4, а также адаптации кода управления экраном под Nouveau. Драйвер Xe drm для графических процессоров на базе архитектуры Intel Xe был усовершенствован для использования в видеокартах Intel Arc и встроенной графике.
- Добавлена поддержка широкого спектра плат и устройств ARM, включая модели Rockchip, Allwinner, Qualcomm, Amlogic, Mediatek, NVIDIA, Renesas и Mobileye SoC на базе процессоров MIPS. Это расширяет совместимость ядра с различными платформами и устройствами.
- В подсистему BPF был добавлен новый тип разделяемой памяти, bpf_arena, а также возможность генерировать произвольные файлы cookie TCP SYN из программ BPF и создавать драйверы BPF для борьбы с SYN-флудом.
- Реализована поддержка параллельной инициализации страниц большой памяти (HugeTLB), что ускоряет процесс загрузки на системах с большим объёмом оперативной памяти.
- Улучшения и оптимизации были внесены в несколько архитектур, включая ARM64, LoongArch и RISC-V, а также в определенные драйверы, такие как amd-pstate и параметр USB_DEFAULT_AUTHORIZATION_MODE для USB-устройств.
- В такие инструменты, как perf и LLVM/Clang, были добавлены новые функции и улучшения, улучшающие возможности дизассемблирования инструкций процессора и оптимизирующие потребление памяти при выполнении определенных команд.
- Линус Торвальдс отклонил предложение о более обширной переработке ядра с введением дополнительных определений типов, отдав предпочтение более конкретным решениям для устранения выявленных проблем.
Если вас заинтересовала более подробная информация, вы можете найти ее по следующей ссылке.