Вчера появилась новость о выходе стабильного релиза ядра Linux 6.2. Изменений и дополнений действительно много, в этот раз принято почти 17 тыс. исправлений от 2178 разработчиков. Изменения при этом внесены в 14108 файлов, с добавлением 730195 строк кода. Большая часть изменений, почти 50%, связана с драйверами устройств, еще примерно 16% — с аппаратными архитектурами, 12% — сетевые технологии, 4% — файловые системы и еще 3% — подсистемы ядра. Под катом — подробности о том, что представляет собой ядро 6.2.

Наиболее актуальные изменения, которые добавлены в ядро, касаются продолжения работы над интеграцией языка Rust, о чем Торвальдс говорил уже давно. Кроме того, разрешен прием кода кода под лицензией Copyleft-Next. А еще — добавлена возможность регулирования потребления памяти при отложенной записи, появился гибридный механизм защиты потока выполнения команд, плюс появилась утилита rv (Runtime Verification). Ну а теперь, собственно, подробности.

Устройства и драйвера


  • В новом ядре добавлена подсистема accel, которая предназначена для реализации фреймворка ускорителей вычислений. Это новшество необходимо для оптимизации ускорения решения задач машинного обучения.
  • В драйвере amdgpu теперь появилась поддержка IP-компонентов GC, PSP, SMU и NBIO. Что касается ARM64, то здесь реализовали поддержку DCN (Display Core Next). Теперь защищенный вывод на экран можно использовать при подключении нескольких мониторов.
  • Что касается i915 (Intel), то здесь стабилизирована поддержка дискретных видеокарт Intel Arc (DG2/Alchemist), плюс оптимизирована поддержка GPU Meteor Lake.
  • Также в ядре появилась поддержка GPU NVIDIA GA102 (RTX 30) на базе архитектуры Ampere для драйвера Nouveau.
  • Появилась поддержка беспроводных модулей связи на базе широкого модельного ряда чипов, включая Realtek 8852BE, Realtek 8821CU, 8822BU, 8822CU, 8723DU (USB) и MediaTek MT7996, Bluetooth интерфейсов Broadcom BCM4377/4378/4387, а также Ethernet-контроллеров Motorcomm yt8521, NVIDIA Tegra GE.
  • Добавлена поддержка нескольких моделей смартфонов и планшетов, включая Sony Xperia 10 IV, 5 IV, X и X compact, OnePlus One, 3, 3T и Nord N100, Xiaomi Poco F1 и Mi6, Huawei Watch, Google Pixel 3a, Samsung Galaxy Tab 4 10.1.
  • Также появилась поддержка ASoC (ALSA System on Chip) для встроенных звуковых чипов HP Stream 8, Advantech MICA-071, Dell SKU 0C11, Intel ALC5682I-VD, Xiaomi Redmi Book Pro 14 2022, i.MX93, Armada 38x, RK3588. Добавлена поддержка звукового интерфейса Focusrite Saffire Pro 40. Добавлена поддержка звукового кодека Realtek RT1318.
  • Наконец, разработчики добавили поддержку ARM SoC и плат Apple T6000 (M1 Pro), T6001 (M1 Max), T6002 (M1 Ultra), Qualcomm MSM8996 Pro (Snapdragon 821), SM6115 (Snapdragon 662), SM4250 (Snapdragon 460), SM6375 (Snapdragon 695), SDM670 (Snapdragon 670), MSM8976 (Snapdragon 652), MSM8956 (Snapdragon 650), RK3326 Odroid-Go/rg351, Zyxel NSA310S, InnoComm i.MX8MM, Odroid Go Ultra.



Сетевые технологии


  • В ядро добавлен драйвер для устройств MediaTek с поддержкой Wi-Fi 7 (802.11be), плюс появилась поддержка 800-гигабитных линков.
  • Теперь можно переименовывать сетевые интерфейсы на лету, без остановки работы, что весьма удобно.
  • В ipset появился новый параметр bitmask, который дает возможность задать маску на основе произвольных битов в IP-адресе (например, «ipset create set1 hash:ip bitmask 255.128.255.0»).
  • В драйвере TUN скорость линка повышена c 10Mbps до 10Gbps. Это дало возможность решить проблемы с ограничением скорости в ряде приложений.
  • Также для IPv6 теперь появилась поддержка механизма балансировки нагрузки между сетевыми линками, который называется PLB. Он предназначен для сокращения точек перегрузки на коммутаторах ЦОД.
  • Ну а для UDP теперь есть возможность использования отдельных хэш-таблиц для разных сетевых пространств имен.



Память и система


  • В ядре теперь разрешено включение в состав ядра кода и изменений, которые поставляются под лицензией Copyleft-Next 0.3.1. Что это за лицензия? Она разработана одним из авторов GPLv3, также совместима с GPLv2. Но, в отличие от последней, она проще для понимания, в ней внесены сроки и порядок устранения нарушений. Также лицензия автоматически снимает копилефт-требования для устаревшего кода. Таким считается код старше 15 лет.
  • Появилась утилита rv, о чем коротко говорится выше. Она представляет интерфейс для взаимодействия из пространства пользователя с обработчиками подсистемы Runtime Verification. Соответственно, последняя предназначена для проверки корректности работы на высоконадежных системах с гарантией отсутствия сбоев. Проверку производят во время выполнения через прикрепление обработчиков к точкам трассировки, которые сверяют фактический ход выполнения с ранее предопределенной моделью.
  • Предложена новая реализация блокировок qspinlock для архитектуры PowerPC. Этот шаг позволил увеличить производительность.
  • Для китайских процессоров с архитектурой LoongArch добавлена поддержка ftrace, защиты стека, спящего и ждущего режимов.
  • Что касается ветки Rust-for-Linux, то сейчас активно идет перенос дополнительной функциональности, которая связана с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра. Стоит отметить, что поддержка Rust неактивна по дефолту, так что это не приводит ко включению языка в список обязательных сборочных зависимостей к ядру. Но зато расширена базовая функциональность, в первую очередь, для поддержки низкоуровневого кода, включая тип Vec и макросы pr_debug!(), pr_cont!() и pr_alert!(), а также процедурный макрос "#[vtable]".
  • Механим распределения памяти slab — SLOB (slab allocator) объявлен устаревшим.



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


  • В ядре расширены возможности по управлению отложенной записью для блочных устройств. В ряде ситуаций отложенная запись может приводить к большому потреблению оперативной памяти. Для того, чтобы избежать этой ситуации, предложены новые параметры «strict_limit», «min_bytes», «max_bytes», «min_ratio_fine» и «max_ratio_fine».
  • В файловой системе F2FS реализована ioctl-операция атомарной замены. Она дает возможность выполнить запись данных в файл в рамках одной атомарной операции. Также добавлен блочный кэш экстентов, который помогает определить активно используемые данные.
  • В ext4 исправили ряд ошибок. Ну а в ntfs3 появилось несколько новых опций монтирования: «nocase» для управления учётом регистра символов в именах файлов и директорий; windows_name для запрета создания имён файлов, содержащих символы, недопустимые для ОС Windows; hide_dot_files для управления назначением метки скрытых файлов для файлов, начинающихся на точку.
  • Что касается exFAT, то здесь удалось ускорить операции создания как файлов, так и папок.
  • Доработана реализация списков контроля доступа доступа POSIX (POSIX ACL).
  • В подсистеме fscrypt появилась поддержка алгоритма шифрования SM4 (китайский стандарт GB/T 32907-2016).
  • А еще изменен принцип проверки прав доступа к устройствам NVMe. В частности, появилась возможность чтения/записи на устройство в том случае, если записывающий процесс имеет доступ к специальному файлу устройства.

Безопасность и виртуализация


  • В первую очередь стоить отметить новые варианты для блокирования атак, которые используют генерацию состояний «oops», после которых проблемные задачи завершаются и состояние восстанавливается без остановки работы системы. Если вызовов таких состояний много, то возникает переполнение счётчика ссылок (refcount), что позволяет эксплуатировать уязвимости, вызванные разыменованием NULL-указателей. Для того, чтобы избежать этой ситуации, в ядро добавлено ограничение на максимальное число срабатываний oops.
  • Для платформы ARM64 появилась возможность включения и выключения программной реализации механизма Shadow Stack еще на этапе загрузки. В новой сборке ядра аппаратной и программной реализации Shadow Stack появилась возможность использования одного ядра на разных ARM-системах, вне зависимости от поддержки в них инструкций для аутентификации указателей.
  • Добавлена поддержка использования на процессорах Intel механизма асинхронного уведомления о выходе (asynchronous exit notification), позволяющего выявлять single-step атаки на код, выполняемый в анклавах SGX.
  • В механизм Landlock (позволяющий ограничить взаимодействие группы процессов с внешним окружением) добавлена поддержка флага LANDLOCK_ACCESS_FS_TRUNCATE, дающего возможность контролировать выполнение операций усечения файлов.

Возможно, эти тексты тоже вас заинтересуют:

8 вещей, о которых забывают разработчики при переносе приложения в Kubernetes
Чем заняться в 2023? Идеи для пет-проектов и подборка материалов по профессиональному развитию
Почему ARM? Перспективы платформы в серверном применении


Традиционно выложен и вариант полностью свободного ядра 6.2 — Linux-libre 6.2-gnu, в котором нет несвободных компонентов или участков кода. В этом ядре нет ограничений на использование кода. Плюс почищены новые блобы в драйвере nouveau.

Комментарии (40)


  1. Dynasaur
    00.00.0000 00:00
    +2

    Стоит ли пытаться обновить убунту 22.04 (ядро 5.15) до 6.2, или лучше не искать на свою ... приключений и смиренно ждать когда убунту сама перейдёт на свежее ядро?


    1. MTyrz
      00.00.0000 00:00
      +4

      В 95% случаев лучше смиренно ждать, особенно если у вас нет жизненной необходимости воспользоваться фишками нового ядра. Когда я (правда, много лет назад) экспериментировал с убунтой, тогда ядро с kernel.org на убунту ставилось плохо и с бубном, Каноникал, похоже, накладывал какие-то свои патчи.
      Патчи безопасности вам и так прилетят, если вы их не отключали.



      1. KillJ0y
        00.00.0000 00:00
        +1

        Xanmod ядро для новых железок отличная вещь, пока что нр каких сбоев не было ядро 6.1v3


    1. AlexGluck
      00.00.0000 00:00
      +4

      5.15 хорошее стабильное ядро со всеми нужными фишками. Причина обновляться может быть только новые драйвера, которых вам нехватает. Хотя я на стабильном ядре работаю 8 лет на федоре, это касается только рабочей станции, на серверах я бы сегодня ставил убунту лтс.


    1. khajiit
      00.00.0000 00:00
      +3

      Ядра из свежего не-LTS варианта ubuntu доступны как linux-image-*-hwe. Если уж так хочется посвежее, то это точно безопасный способ.
      Если надо еще свежее, то стоит искать ppa с ядрами.
      И уж в самую последнюю очередь собирать ядро ручками.


    1. Le1ns
      00.00.0000 00:00
      +3

      Обновился через ukku 2 дня назад - полет нормальный

      С декабря сижу на 6.х ядрах - обновляя постоянно - все стабильно, ноут так же не выходит из режима сна)


    1. morgan008
      00.00.0000 00:00

      Ну раз у вас до сих пор 5.15, то сама точно не перейдёт (в репозиториях доступно 5.19). 6.2, вероятно, появится одновременно с релизом Ubuntu 23.04, но это не точно. Лучше всего не искать приключений с Ubuntu и переходить на Arch или Fedora. По тестам Phoronix ядро 6.1 на 12% быстрее, чем 5.15.


      1. ustas33
        00.00.0000 00:00
        +1

        Смысл? На 22.04 Live patch хотя бы работает.
        А на приключениях типа Arch, Fedora нет.


        1. ProFfeSsoRr
          00.00.0000 00:00

          А зачем вам Live? Современный мир с контейнерам, спотами и т.д. заставляет приложения уметь переживать перезагрузки. Значит можно и серверы ради апдейта перезагрузить.


          1. ustas33
            00.00.0000 00:00

            Blockchain node operators про перезагрузки расскажите, или тем кто держит VPN )
            Есть LTS, поставил и забыл на несколько лет.


            1. ProFfeSsoRr
              00.00.0000 00:00

              По поводу блокчейн нод ничего не знаю, а у кого просто VPN - так тем и фичи новых ядер обычно не нужны, если "поставил и всё работает", то зачем апдейты? С другой стороны - современное всё перезагружается быстро, а кто деньги зарабатывает - можно позволить себе на эти деньги избыточность, и тогда снова перезагрузка перестаёт быть проблемой


        1. zeond
          00.00.0000 00:00
          +1

          И в чём заключаются приключения с Arch (если речь не про сервера)?

          Обновляюсь раз в неделю целиком, никаких проблем. Железо 2021-2022 года.


          1. ustas33
            00.00.0000 00:00

            Zoom клиент без вылетов работает?
            HW acceleration во всяких браузерах.
            В спячку входит/выходит?
            После sleep всё просыпается и работает?

            Большая часть Linux софта умолчанию на Ubuntu тестируется, но все стабильности нет, и кровь из глаз.


            1. zeond
              00.00.0000 00:00

              Zoom, HW Acceleration это проблемы реализации данных софтин, а не Арча. Или я что-то упускаю? + HW Acceleration можно врубить.

              У меня вылетает шаринг в Telegram, но это проблема его сборки с учётом Wayland, тикет есть на гитхабе в их репе.

              "Большая часть Linux софта умолчанию на Ubuntu тестируется, но все стабильности нет, и кровь из глаз."

              Не похоже на то :) Как раз в арче со стабильностью проблем не вижу.

              Ежедневный набор софта: sway (+ утили swayidle, slurp и т.д., slimshot), alacritty, JetBrains Idea, Brave, KeePass, WPS Office, Remmina, Telegram.

              Работают как часики.


    1. Panzer_Ex
      00.00.0000 00:00

      Я накатил мейнлайнеровкий 6.2 на 22.10 для AMD системы любопытства ради. Работает норм, местами даже шустрее, чем на 5.х ядрах.

      С другой стороны, в апреле должны выкатить новый продакт релиз Убунты, скорее всего 6.2 там уже будет из коробки.


    1. sparrowhawk
      00.00.0000 00:00
      +1

      Гипотетически могут отъехать/не собраться кастомные модули, та же nvidia, vbox, zfs, тогда придется подождать, пока исправят


    1. psionik
      00.00.0000 00:00

      у самого такая же бубунта стоит и я обновлялся до недавнего времени постоянно, т к купил на тот момент 6900хт.. сами понимаете, что нужны новые дрова и чем больше, тем лучше)

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


  1. AVX
    00.00.0000 00:00
    +2

    windows_name для запрета создания имён файлов, содержащих символы, недопустимые для ОС Windows

    Не понял тут. Эта возможность была внедрена намного (года 3 или 4 назад точно, или больше) раньше. Возможно, опции самой не было, а вот создать такие файлы было нельзя уже. Я точно помню, что у меня когда-то на внешнем диске с NTFS был создан каталог (под линуксом, лет 10 назад) с символами : ) и что-то ещё, недопустимое в виндах. И раньше совершенно точно можно было его в этом виде скопировать в другое место на том же NTFS или другое устройство. А потом в какой-то момент я увидел, что при копировании у меня вышла кучка ошибок, связанных с именами файлов и каталогов - часть из них нельзя было использовать уже. Пришлось проходиться поиском и все такие символы (может и не все, но сколько нашёл) убрать или заменить. Если не ошибаюсь, подключался диск при помощи ntfs-3g.


    1. 13werwolf13
      00.00.0000 00:00
      +3

      ntfs-3g емнип это fuse а не ядерный драйвер, здесь же речь именно про ядерный.


    1. Johan_Palych
      00.00.0000 00:00

      Вот этот драйвер


      1. AVX
        00.00.0000 00:00

        Да, я понял, что речь не про ntfs-3g идёт. У меня ядро старее 5.15, и такого драйвера нет. Есть вот такой:

        [avx@localhost ~]$ /sbin/modinfo fs-ntfs
        filename:       /lib/modules/5.10.46-desktop-1.mga7/kernel/fs/ntfs/ntfs.ko.xz
        license:        GPL
        version:        2.1.32
        description:    NTFS 1.2/3.x driver - Copyright (c) 2001-2014 Anton Altaparmakov and Tuxera Inc.
        author:         Anton Altaparmakov <anton@tuxera.com>
        alias:          fs-ntfs
        srcversion:     2E839CE728ABDC5E6479844
        depends:
        retpoline:      Y
        intree:         Y
        name:           ntfs
        vermagic:       5.10.46-desktop-1.mga7 SMP mod_unload


        1. Johan_Palych
          00.00.0000 00:00

          Mageia Linux?


          1. AVX
            00.00.0000 00:00

            Да, Mageia Linux 7. Уже устарела, и обновлений нет на неё, но пока почти всё работает. В zoom перестала работать авторизация через google (хочет новую версию, а она не ставится уже, зависимости...) Пока не критично, буду на ней сидеть, пока не возникнут проблемы более серьёзные.


  1. JPEGEC
    00.00.0000 00:00
    +3

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

    Смахивает на какую-то форму рабства.

    Точно все верно в этой фразе?


  1. okhsunrog
    00.00.0000 00:00

    Очень жду появления нового драйвер Xe от Intel в ядре. У меня на процессоре с графикой Iris (Tiger Lake) мигает экран иногда в Wayland. В декабре инженеры интела анонсировали драйвер и показали условно-рабочий код. Я аккуратно собрал из нужной ветки ядро, mesa. Баг пропал, все было шикарно. Но использовать ядро в том состоянии было затруднительно, их патчи каким-то образом сломали звук. Ждём релиз модуля в mainline. Думаю, стоит ждать в 6.4-6.5.


  1. klirichek
    00.00.0000 00:00

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

    Это для гиков, которые сносят родную прошивку и используют ванильный линукс на смартфоне? Или это о том, что ядро может быть в основе android, который на этих девайсах? (так они и так уже вполне работают..). Практический профит не совсем понятен...


    1. AlexGluck
      00.00.0000 00:00

      Не так давно по некоторым меркам гугл начал продавливать идею о внедрении драйверов в ядро, чтобы убрать проблему срока поддержки ПО для смартфонов. Я думаю это работа связана как раз с этим.


    1. morijndael
      00.00.0000 00:00

      В андроид-прошивках почти всегда модифицированное ядро, обвязанное проприетарными дровами чтобы запускаться конкретно на этом SoC и наборе компонентов

      Собственно, поэтому ядра в телефонах обычно не обновляются — вся эта конструкция очень хрупкая, и трогать её, когда она и так работает, просто нерентабельно


  1. scherbakovalexej
    00.00.0000 00:00

    Установил на ubuntu 22.10 обновлялку ядра коммандами:

    sudo add-apt-repository ppa:cappelikan/ppa
    sudo apt update
    sudo apt install -y mainline

    Легко обновился. Третий день полёт нормальный. Раньше были проблемы с отваливающимся иногда блютусным magic trackpad 2, но они остались. Единственно, архив с русским названием созданный на андроиде отобразился кракозябрами под убунту. Но раньше такого не делал, поэтому пока не могу винить ядро.


  1. Denai
    00.00.0000 00:00

    Поставил попробовать, графические драйвера отвалились (rtx 3070). 6.2.1 пока не пробовал, подожду пока всё починят


    1. khajiit
      00.00.0000 00:00

      Если проприетарные — то заголовки установлены?
      Драйвера не соберутся под ядро без заголовков. И без поддержки в самом драйвере, впрочем, тоже.


      1. Denai
        00.00.0000 00:00

        Проприетарные. До этого собирались. С каких-то очень старвх версий обновляюсь через ubuntu mainline kernel installer. Всегда было всё идеально, только в этот раз проблема


        1. khajiit
          00.00.0000 00:00

          Надо смотреь в логи обновления, там должен быть вывод dkms. Но скорее всего или хедеры не установлены — это пакет опциональный — или драйвер слишком старый и про 6.2 (или вообще 6.*) ни сном ни духом.


          1. Denai
            00.00.0000 00:00
            +1

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


  1. scherbakovalexej
    00.00.0000 00:00

    На 6.2 не работает pref. Linux-tools-* макс версия 5.19(


    1. khajiit
      00.00.0000 00:00

      ❯  uname -r
      6.2.1-zen1-1-zen
      ❯  pacman -Qs linux-tools
      local/perf 6.2-1 (linux-tools)
          Linux kernel performance auditing tool


      1. scherbakovalexej
        00.00.0000 00:00
        +1

        сейчас разберёмся..спасибо)


        1. khajiit
          00.00.0000 00:00

          Ну, у каджита арч, так что пока не за что )
          Но пакет точно существует, и pаботает. Возможно, его опакетили и для… кстати, что там у вас с 5.19 — убунту?


          1. scherbakovalexej
            00.00.0000 00:00
            +1

            да, убунту 22.10, был с ядром 5.19. На 6.2 туулс пока не поставился. Но пока не критично. Может позже откачусь назад..