Всего через два месяца после выхода предыдущего релиза Линус Торвальдс представил релиз 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)


  1. TyVik
    25.04.2023 04:45
    +4

    Зато обошли стороной отечественных разработчиков потому что "Нам некомфортно принимать патчи от вашей организации или связанные с произведенным ей оборудованием".


    1. vassabi
      25.04.2023 04:45
      +7

      не переживайте, как только закончится "вобла", тогда и патчи снова будут принимать.


      1. AAbrosov
        25.04.2023 04:45

        Может вы и сезон, в течение которого проводится интенсивный лов рыбы ограничить хотите?


        1. vassabi
          25.04.2023 04:45
          -1

          я - за сменямость власти (как минимум - сменяемость персоналий).

          также - за местное самоуправление на местах и за широкое представительство народа среди депутатов (чтобы люди сами могли себе устанавливать сроки лова рыбы в том числе).


          1. khajiit
            25.04.2023 04:45

            чтобы люди сами могли себе устанавливать сроки лова рыбы в том числе

            И чтобы нерестились за рыбу тоже сами )


            1. vassabi
              25.04.2023 04:45
              +1

              я думаю, что люди способны не только А) выловить вообще всю рыбу , но и наоборот - Б) начать выращивать рыбу в очень больших масштабах промышленным образом.

              (если только в таком поведении (А или Б) есть значительная финансовая выгода)


      1. tbp2k5
        25.04.2023 04:45
        +2

        С моей дилетантской точки зрения, если сделать "шаг назад" и взглянуть глобальнее, мне кажется что патч под "Байкал" в ядре не нужен никому: судя по тестам, на открытом рынке "Байкал" не конкурентоспособный, а для закрытого рынка (для вояк например) — нет никакого смысла тянуть мертвый код в публичное ядро:


        Всего было удалено около 40 старых ARM-платформ.


    1. odilovoybek
      25.04.2023 04:45
      +1

      Все же понимают почему... Это чтобы не получить хейта и чтобы не было таких постов аля "Линукс ввела в основной код изменения российских разработчиков". Если смотреть на это глобально и не из только России, то это реальная проблема для дальнейшего развития.


    1. MountainGoat
      25.04.2023 04:45

      Перевожу: "Нам в жабу нанимать юриста за тыщи баксов, чтобы он определил, легально ли нам принимать патчи, официально предоставленные от компании под санкциями"


      1. vassabi
        25.04.2023 04:45

        хм. а не подскажете, кому именно "в жабу" нанимать юриста - программисту или организации (и какой именно) ?

        потому что я до сих пор думал, что там только Линус на зарплате, а остальные - волонтеры "за спасибо" (т.е. они живут на деньги разных фирм, а не на зп от Линукса)


        1. unreal_undead2
          25.04.2023 04:45

          Отвечавший товарищ - @kernel.org, а не @xxx.com


        1. dartraiden
          25.04.2023 04:45
          +2

          Существует некоммерческая организация Linux Foundation, защищающая Linux путём поддержки его ключевых разработчиков и предоставления им юридических услуг. Кроме того, она распоряжается торговой маркой «Linux» и даже спонсирует существование Линуса Торвальдса.


          Вполне возможно, что юристы как раз и посоветовали не принимать патчи. И там не обязательно, что они сказали "ни в коем случае не брать". Они могли, например, сказать "выглядит рискованно, у тех, кто примет патч, потенциально возможны проблемы, не советуем" (лично я бы после такого заключения не принял патчи, потому что на ровном месте взваливать на себя судебные тяжбы, на которые мне придётся тратить своё время и нервы, оно мне надо?). Это прекрасно состыкуется с ответом — "нам некомфортно принимать от вас патчи" (читай "нам некомфортно подставлять самих себя, разработчиков, под удар")


          Грег в ответ на вопросы ответил, что все необходимые пояснения даны "Байкалу" и если "Байкал" сочтёт необходимым, то поделится информацией с сообществом.


          1. torgeek
            25.04.2023 04:45

            Строго говоря,  Linux Foundation — это компания зарегистрирована и находится в юрисдикции США и с деньгами под контролем госорганов США. Уже только поэтому им приходится осторожничать и перестраховываться с ущемлением своих участников из других стран. К тому же большинство участников — это компании из США.

            Если бы вопрос решался, как у других международных опенсорсных фондов, где-нибудь в Швейцарии. Аргентине или, даже, Китае, то результаты, скорее всего, были бы совершенно другие.

            Пример прямо в статье упомянут — "Linux-libre 6.3-gnu. Он создан силами латиноамериканского Фонда свободного ПО" (это Аргентина).

            Другой пример — перенос RISC-V из США в Швейцарию по настоянию участников. То есть для международных сообществ разработчиков риски и опасности нахождения в США очевидны достаточно давно.


  1. unreal_undead2
    25.04.2023 04:45

    Добавлена поддержка инструкций SME 2 (Scalable Matrix Extension) для процессоров ARM

    Вопрос знатокам - что конкретно имеется в виду? SME2 добавляет в контекст что-то помимо того, что было в SME?

    PS Пока модерировали коммент, разобрался - добавили ZT0 для поддержки LUT.


  1. ss-nopol
    25.04.2023 04:45

    А еще — проведена оптимизация производительности, в результате чего удалось ускорить операцию send вплоть до 10 раз.

    Это же как оно тормозило!


    1. unreal_undead2
      25.04.2023 04:45

      Меня скорее ускорение send в контексте файловой системы удивило. Но да, у них есть свой btrfs-send.


    1. HSerg
      25.04.2023 04:45
      +1

      Судя по фразе "...за счёт кэширования utime.." - все у кого тормозило уже давно используют noatime.