Прошло совсем немного времени со времени релиза 5.18, и Линус Торвальдс представил новый
— 5.19. Как всегда, исправлений огромное количество — свыше 16 000 от 2190 разработчиков. В прошлом релизе было примерно столько же, так что в мире Linux, можно сказать стабильность.
Объем патча составил 90 МБ, при этом изменены в разной степени почти 14 000 файлов. Добавлено 1,14 млн строк кода, удалено при этом 349 177 тыс. Что касается фокуса изменений, то активнее всего велась работа с драйверами устройств, это около 39% всех изменений, еще около 21% — обновление кода, связанное с различными аппаратными архитектурами. Ну и уже меньше изменений, связанных с сетевым стеком, файловыми системами и внутренними подсистемами. Под катом подробности о главных новшествах и апдейтах.
Железо
Поскольку больше всего внимания разработчики уделили аппаратному обеспечению, то с него и начнем.
- Главное, на что обратило внимание комьюнити — драйвер amdgpu, здесь сразу 400+ тысяч строк, которые связаны с работой над ним. Подавляющее большинство, правда, являются автоматически сгенерированными заголовочными файлами с данными для регистров ASIC в драйвере для GPU AMD. Еще почти 23 тыс. строк связаны с реализацией поддержки AMD SoC21, начальную его реализацию. Ну и если говорить об общем размере драйвера, о котором идет речь, то его размер превысил 4 млн строк кода. Стоит отметить также, что в этот драйвер теперь добавлена поддержка SMU 13.x (System Management Unit), а также обновлена поддержка USB-C и GPUVM.
- Второй по важности момент — это драйвер i915 (Intel), где здорово расширены возможности, которые так либо иначе связаны с управлением энергопотреблением. Кроме того, добавены GPU Intel DG2 (Arc Alchemist) для лэптопов, внедрена поддержка платформы Intel Raptor Lake-P (RPL-P), а также плюс появилась информация о графических картах Arctic Sound-M. Из дополнительных апдейтов — реализация ABI для вычислительных движков, а для DG2 появилась поддержка Tile4. Ну и еще один из приятных моментов — системы Haswell, наконец, получили поддержку DisplayPort HDR.
- Третий драйвер, о котором стоит подробно поговорить — Nouveau. Здесь теперь используется обработчик drm_gem_plane_helper_prepare_fb, в ряде случаев применяется статическое выделение памяти.
Виртуализация и безопасность
- Прежде всего, в EFI появилась возможность безопасной передачи гостевыми системам секретной информации без ее последующего раскрытия хост-системе. Эти данные предоставляются через security/coco в securityfs.
- Исправлена уязвимость, связанная с обходом защиты через манипуляции с отладчиком ядра в режиме защиты Lockdown. Стоит напомнить, что он ограничивает доступ root-пользователя к ядру, блокируя пути обхода UEFI Secure Boot.
- Добавлены исправления, которые позволяют усилить надежность и производительность генератора псевдослучайных чисел. Кстати, если вам интересна эта тема, то мы писали о том, как в Cloudflare усиливают защиту при работе с псевдослучайными числами (с Linux та статья никак не связана, но тем не менее).
- Разработчики изменили логику действий при отключении непривилегированного доступа к подсистеме eBPF. Ранее в этом случае отключались практически все команды, которые связаны с системным вызовом bpf(). Начиная же с новой версии ядра доступ оставлен только к тем командам, которые не приводят к созданию объектов.
- Появилась поддержка механизма Intel TDX (Trusted Domain Extensions), который позволяет блокировать попытки стороннего доступа к зашифрованной памяти виртуальных машин.

Файловые системы, диски, ввод и вывод
Много изменений, что, конечно, неудивительно. Вот только некоторые из наиболее интересных:
- Так, файловая система EROFS, которая предназначена для работы с разделами, доступными лишь для чтения, переведена на работу с подсистемой fscache, которая обеспечивает кэширование данных. Благодаря этому решению повысилась производительность тех систем, где большое число контейнеров запускается на базе EROFS.
- В fscache появился режим чтения по требованию («on-demand»), который задействован для оптимизации EROFS. Он введен не просто так, а для организации кэширования чтения из образов ФС, которые находятся в локальной системе. Это способ делегирует функции извлечения данных и их записи в кэш отдельному фоновому процессу, который выполняется в пространстве пользователя.
- XFS теперь предоставляет возможность хранения миллиардов расширенных атрибутов в i-node. Максимальное их количество увеличено с 4 миллиардов до сразу 247.
- А еще оптимизирована работа с блокировками в Btrfs, что дает возможность увеличить производительность системы примерно на 7% в случае прямой записи nowait.
- В NFS-сервере появился новый режим продления сохранения состояния блокировки, которая выставлена внезапно замолчавшим клиентом, который не отвечает на запросы. Очистку блокировки можно теперь задержать вплоть до 24 ч.
- В драйвер для ФС FAT32 добавлена поддержка получения сведений о времени создания файла через системный вызов statx с реализацией более эффективного и функционального варианта stat().
- А еще внесены заметные оптимизации в драйвер exFAT, которые связаны с обеспечением одновременной очистки группы секторов при активном режиме 'dirsync'.
- Ну и еще одно заметное изменение — в составе ядра появилось первое корректирующее обновление драйвера ntfs3. С момента его включения в состав ядра 5.15 это первый, так сказать, апдейт.

Память и сервисы
- Очень приметный апдейт — начало работы с архитектурой LoongArch, процессора, разработанного китайцами. Это пока что лишь начальная поддержка архитектуры, но событие значимое. Архитектура LoongArch доступна в трёх вариантах: урезанный 32-разрядный (LA32R), обычный 32-разрядный (LA32S) и 64-разрядный (LA64).
- А вот поддержку устаревшей архитектуры CPU h8300 (Renesas H8/300), наоборот, убрали.
- Появилась возможность добавления в ядро файла bootconfig, который позволяет, кроме опций командной строки, определять параметры работы ядра через файл с настройками. Встраивание осуществляется посредством опции CONFIG_BOOT_CONFIG_EMBED_FILE="/PATH/TO/BOOTCONFIG/FILE"'.
- Для m68k (Motorola 68000) реализована виртуальная машина (симулятор платформы), основанная на эмуляторе Android Goldfish.
- Для архитектуры AArch64 появилась поддержка расширений Armv9-A SME (Scalable Matrix Extension).
- Стоит упомянуть также упреждающий механизм вытеснения памяти, который поддерживает управление из пространства пользователя посредством файла memory.reclaim.
- Еще интересное — для архитектуры RISC-V обеспечена поддержка запуска 32-разрядных исполняемых файлов на 64-разрядных системах.
Сеть
- Здесь есть, о чем поговорить. Например, в состав ядра включили серию патчей BIG TCP, которые дают возможность увеличить максимальный размер пакета TCP-пакета до 4ГБ для оптимизации работы высокоскоростных внутренних сетей дата-центров.
- А еще продолжается работа по интеграции средств для отслеживания причин отбрасывания пакетов (коды reason).
- Ну и из важного — добавление поддержки отката соединений MPTCP (MultiPath TCP) на использование обычного TCP, в ситуациях, когда определённые возможности MPTCP не могут быть использованы.
На этом все, если вдруг о чем-то важном не упомянули — пишите в комментариях. И да, мы решили опубликовать статью о новом релизе спустя неделю, чтобы получить фидбек от сообщества. Как вам ядро 5.19, есть ли проблемы, если да, насколько они критичны? Или, наоборот, все нравится и все ок?
Напоследок — пара интересных фактов. Во-первых, следующий релиз уже будет выпущен под нумером 6.0. А во-вторых, Линус рассказал о том, что использовал ноутбук Apple на базе архитектуры ARM64 (Apple Silicon) для формирования нового релиза. В качестве ОС — Asahi Linux.
С полным списком исправлений и нововведений можно ознакомиться
вот по этой ссылке.
Эх. Жаль только поддержку intel маков из 19-ых годов они не стремятся допиливать (оно и понятно), ибо процесс напоминает установку хакинтоша на неподдерживаемое железо и с полу-живым результатом. Но это ладно, это проблемы маководов. Не думал правда, что не смогу поставить линукс на мак :) вот так и "владеем" купленным железом.
Прошка 15-го года работает как часы (после обработки рашпилем) (кроме SDcard-ридера, который теряется до выключения после первого же засыпания).
Можно попробовать способ - https://gist.github.com/samuelsadok/6d7b3e3015d3370a92ed4702e4d3c4b5?permalink_comment_id=3134437#gistcomment-3134437
Мне на MBP Pro Late 2013 помогло. Сделал себе скрипт restart-sd.sh, запускающего эту утилиту. Можно ещё по идее по событиям питания его запускать, чтобы автоматом включался после просыпания, но у меня не получилось, поэтому руками запускаю.
P.S. Но за результат не ручаюсь, автор там предупреждает об осторожности:) Но в треде есть люди, у которых на модели 14-го года работает.
Пробовал уже. Увы, не работает.
Linux Mint, домашние машинки. И десктор (самосбор на базе AMD) и моноблок жены (НР на базе AMD) работают после обновления без нареканий. Драйвер NVIDIA тоже скомпилился/установился без проблем
2022 год, все также основная часть допиливания ядра это драйверы gpu...
и что в этом плохого?
и, слава случаю, это так! не было бы этого, то и открытые дрова АМД не обгоняли бы проприетарщину. Забили бы на 1,5% (а то и меньше, т.к. многим Linux_не_для_игорь) то и сидели бы с голой попой. А потому, мне, домохозяину, Окна не нужны.
так рад, так рад. Попробую сегодня накатить :)
А кто-нибудь в курсе, что-нибудь улучшилось с поддержкой NVIDIA карт? После недавнего частичного раскрытия кода нвидией, вроде, обещали, что вот теперь-то их карты будут ух как поддерживаться. Есть движение или пока всё так же лучше брать amd?
Имхо, как минимум ещё несколько лет лучше брать АМД. Nouveau развивается и, если не для игорей и прочих 3д, то работает сносно, но amdgpu пока намного стабильнее и фичастее.
Я на АМД (5300u) ноут накатил пока 22.04 убунту. Может потом на Минт поменяю, но вряд-ли это принципиально. Вроде бы всё норм работает и amdgpu встал и 3D работает (по паре тестов даже чуть быстрее чем под Windows на том же железе, но другого производителя). Но я не пойму как мне добиться стабильного ускорения видео кодирования/декодирования через GPU. Если декодирование ещё как-то включается на части браузеров, то как в ffmpeg использовать amf или vdpau для кодирования пока не разобрался. Ядро пока 5.15.
У меня на Gentoo кодирование/декодирование видео успешно работает на АМДшной карте через vaapi. vdpau вроде не поддерживается напрямую (но это неточно).
Олсо, vdpau - технология только для декодирования, но не кодирования, емнип.
Да, перепутал. В общем на разобраться уже) в отпуске нет времени ????