Всего через два месяца после выхода предыдущего релиза Линус Торвальдс представил релиз Linux 6.3, о чем уже писали на Хабре. Над ним пришлось изрядно потрудиться: в новой версии 15637 исправлений от 2055 разработчиков. Размер патча составил 76 МБ, ну а изменения затронули 14296 файлов, добавлено 1023183 строк кода, удалено 883103 строк.
Что касается основных изменений, то главное — обновление ARM-платформ и драйверов графики, продолжение работы по интеграции Rust, поддержка создания HID-драйверов и многое другое. Подробности — под катом.
Железо
- На данный момент проведена чистка графических драйверов. В первую очередь, изменения коснулись: i810 (старые интегрированные видеокарты Intel 8xx), mga (Matrox GPU), r128 (ATI Rage 128 GPU, включая карты Rage Fury, XPERT 99 и XPERT 128), savage (S3 Savage GPU), sis (Crusty SiS GPU), tdfx (3dfx Voodoo) и via (VIA IGP), которые были объявлены устаревшими в 2016 году и не поддерживаются в Mesa с 2012 года.
- Кроме того, удалены драйверы фреймбуфера (fbdev) omap1, s3c2410, tmiofb и w100fb.
- Есть и добавления новинок. Так, например, в драйвере i915 (Intel) расширена поддержка дискретных видеокарт Intel Arc (DG2/Alchemist), реализована предварительная поддержка GPU Meteor Lake, включена поддержка GPU Intel Xe HP 4tile.
- Также в драйвер amdgpu разработчики добавили поддержку технологии AdaptiveSync и возможность использования с несколькими дисплеями режима защиты от перехвата выводимых на экран данных (Secure Display). Обновлена поддержка DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x и DP 2.1.
- А в драйвер msm (GPU Qualcomm Adreno) добавлена поддержка платформ SM8350, SM8450 SM8550, SDM845 и SC8280XP.
- Еще немножко обновлений. Так, разработчики реализовали драйвер pata_parport для IDE-накопителей, подключаемых через параллельный порт. В итоге появилась возможность удалить из ядра старый драйвер PARIDE и модернизировать подсистему ATA. Ограничением нового драйвера является невозможность одновременного подключения принтера и диска через параллельный порт.
- Не обошли вниманием и новые беспроводные модули. Так, добавлен драйвер ath12k для беспроводных карт на чипах Qualcomm с поддержкой Wi-Fi 7. Добавлена поддержка беспроводных карт на чипах RealTek RTL8188EU.
- А еще — появилась поддержка большого количества плат с чипами на базе ARM64. Среди новинок — Samsung Galaxy tab A (2015), Samsung Galaxy S5, BananaPi R3, Debix Model A, EmbedFire LubanCat 1/2, Facebook Greatlakes, Orange Pi R1 Plus, Tesla FSD, а также устройства на базе SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 и SDM632, Rockchips RK3128 TV box, RV1126 Vision, RK3588, RK3568, RK3566 и RK3328, TI K3 (AM642/AM654/AM68/AM69).
Диски и файлы
- Для того, чтобы снизить фрагментацию групп блоков в Btrfs, разработчики предусмотрели разделение экстентов по размеру при выделении блоков. Другими словами, практически любая группа блоков теперь ограничивается мелкими (до 128KB), средними (до 8 МБ) и крупными экстентами. А еще — проведена оптимизация производительности, в результате чего удалось ускорить операцию send вплоть до 10 раз. Такого значительного результата удалось достичь за счёт кэширования utime для каталогов и выполнения команд только при необходимости.
- Что касается файловой системы ext4, то повышена ее производительность, в первую очередь, за счет одновременного выполнения несколькими процессами операций прямого ввода/вывода в заранее выделенные блоки.
- В NFS добавлена поддержка шифрования данных с применением алгоритма AES-SHA2.
- Ну а в f2fs оптимизирована читаемость кода. В частности, решены важные проблемы, которые связаны с атомарной записью и новым кэшем экстентов.
Память и системные сервисы
- В этом релизе ядра разработчики провели чистку кода, причем довольно тщательную. Так, удален код, который связан с устаревшими и не используемыми более ARM-платами. Только благодаря одному этому шагу размер исходных текстов ядра сократился на 150 тыс. строк. Всего было удалено около 40 старых ARM-платформ.
- Также добавлена возможность писать драйвера для устройств ввода с интерфейсом HID (Human Interface Device), реализуемых в форме BPF-программ.
- Хорошая новость для любителей Rust. Разработчики продолжили процесс переноса из ветки Rust-for-Linux дополнительной функциональности, связанной с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра.
- И еще — в User-mode Linux на системах x86-64 реализована поддержка кода, написанного на языке Rust.
- Добавлена поддержка инструкций SME 2 (Scalable Matrix Extension) для процессоров ARM.
- Кроме того, добавлена поддержка механизма BPF trampoline для архитектур s390x и RISC-V RV64.
- Ну а для чипов на базе RISC-V реализовано использование инструкций «ZBB» для ускорения операций со строками.
- Разработчики не обошли стороной и китайские чипы. Так, для процессоров на базе архитектуры LoongArch реализована поддержка рандомизации адресного пространства ядра (KASLR), изменения размещения ядра в памяти (relocation), аппаратных точек останова и механизма kprobe.
- Ну а от поддержки сборки ядра компилятором Intel ICC пришлось избавиться, поскольку она уже достаточно много времени была нерабочей. Проблему никто так и не решил.
Виртуализация и безопасность
- Стоит отметить важный момент — в KVM для систем x86 добавлена поддержка расширенных гипервызовов Hyper-V. Кроме того, обеспечен их проброс в обработчик, который работает в хост-окружении в пространстве пользователя. Это изменение дало возможность реализовать поддержку вложенного запуска гипервизора Hyper-V.
- Устранена уязвимость, которая дает возможность обойти защиту от атак Spectre v2 при применении технологии одновременной многопоточности (SMT или Hyper-Threading).
- Стоит снова вспомнить архитектуру ARM64 — для нее добавлена сборочная цель «virtconfig». При ее выборе активируется минимальный набор компонентов ядра, который нужен для загрузки в системах виртуализации.
- Ну и еще — добавлена поддержка встроенных в процессоры AMD Ryzen устройств CRB TPM2 (Command Response Buffer), основанных на технологии Microsoft Pluton.
Сеть и все, что с ней связано
- Разработчики убрали поддержку API «wireless extensions» для управления беспроводными интерфейсами WiFi 7 (802.11be). Сделано это по той причине, что API не отрабатывает все необходимые настройки.
- Добавлена возможность обработки смешанных потоков для MPTCP (MultiPath TCP). Речь, в первую очередь, о тех потоках, где используются протоколы IPv4 и IPv6.
- Появился новый новый sysctl-параметр default_rps_mask. Через него можно задать применяемую по умолчанию конфигурацию RPS (Receive Packet Steering).
- Разработчики убрали поддержку дисциплин обработки очередей для ограничения трафика CBQ (class-based queuing), ATM (ATM virtual circuits), dsmark (differentiated service marker), tcindex (traffic-control index) и RSVP (resource reservation protocol).
- Что касается ICMP, то здесь добавлены счетчики IcmpOutRateLimitGlobal, IcmpOutRateLimitHost и Icmp6OutRateLimitHost (nstat -sz "*RateLimit*") для отслеживания состояния ограничения интенсивности пакетов (rate limit).
Ну и как всегда, в открытом доступе появился вариант свободного ядра 6.3 — Linux-libre 6.3-gnu. Он создан силами латиноамериканского Фонда свободного ПО. В частности, для выпуска свободного ядра были почищены блобы в новых драйверах ath12k, aw88395 и peb2466, а также в новых файлах devicetree для устройств qcom на базе архитектуры AArch64, а также выполнена чистка и других объектов.
Возможно, эти тексты тоже вас заинтересуют:
→ Как подключить платежную систему с Payments к Telegram
→ Облако с государственной аттестацией: как пользоваться гибкостью виртуализации и сответствовать приказам ФСТЭК
→ Способы организации инфраструктуры с базами данных: от простого к сложному и эффективному
Кто уже опробовал новинку — все ли прошло хорошо и гладко после обновления? Проблем не было?
Комментарии (18)
unreal_undead2
25.04.2023 04:45Добавлена поддержка инструкций SME 2 (Scalable Matrix Extension) для процессоров ARM
Вопрос знатокам - что конкретно имеется в виду? SME2 добавляет в контекст что-то помимо того, что было в SME?
PS Пока модерировали коммент, разобрался - добавили ZT0 для поддержки LUT.
ss-nopol
25.04.2023 04:45А еще — проведена оптимизация производительности, в результате чего удалось ускорить операцию send вплоть до 10 раз.
Это же как оно тормозило!
unreal_undead2
25.04.2023 04:45Меня скорее ускорение send в контексте файловой системы удивило. Но да, у них есть свой btrfs-send.
HSerg
25.04.2023 04:45+1Судя по фразе "...за счёт кэширования utime.." - все у кого тормозило уже давно используют
noatime
.
TyVik
Зато обошли стороной отечественных разработчиков потому что "Нам некомфортно принимать патчи от вашей организации или связанные с произведенным ей оборудованием".
vassabi
не переживайте, как только закончится "вобла", тогда и патчи снова будут принимать.
AAbrosov
Может вы и сезон, в течение которого проводится интенсивный лов рыбы ограничить хотите?
vassabi
я - за сменямость власти (как минимум - сменяемость персоналий).
также - за местное самоуправление на местах и за широкое представительство народа среди депутатов (чтобы люди сами могли себе устанавливать сроки лова рыбы в том числе).
khajiit
И чтобы нерестились за рыбу тоже сами )
vassabi
я думаю, что люди способны не только А) выловить вообще всю рыбу , но и наоборот - Б) начать выращивать рыбу в очень больших масштабах промышленным образом.
(если только в таком поведении (А или Б) есть значительная финансовая выгода)
tbp2k5
С моей дилетантской точки зрения, если сделать "шаг назад" и взглянуть глобальнее, мне кажется что патч под "Байкал" в ядре не нужен никому: судя по тестам, на открытом рынке "Байкал" не конкурентоспособный, а для закрытого рынка (для вояк например) — нет никакого смысла тянуть мертвый код в публичное ядро:
odilovoybek
Все же понимают почему... Это чтобы не получить хейта и чтобы не было таких постов аля "Линукс ввела в основной код изменения российских разработчиков". Если смотреть на это глобально и не из только России, то это реальная проблема для дальнейшего развития.
MountainGoat
Перевожу: "Нам в жабу нанимать юриста за тыщи баксов, чтобы он определил, легально ли нам принимать патчи, официально предоставленные от компании под санкциями"
vassabi
хм. а не подскажете, кому именно "в жабу" нанимать юриста - программисту или организации (и какой именно) ?
потому что я до сих пор думал, что там только Линус на зарплате, а остальные - волонтеры "за спасибо" (т.е. они живут на деньги разных фирм, а не на зп от Линукса)
unreal_undead2
Отвечавший товарищ - @kernel.org, а не @xxx.com
dartraiden
Существует некоммерческая организация Linux Foundation, защищающая Linux путём поддержки его ключевых разработчиков и предоставления им юридических услуг. Кроме того, она распоряжается торговой маркой «Linux» и даже спонсирует существование Линуса Торвальдса.
Вполне возможно, что юристы как раз и посоветовали не принимать патчи. И там не обязательно, что они сказали "ни в коем случае не брать". Они могли, например, сказать "выглядит рискованно, у тех, кто примет патч, потенциально возможны проблемы, не советуем" (лично я бы после такого заключения не принял патчи, потому что на ровном месте взваливать на себя судебные тяжбы, на которые мне придётся тратить своё время и нервы, оно мне надо?). Это прекрасно состыкуется с ответом — "нам некомфортно принимать от вас патчи" (читай "нам некомфортно подставлять самих себя, разработчиков, под удар")
Грег в ответ на вопросы ответил, что все необходимые пояснения даны "Байкалу" и если "Байкал" сочтёт необходимым, то поделится информацией с сообществом.
torgeek
Строго говоря, Linux Foundation — это компания зарегистрирована и находится в юрисдикции США и с деньгами под контролем госорганов США. Уже только поэтому им приходится осторожничать и перестраховываться с ущемлением своих участников из других стран. К тому же большинство участников — это компании из США.
Если бы вопрос решался, как у других международных опенсорсных фондов, где-нибудь в Швейцарии. Аргентине или, даже, Китае, то результаты, скорее всего, были бы совершенно другие.
Пример прямо в статье упомянут — "Linux-libre 6.3-gnu. Он создан силами латиноамериканского Фонда свободного ПО" (это Аргентина).
Другой пример — перенос RISC-V из США в Швейцарию по настоянию участников. То есть для международных сообществ разработчиков риски и опасности нахождения в США очевидны достаточно давно.