Что нового в Linux kernel 5.3 — графические драйверы, виртуализация и модификации в сетевой подсистеме

Обновление графических драйверов

В Linux kernel 5.3 добавили поддержку GPU AMD Navi (RX5700) в драйвере amdgpu. Все бинарные микрокоды, необходимые для инициализации видеокарт, разместили (спустя какое-то время после релиза обновления) в репозитории linux-firmware.git. Ранее «бинарники» приходилось скачивать отдельно с личного сайта Алекса Дойхера (Alex Deucher), ведущего мейнтейнера amdgpu.

Также разработчики ядра улучшили работу видеокарт GPU Vega12 и Vega20, для которых добавили дополнительные возможности управления памятью и энергопотреблением.

Есть и ряд обновлений от разработчиков проекта Nouveau, отвечающих за свободные драйверы Nvidia. Они добавили поддержку Turing TU116. Это — графический процессор, устанавливаемый на карты GeForce GTX 1660 Ti. Мейнтейнер проекта отметил, что вместе с новыми определениями чипсета в драйвере Nouveau исправили ошибки, связанные с утечками памяти и работой KMS.

Пока ничего не известно о реализации реклокинга для графических карт серии GTX 900 Maxwell. Хотя в скором времени ситуация может измениться. В середине августа Nvidia передали свежую документацию для своих продуктов в open source. И информацию, необходимую для настройки автоматического управления частотой, должны предоставить позже.

Сетевая подсистема

Linux теперь поддерживает обработку IPv4 в диапазоне 0.0.0.0/8. Введение этой подсети дало возможность распределить ещё 16 млн IP-адресов. Также для IPv4 и IPv6 добавили механизм nexthop. Он повышает масштабируемость таблиц маршрутизации. По данным разработчиков ядра, новое решение загружает 740 тыс. маршрутов за 4,3 секунды.

Также межсетевой экран netfilter с nftables получил механизм ускорения фильтрации пакетов — в драйверы добавили Flow Block API. Теперь на сторону сетевых адаптеров разрешено выносить целые таблицы правил — есть поддержка простых метаданных протоколов L3 и L4, а также сопоставление по адресам и сетевым портам отправителя/получателя и типу протокола.

Виртуализация

В состав ядра включён гипервизор ACRN, который используют в IoT-устройствах и встраиваемой технике. Его развивают на основе легковесного гипервизора Intel.

Фото — Casey Horner —Unsplash

Еще Linux получил режим time travel. Он дает возможность ускорить или, наоборот, замедлить время в виртуальном окружении UML. Эта функция упрощает отладку кода, работа которого связана со временем. Дополнительно разработчики добавили параметр time-travel-start — он запускает системные часы ВМ с требуемого момента.

Новая периферия

В Linux-ядро добавили SPI-драйвер для клавиатур и трекпадов MacBook и MacBook Pro, выпускаемых с 2015 года. Apple не раскрывали документацию для SPI-стандарта, но команде разработчиков ядра удалось провести его реверс-инжиниринг и написать драйвер. Хотя работа над проектом пока не завершена — остались еще несколько команд, информация о которых зашифрована.

Также в Linux kernel 5.3 добавили поддержку: руля Saitek R440 Force Feedback, графических планшетов Ugee Rainbow CV720, Wacom MobileStudio Pro и Wacom Intuos Pro Small (2-е поколение), а также ресивера Logitech MX3000 (27 МГц).

Что убрали

Перед релизом новой версии ядра Линус Торвальдс в рассылке LKML напомнил ИТ-сообществу главное правило разработки ядра Linux: изменения не должны нарушать работу существующих приложений. После он сообщил, что решил отказаться от патча, оптимизирующего работу ext4.

Тот сокращал число обращений к накопителю, отключая упреждающее чтение таблицы inode при мелких I/O-запросах. Но оптимизация привела к неожиданной ошибке — система начала «подвисать» при запуске генератора getrandom(), который использует дисковую активность для формирования случайных чисел. Поэтому оптимизацию ext4 объявили, что сворачивают поддержку шины FMC — за неё отвечали инженеры из CERN на протяжении семи лет. FMC использовали для связывания FPGA и других устройств с интерфейсом ввода/вывода.

Систему решили переписать с нуля, так как в ней обнаружили серьезные архитектурные недостатки. Она появится в последующих релизах ядра Linux.

Что ждать в kernel 5.4

В ней обновят систему мониторинга для процессоров AMD — hwmon. Пока что, из-за ошибки разработчика аппаратного обеспечения, решение показывает неверные данные температуры для Ryzen 3000. Также в kernel 5.4 добавят поддержку системы на кристалле Qualcomm Snapdragon 855 и Intel Icelake Thunderbolt.

Фото — Marvin Heilemann — Unsplash

В грядущей версии ядра введут патч, который оптимизирует работу ряда 64-битных игр Windows под Wine, CrossOver и Valve Proton. UMIP-инструкции выполняются в пространстве пользователя, что вызывает ошибки в работе под Wine. Новую версию Linux избавят от этого недостатка.

Разумеется, появятся свежие обновления, решающие проблему 2038 года. Разработчики регулярно вносят изменения в системные вызовы, и грядущая версия ядра не должна стать исключением.