Ядро 5.19 поставляется с улучшениями в процессах, поддержкой оборудования, безопасностью и многим другим.

Выпущена новая версия ядра 5.19 , и среди наиболее заметных изменений в ней — поддержка архитектуры процессора LoongArch , интеграция патчей "BIG TCP", режим "по запросу" в fscache, удаление кода для поддержки формата a.out, возможность использования ZSTD для сжатия прошивки, интерфейс для управления перемещением памяти из пользовательского пространства, улучшенная надежность и производительность генератора псевдослучайных чисел, поддержка расширений Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) и ARM SME (Scalable Matrix Extension).

В новую версию было внесено 16401 исправление от 2190 разработчиков (в предыдущей версии было 16206 исправлений от 2127 разработчиков), размер патча: 90 МБ (изменения затронули 13847 файлов, было добавлено 1149456 строк кода, удалено 349177 строк).

Основные новости ядра 5.19

Среди наиболее заметных изменений в этой новой версии можно отметить поддержку механизма рандомизации структуры ядра при компиляции с помощью Clang 15.

Механизм Landlock , позволяющий ограничивать взаимодействие группы процессов с внешней средой, получил поддержку правил , позволяющих контролировать выполнение операций переименования файлов.

Подсистема IMA (Integrity Measurement Architecture), предназначенная для проверки целостности компонентов операционной системы с использованием цифровых подписей и хешей, была изменена и теперь использует модуль fs-verity для проверки файлов.

Логика действий была изменена путем отключения непривилегированного доступа к подсистеме eBPF . Ранее все команды, связанные с системным вызовом bpf(), были отключены, а начиная с версии 5.19 доступ сохранялся только для команд, которые не приводят к созданию объекта. При таком поведении для загрузки программы BPF требуется привилегированный процесс, но непривилегированные процессы могут взаимодействовать с ней.

Добавлена ​​поддержка резервного копирования MPTCP (MultiPath TCP) соединений в обычный TCP в ситуациях, когда некоторые функции MPTCP использовать невозможно. MPTCP — это расширение протокола TCP, которое организует работу TCP-соединения путем одновременной доставки пакетов по нескольким путям через различные сетевые интерфейсы, связанные с разными IP-адресами. Добавлен API для управления передачей MPTCP из пользовательского пространства.

Также стоит отметить, что было добавлено более 420 000 строк кода, относящихся к драйверу amdgpu , из которых примерно 400 000 строк представляют собой автоматически сгенерированные заголовочные файлы, содержащие данные для регистров ASIC в драйвере AMD GPU, а еще 22,5 000 строк обеспечивают первоначальную реализацию поддержки AMD SoC21. Общий размер драйвера для графических процессоров AMD превысил 4 миллиона строк кода. Помимо SoC21, драйвер AMD включает поддержку SMU 13.x (System Management Unit), обновленную поддержку USB-C и GPUVM, а также готов к поддержке платформ следующего поколения RDNA3 (RX 7000) и CDNA (AMD Instinct).

Контроллер i915 (Intel) обладает улучшенными возможностями управления питанием, а также добавляет идентификаторы для графических процессоров Intel DG2 (Arc Alchemist), используемых в ноутбуках, обеспечивает начальную поддержку платформы Intel Raptor Lake-P (RPL-P), добавляет информацию о графических картах Arctic Sound-M, реализует ABI для вычислительных модулей, добавляет поддержку карт формата Tile4 для карт DG2 и поддержку DisplayPort HDR для систем на базе микроархитектуры Haswell.

В драйвере Nouveau переключились на использование драйвера drm_gem_plane_helper_prepare_fb , и некоторым структурам и переменным были присвоены статические значения. Что касается использования исходного кода модуля ядра в Nouveau, который NVIDIA сделала открытым, работа до сих пор была сосредоточена на выявлении и устранении ошибок. В будущем планируется использовать опубликованную прошивку для повышения производительности драйвера.

Разработаны возможности для решения проблемы обнаружения раздельных блокировок , возникающих при доступе к невыровненным данным в памяти. Это происходит потому, что во время выполнения атомарной инструкции данные пересекают две строки расширенного кэша ЦП. Такие блокировки приводят к значительному снижению производительности. Ранее ядро ​​по умолчанию выдавало предупреждение с информацией о процессе, вызвавшем блокировку; теперь же проблемный процесс будет дополнительно замедлен для сохранения производительности остальной части системы.

Добавлена ​​поддержка механизма IFS (In-Field Scan), реализованного в процессорах Intel, который позволяет запускать низкоуровневые диагностические тесты ЦП , способные обнаруживать проблемы, не выявляемые обычными способами на основе кодов коррекции ошибок (ECC) или битов четности.

Среди других существенных изменений в новой версии можно отметить следующие:

  • Добавлен драйвер контроллера NVMe, используемого в компьютерах Apple на базе чипа M1.
  • добавлена ​​начальная поддержка архитектуры набора инструкций LoongArch, используемой в процессорах Loongson 3 5000, которая реализует новую RISC ISA, аналогичную MIPS и RISC-V.
  • Архитектура LoongArch доступна в трех версиях: 32-разрядная упрощенная (LA32R), 32-разрядная обычная (LA32S) и 64-разрядная (LA64).
  • Добавлена ​​возможность встраивания файла bootconfig в ядро.
  • 'CONFIG_BOOT_CONFIG_EMBED_FILE=”/ПУТЬ/К/BOOTCONFIG/ФАЙЛ”'.
  • Удалена поддержка специфичных для x86 вариантов загрузки: nosp, nosmap, nosmep, noexec и noclflush).
  • Прекращена поддержка устаревшей архитектуры ЦП h8300 (Renesas H8/300), которая давно не поддерживалась.

Наконец, если вас интересует более подробная информация об этой новой версии, вы можете найти ее по следующей ссылке.


Добавить в качестве предпочтительного источника в Google