После двух месяцев разработки Линус Торвальдс представил ядро Linux версии 5.3 с которым между изменения самый известный Выделена поддержка AMD Navi GPU, Процессоры Zhaoxi и технология управления питанием Intel Speed Select и многое другое.
Анонс новой версии, Линус напомнил всем основным сторонникам регулирования разработка ядра сохранить такое же поведение для компонентов пользовательского пространства. Изменения ядра ни в коем случае не должны нарушать уже запущенные приложения и приводить к регрессу на уровне пользователя.
При этом нарушение поведения может вызвать не только изменение ABI, удаление устаревших кодов или ошибок, но и косвенный эффект правильной работы полезных улучшений.
Что нового в ядре Linux 5.3
Из новинок, которые выделяются в этой новой версии ядра Linux 5.3, мы можем найти: Драйвер Amdgpu добавляет начальную поддержку графических процессоров AMD NAVI (RX5700), который включает в себя базовый контроллер, код взаимодействия дисплея (DCN2), GFX и поддержку вычислений (GFX10), SDMA 5 (система DMA0), управление питанием и мультимедийные кодеры / декодеры (VCN2).
Амдгпу также улучшена поддержка видеокарт Vega12 и Vega20, для которого были добавлены дополнительные возможности памяти и управления питанием.
В драйвере DRM видеокарт Intel для чипов Icelake реализован новый многосегментный режим гамма-коррекции. Добавлена возможность отображения через DisplayPort в формате YCbCr4: 2: 0.
Память и системные службы
В ядре 5.3 Представляем поддержку технологии Intel Speed Select Power Management, что доступно на некоторых серверах с процессорами Intel Xeon. Эта технология позволяет вам устанавливать производительность разделов и параметры производительности для разных ядер ЦП, позволяя определять приоритеты производительности для задач, выполняемых на определенных ядрах, жертвуя производительностью на других ядрах.
С другой стороны, в ядре Linux 5.3 процессы в пользовательском пространстве могут ждать короткое время без использования циклов используя инструкцию umwait. Эта инструкция, наряду с инструкциями umonitor и tpause, будет предложена на следующих микросхемах Intel «Tremont» и позволит реализовать задержки, которые экономят энергию и не влияют на производительность других потоков при использовании Hyper Threading.
Для архитектуры RISC-V добавлена поддержка больших страниц памяти. (большие страницы).
Дисковая подсистема, ввод-вывод и файловые системы
Для файловой системы XFS реализована опция многопоточного обхода inode. (например, при проверке квот). Добавлены новые ioctl BULKSTAT и INUMBERS, обеспечивающие доступ к функциям, появившимся в пятой редакции формата FS, таким как время рождения inode и возможность устанавливать параметры BULKSTAT и INUMBERS для каждой группы AG (группы назначения).
В то время как для файловой системы Ext4 добавлена поддержка пустых каталогов (несвязанные блоки). Флаг i обработан для открытых файлов (запрет записи в ситуации, если флаг был установлен, когда файл уже был открыт).
F2FS добавляет возможность ограничить сборщик мусора при работе в режиме checkpoint = disabled.
Добавлена возможность размещения файла подкачки на F2FS с прямым вводом-выводом. Для всех пользователей добавлена поддержка исправления файла и назначения блоков для этих файлов.
Виртуализация и безопасность
Ядро включает гипервизор для встроенных устройств ACRN, который написан с учетом готовности задач в реальном времени и пригодности для использования в критически важных системах. ACRN обеспечивает минимальные накладные расходы, обеспечивает низкую задержку и адекватную реакцию при взаимодействии с оборудованием.
В пользовательский режим Linux добавлен режим, который позволяет замедлять или ускорять время в виртуальной среде UML, чтобы упростить отладку кода, связанного со временем. В дальнейшем, добавлен начальный параметр что позволяет запускать системные часы с определенной точки в формате эпох.
Netfilter для nftables добавляет поддержку механизмов фильтрации Пакеты с аппаратным ускорением, использующие Flow Block API, добавленные к драйверам. Полные таблицы правил со всеми строками можно переносить рядом с сетевыми адаптерами. Включение осуществляется путем привязки NFT_TABLE_F_HW к таблице.
Поддерживаются простые метаданные для протоколов уровня 3 и 4, действия принятия / отклонения, сопоставление по IP, сетевым портам отправителя / получателя и типу протокола.