Недавно Линус Торвальдс представил выпуск нового ядра Linux версии 6.7, который представлен после двух месяцев разработки и среди наиболее заметных изменений — интеграция файловой системы Bcachefs, прекращение поддержки архитектуры Itanium, возможность работы Nouveau с прошивкой GSP-R, поддержка шифрования TLS в NVMe-TCP, возможность использования исключений в BPF, среди прочего.
Новая версия ядра Linux 6.7. Состоит из 15291 XNUMX исправлений. и примерно 45% всех внесенных изменений связаны с драйверами устройств, 14% изменений связаны с обновлением конкретного кода для аппаратных архитектур, 13% связаны с сетевым стеком, 5% связаны с файловыми системами и 3% связаны с внутренние подсистемы ядра.
Размер патча — 72 МБ (изменения затронули 13.467 906.147 файлов, было добавлено 341.048 XNUMX строк кода и удалено XNUMX XNUMX строк).
Основные новинки ядра Linux 6.7
Интеграция файловой системы Bcachefs
Linux 6.7 использует код файловой системы Bcachefs, который пытается достичь производительности, надежности и масштабируемости XFS в сочетании с элементами расширенной функциональности, присутствующей в Btrfs и ZFS.
Бкэшефс поддерживает такие функции, как включение нескольких устройств на одном разделе многослойные конструкции накопителей (нижний уровень с часто используемыми данными на основе быстрых SSD и верхний слой с данными с менее используемых жестких дисков), репликация (RAID 1/10), кэширование, прозрачное сжатие данных (режимы LZ4, gzip и ZSTD), обрезка состояний, проверка целостности с помощью контрольных сумм, возможность хранения кодов коррекции ошибок Рида-Соломона (RAID 5/6), хранение информации в зашифрованном виде (используются ChaCha20 и Poly1305) . По производительности Bcachefs опережает Btrfs и другие файловые системы. основан на механизме копирования при записи и демонстрирует скорость работы, близкую к Ext4 и XFS.
Улучшения в Btrfs
В Linux 6.7 Для Btrfs реализован упрощенный режим квотирования. что позволяет повысить производительность, отслеживая расширения только в том подразделе, в котором они созданы, что значительно упрощает расчеты и повышает производительность, но он не позволяет совместно использовать расширения между несколькими подразделами. Кроме того, в Btrfs добавлена новая структура данных дерева полос, подходящая для сопоставления логических расширений в ситуациях, когда физическое сопоставление между устройствами не совпадает. В настоящее время эта структура используется в реализациях RAID0 и RAID1 для зонированных блочных устройств.
Прекращение поддержки архитектуры Itanium (ia64)
Se suspendió el поддержка архитектуры ia64, используемой в процессорах Intel Itanium, что это такоенас полностью приостановят в 2021 году. Intel представила процессоры Itanium в 2001 году, но архитектура ia64 не смогла конкурировать с AMD64, в основном из-за более высокой производительности AMD64 и более плавного перехода от 86-битных процессоров x32. Линус Торвальдс выразил готовность вернуть поддержку ia64 в ядро, но датолько если есть сопровождающий, который может продемонстрировать высокое качество поддержки для этой платформы вне основного ядра как минимум на год.
Непрерывная миграция изменений из ветки Rust-for-Linux
Новая версия переходит на использование версии Rust 1.73 и предлагает набор хуков для работы с рабочими очередями.
Улучшения в реализации очередей FIFO
В этой новой версии Linux 6.7 реализация облегченного механизма FIFO одиночные соединения, которые требуют спин-блокировки только для удаления из очереди в контексте процесса и обходятся без нее для атомарных добавлений в очередь в любом контексте. Кроме того, был добавлен циклический буфер objpool с масштабируемой реализацией высокопроизводительной очереди для выделения и возврата объектов.
Поддержка шифрования TLS для NVMe-TCP
В Linux 6.7 драйвер NVMe-TCP (что позволяет получить доступ к дискам NVMe по сети), Добавлена поддержка шифрования канала передачи данных с помощью TLS. (с использованием KTLS и фонового процесса) в пользовательском пространстве tlshd для согласования соединения.
Улучшена производительность планировщика пакетов.
Оптимизирована производительность планировщика пакетов fq., что позволило увеличить производительность на 5% при больших нагрузках в тесте tcp_rr (TCP Request/Response) и на 13% при неограниченном потоке UDP-пакетов.
Принятие опции аутентификации TCP
В стек TCP добавлена поддержка расширения TCP-AO, позволяющего проверять TCP-заголовки с использованием MAC-кодов, используя более современные алгоритмы HMAC-SHA1 и CMAC-AES-128 вместо доступной ранее опции TCP-MD5 на основе устаревшего алгоритма MD5. .
Из другие изменения которые выделяются:
- Добавлены новые настройки «cpuset.cpus.exclusive» и «cpuset.cpus.exclusive. Эффективный» в процессорный набор для привязки исключительно к ЦП.
- Подсистема BPF реализует поддержку исключений, которые обрабатываются как аварийный выход из программы BPF с возможностью безопасного развертывания кадров стека. Кроме того, программы BPF позволяют использовать указатели kptr в связи с ЦП.
- Для архитектур ARM32 и S390x добавлена поддержка текущего набора (cpuv4) инструкций BPF.
- Для архитектуры RISC-V возможно использование режима проверки стека Shadow-Call, доступного в Clang 17, предназначенного для защиты от перезаписи адреса возврата функции в случае переполнения буфера в стеке.
- В механизм объединения одинаковых страниц памяти добавлен новый интеллектуальный режим сканирования страниц памяти (
- В AppArmor добавлена возможность контролировать доступ к механизму io_uring и создавать пользовательские пространства имен, что позволяет выборочно разрешать доступ к этим возможностям только определенным процессам.
- Добавлен API сертификации виртуальных машин для проверки целостности процесса запуска виртуальной машины.
- Системы LoongArch поддерживают виртуализацию с использованием гипервизора KVM.
- Добавлена первоначальная поддержка прошивки GSP-RM в модуль ядра Nouveau, который используется в графическом процессоре NVIDIA RTX 20+ для перемещения операций инициализации и управления с графического процессора на сторону микроконтроллера GSP.
наконец, если вы интересно узнать о нем больше, вы можете проверить детали По следующей ссылке.