Спецпроекты

Вышло ядро Linux 5.9 с поддержкой несуществующих процессоров Intel и AMD

ПО Свободное ПО Техника
После двух месяцев разработки состоялся релиз стабильной версии ядра Linux 5.9. Чуть менее половины всех изменений в нем так или иначе касаются драйверов устройств. К, примеру, в списке поддерживаемых Linux устройств добавились графические ускорители AMD Navi 21 и Navi 22, а также GPU Intel на основе архитектуры Rocket Lake, выход которых еще только предстоит.

Выход ядра Linux 5.9

Глава команды разработчиков Linux Линус Торвальдс (Linus Torvalds) объявил о выпуске стабильной версии ядра Linux 5.9.

Релиз включает массу изменений, в том числе начальную поддержку будущих графических процессоров Intel и AMD, инструкции FSGBASE для ускоренного переключения контекста на x86-совместимых платформах, команд для зонирования твердотельных накопителей стандарта NVMe, а также алгоритма zstd для сжатия образа ядра, что обеспечивает его более быструю загрузку.

В новую версию Linux было принято 16074 исправления от 2011 разработчиков. Причем 45% всех изменений имеют отношение к драйверам устройств, 15% – к обновлению кода, специфичного для аппаратных архитектур, 13% – к сетевому стеку, по 3% – к файловым системам и внутренним подсистемам ядра. В процессе разработки ядра Linux 5.9, который занял два месяца, было выпущено восемь релиз-кандидатов (Release Candidates, RC).

linux600.jpg
Выпущено ядро Linux 5.9

Исходный код Linux 5.9 с 11 октября 2020 г. доступен для загрузки с сайта kernel.org.

Предыдущая версия Linux, напомним, вышла в начале августа 2020 г. Работа над ней также длилась два месяца, и за это время разработчики внесли в ядро свыше 17,6 тыс. изменений, включая 1,04 млн новых строчек кода. Это было самое крупное обновление за все 29 лет существования Linux, и в него впервые в истории добавили поддержку российского процессора – Baikal T1.

Поддержка нового «железа»

В DRM-драйвере i915 для видеокарт Intel включена поддержка графических чипов (GPU) на основе микроархитектуры Rocket Lake. Ожидается, что процессоры данного семейства выйдут на рынок в I квартале 2021 г. Также в драйвер добавлена начальная поддержка дискретных графических карт Intel Xe DG1. Впервые дискретные видеокарты на архитектуре Xe Intel продемонстрировала в апреле 2019 г.

Графический драйвер AMD (amdgpu) в Linux получил начальную поддержку GPU AMD Navi 21 (Navy Flounder) и Navi 22 (Sienna Cichlid), которые должны быть представлены 28 октября 2020 г.

В свободный драйвер Nouveau для GPU Nvidia добавлена поддержка покадровой проверки целостности при помощи CRC (Cyclic Redundancy Checks).

Примечательно, что кодовая база вышеупомянутого драйвера amdgpu, по подсчетам издания Phoronix, составляет порядка 10,5% (2,71 млн строк) от исходного кода всего ядра (27,81 млн строк). Для сравнения: разработчики i915 ограничились 209 тыс. строк, а Nouveau – 149 тыс. Стоит отметить, что львиная доля (1,79 млн строк) кода amdgpu приходится на автоматически сгенерированные заголовочные файлы C.

Наконец, в новое ядро добавлена поддержка ряда смартфонов, планшетов и других устройств. Так, в списке изменений Linux 5.9 заявлена работа на смартфоне Pinephone ревизии 1.2 (выпускается Pine Microsystems на SoC Allwinner sunxi); хромбука Lenovo Ideapad Duet 10.1 на базе чипа Mediatek Helio P60t; планшетов Asus Google Nexus 7 и Acer Iconia Tab A500 на чипах Nvidia Tegra 3 и 2 соответственно; смартфонов Xiaomi Libra (Mi 4C) и Microsoft Lumia 950 под управлением однокристальных систем Snapdragon 808; смартфона Sony Experia Z5 (Snapdragon 810).

Кроме того, Linux 5.9 поддерживаются роутер Mikrotik Routerboard 3011, построенный на 32-битном чипе Qualcomm IPQ8064, и телевизионная приставка Wetek Core2 (чип Amlogic S912).

Память и системные процессы

С выходом версии 5.9 в Linux появилась поддержка инструкции FSGSBASE для x86-совместимых процессоров. Она позволяет запущенным приложениям обращаться к регистрам процессора FS/GS напрямую из пользовательского пространства, минуя посредничество ядра. Поддержка FSGSBASE может повысить производительность процессоров Intel и AMD, особенно в таких областях как переключение контекста.

Также разработчиками добавлена поддержка сжатия образа ядра с применением алгоритма Zstandard (zstd) Яна Колле (Yann Collet). В сравнении с lzma2, используемом для этих целей по умолчанию, zstd обеспечивает более быструю распаковку образа ядра, тем самым сокращая общее время его загрузки.

Диски и файловые системы

Для SSD стандарта NVMe в ядро добавлена поддержка команд зонирования накопителя (ZNS). Применение ZNS позволяет программным способом управлять размещением данных на накопителе. Данная технология, как отмечает Phoronix, позволяет добиться более низкой задержки при считывании/записи данных, повышенной пропускной способности, а также увеличить срок службы накопителя. При ее использовании ПО, а не исключительно контроллер накопителя могут определять, в какой именно диапазон блоков устройства попадут записываемые данные.

В Linux 5.9 реализована поддержка расширенных атрибутов файлов (xattr) на уровне сервера и клиента NFSv4. Оптимизированы файловые системы Btrfs, XFS и Ext4. В частности, улучшена скорость монтирования крупных разделов Ext4 за счет упреждающей загрузки битовых карт распределения блоков.