Обновление графических драйверов
В 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.
Еще 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.
В грядущей версии ядра введут патч, который оптимизирует работу ряда 64-битных игр Windows под Wine, CrossOver и Valve Proton. UMIP-инструкции выполняются в пространстве пользователя, что вызывает ошибки в работе под Wine. Новую версию Linux избавят от этого недостатка.
Разумеется, появятся свежие обновления, решающие проблему 2038 года. Разработчики регулярно вносят изменения в системные вызовы, и грядущая версия ядра не должна стать исключением.