С момента выхода ядра Linux 5.17 прошло всего лишь около пары месяцев, и сейчас готов новый релиз, уже Linux 5.18. Несмотря на относительно небольшой временной промежуток между двумя релизами, изменений, дополнений и исправлений весьма солидное количество.
Так, в новой версии насчитывается 16206 исправлений от 2127 разработчиков. Общий размер патча составляет 108 МБ, при этом изменениями были затронуты 14235 файлов, добавлено 1340982 строк кода, удалено 593836 строк. Подробнее о новом релизе — под катом.
Железо
- Среди наиболее заметных изменений в этом разделе — добавление поддержки чипов Intel Alderlake N и дискретных видеокарт Intel DG2-G12 (Arc Alchemist).
- Кроме того, добавлена поддержка ряда чипов, включая ARM SoС Qualcomm Snapdragon 625/632, Samsung Exynos 850, Samsung Exynos 7885, Airoha EN7523, Mediatek mt6582, Microchip Lan966, Renesas RZ/G2LC, RZ/V2L, Tesla FSD, TI K3/AM62 и i.MXRTxxxx.
- Также была добавлена поддержка ARM-устройств и плат Broadcom (Raspberry Pi Zero 2 W), Qualcomm (Google Herobrine R1 Chromebook, SHIFT6mq, Samsung Galaxy Book2), Rockchip (Pine64 PineNote, Bananapi-R2-Pro, STM32 Emtrion emSBS, Samsung Galaxy Tab S, Prestigio PMT5008 3G tablet), Allwinner (A20-Marsboard), Amlogic (Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 и OSMC Vero 4K+), Aspeed (Quanta S6Q, ASRock ROMED8HM3), Marvell MVEBU/Armada (Ctera C200 V1 и V2 NAS), Mstar (DongShanPiOne, Miyoo Mini), NXP i.MX (Protonic PRT8MM, emCON-MX8M Mini, Toradex Verdin, Gateworks GW7903).
- Нельзя пропустить и добавление поддержки таких звуковых систем и кодеков, как AMD PDM, Atmel PDMC, Awinic AW8738, i.MX TLV320AIC31xx, Intel CS35L41, ESSX8336, Mediatek MT8181, nVidia Tegra234, Qualcomm SC7280, Renesas RZ/V2L, Texas Instruments TAS585M.
- Еще в драйвере amdgpu по умолчанию включили технологию адаптивной синхронизации FreeSync. Она дает возможность корректировать частоту обновления изображения, что позволяет избежать проблем с «картинкой» при игре в компьютерные игры и просмотра видео.
Виртуализация и безопасность
- Один из наиболее важных моментов — добавление механизма защиты потока выполнения команд Intel IBT (Indirect Branch Tracking). Этот механизм позволяет воспрепятствовать попыткам злоумышленников использовать приемы возвратно-ориентированного программирования (ROP, Return-Oriented Programming).
- Добавлена более строгая проверка границ буферов в таких функциях, как memcpy(), memmove() и memset(). Она обычно выполняется на этапе компилляции при включении режима CONFIG_FORTIFY_SOURCE. Она позволяет блокировать все переполнения буфера в ядре, которые связаны с memcpy() примерно за три последних года.
- Также добавлена вторая часть кода обновленной реализации генератора псевдослучайных чисел RDRAND. Именно он отвечает за работу устройств /dev/random и /dev/urandom.
- Появилось новое хранилище ключей (keyring) — «machine». Оно содержит ключи владельца системы (MOK, Machine Owner Keys), которые поддерживаются в shim-загрузчике. Ключи используются, в частности, для заверения цифровой подписью тех компонентов ядра, что загружаются на стадии после начальной загрузки.
- Еще одно важное изменение — удаление поддержки асимметричных закрытых ключей для TPM, которые предложены в устаревшей версии TPM. У них ряд проблем с безопасностью, из-за которых, в том числе, они не стали слишком уж популярными.
Если вы читаете наш блог, вас могут заинтересовать эти тексты:
→ Как оптимизировать траты на аренду инфраструктуры
→ Готовый реестр контейнеров — кому нужен и как использовать
→ Как мы запустили удаленный регион облака в Узбекистане
Файловые системы, диски, ввод и вывод
- В этой секции стоит отметить добавление в файловой системе Btrfs поддержки проброса сжатых данных при выполнении таких операций, как send и receive. Сейчас приложениям, которые используют эти вызовы, дали возможность передачи сжатых данных без переупаковки. А еще — в Btrfs повышена производительность fsync.
- В режиме Direct I/O появилась возможность доступа к зашифрованным файлам при режиме scrypt inline-шифрования.
- В NFS-сервере по умолчанию включили поддержку протокола NFSv3. Сейчас именно он рассматривается в качестве всегда поддерживаемой версии NFS, а вот поддержку NFSv2, вероятно, в будущем прекратят.
- И еще одно заметное обновление — файловую систему ReiserFS перевели в разряд устаревших, так что ее могут убрать в 2025 году. Этот шаг дает возможность значительно сократить трудозатраты на сопровождение общих для файловых систем изменений, которые связаны с поддержкой нового API для монтирования, iomap и фолиантов.
- В EXT4 повышена производительность режима fast_commit и увеличена масштабируемость.
Память и сервисы
- Сейчас стартовал процесс интеграции набора патчей, что дает возможность сильно уменьшить время пересборки ядра. В первую очередь, за счет реструктуризации иерархии заголовочных файлов и сокращения числа перекрёстных зависимостей. В новом релизе появились патчи, которые оптимизируют структуру заголовочных файлов планировщика задач (kernel/sched). Результат говорит сам за себя — потребление процессорного времени при сборке кода kernel/sched/ сократилось на 61%, а фактическое время уменьшилось на 3.9% (с 2.95 до 2.84 сек).
- Увеличена производительность планирования задач на на процессорах AMD с микроархитектурой Zen.
- Появился механизм отслеживания (probe) вызовов функций — fprobe. Он дает возможность работать с одним обработчиком сразу для нескольких функций.
- Убрана поддержка старых процессоров ARM (ARMv4 и ARMv5), не оснащённых блоком управления памятью (MMU). Зато сохранена поддержка систем ARMv7-M без MMU.
- Нет и поддержки RISC-подобной архитектуры NDS32, которая ранее использовалась в процессорах компании Andes Technologies.
- Появилась поддержка поддержка механизма Intel HFI (Hardware Feedback Interface).
- Кроме того, в релиз добавлен драйвер для механизма Intel SDSi (Software-Defined Silicon). Он позволяет управлять включением дополнительных возможностей в процессоре.
- Также появился и драйвер amd_hsmp для поддержки интерфейса AMD HSMP (Host System Management Port). Он предоставляет доступ к функциям управления процессоров через набор регистров, которые есть в серверных процессорах AMD EPYC.
Сеть
- Ускорен процесс удаления сетевых пространств имен. Это важно для крупных систем с большим объемом трафика.
- Продолжается работа по интеграции в сетевой стек средств для отслеживания отбрасывания пакетов.
- Появилась поддержка привязки портов в реализации сетевых мостов. В этом случае пользователь может отправлять трафик через порт лишь с разрешенного MAC-адреса.
- В подсистеме XDP (eXpress Data Path) добавлена поддержка фрагментированных пакетов, размещаемых в нескольких буферах.
С полным списком обновлений, изменений и дополнений можно ознакомиться вот по этой ссылке.
Если нужно полностью свободное ядро, которое очищено от элементов прошивок и драйверов с несвободными компонентами, то вот ссылка. Как обычно, пакет собрала команда Фонда свободного ПО, которая провела чистку ряда драйверов, включая панели, звуковые чипы, SoC и т.п.
Автор: Alexander