image

Новый релиз ядра Linux 6.5 вышел всего два месяца спустя после предыдущего. Но работа все равно проделана большая, даром, что времени прошло немного. Так, в новой версии сразу 1467 исправления от более, чем 2 тыс. разработчиков. Общий размер патча составляет 78 МБ. Добавлено 1294205 строк кода, в то время, как удалено 930515 строк. Как всегда (ну, почти), большая часть изменений касаются драйверов, чуть меньше — обновление кода, который имеет отношение к архитектурам, затем идут изменения сетевого стека, файловых систем и внутренних подсистем ядра. Подробности — под катом.

Оборудование и драйвера


  • В новой версии удалось расширить поддержку контроллеров USB4, включая добавление начальной поддержки Intel Barlow Ridge, поддерживающих USB4 v2 (80 Gbps через USB Type-C).
  • Появилась поддержка большого количества ARM-чипов: ARM-чипов Nuvoton MA35D1, Amlogic C3 и STMicroelectronics STM32MP2 на базе ARM Cortex-A35, Samsung Exynos 4212, Qualcomm MSM8939 (Snapdragon 615), Qualcomm SC8180x (Snapdragon 8cx), Qualcomm SDX75 и Alibaba T-Head TH1520.
  • Разработчики не обошли вниманием и ARM-платы. Так, добавлена поддержка таких моделей, как Marantec Maveo, Endian 4i Edge 200, Epson Moverio BT-200, PHYTEC STM32MP1-3, ICnova ADB4006, Emtop SoM & Baseboard, NXP i.MX8MM EVKB, Gateworks Venice gw7905-2x, NVIDIA IGX Orin, Fxtec Pro1X, NVIDIA Jetson Orin Nano (tegra234), Rockchip Indiedroid Nova (rk3588), Edgeble Neural Compute Module 6B (rk3588), FriendlyARM NanoPi R2C Plus (rk3328), Anbernic RG353PS (rk3566), Lunzn Fastrhino R66S/R68S (rk3568), PHYTEC phyBOARD-Lyra-AM625, Toradex Verdin, а также плат, используемых в устройствах Sony Xperia M4 Aqua и Acer Aspire 1.
  • Также теперь поддерживаются беспроводные чипы Realtek RTL8192FU, Realtek RTL8723DS и Realtek RTL8851BE.
  • Уделено внимание и драйверу AMDGPU, где теперь включена по дефолту технология адаптивной синхронизации FreeSync. Она нужна для корректировки частоты обновления информации на экране, обеспечения плавности и отсутствия разрывов изображения во время просмотра видео. Добавлена поддержка разгона (OverDrive) частоты видеокарт Radeon RX 7000.
  • Что касается драйвера i915, то здесь добавлена начальная поддержка чипов Intel Meteor Lake. Также теперь можно использовать переменную частоту обновления экрана (VRR, Variable Rate Refresh) на ноутбуках с экранами на базе интерфейса eDP (Embedded Display Port). Для framebuffer реализована поддержка мапинга памяти (mmap).



Память и системные сервисы


  • Сейчас реализована поддержка расширения PIE (ARMv8.9 Permission Indirection Extension) для систем на базе аритектуры ARM64. Расширение предоставляет возможность настройки прав доступа к памяти. Так, вместо кодирования информации о полномочиях в таблице страниц памяти, PIE использует индекс массива полномочий, указанный в регистре.
  • Кроме того, для систем на базе ARM, которые поддерживают расширение Armv8.8, теперь появилась возможность использования процессорных инструкций memcpy/memset в пространстве пользователя.
  • Также ускорена процедура перевода процессоров в состояние online за счет параллельной активации нескольких CPU.
  • Появилась поддержка протокола Unaccepted Memory, дающего возможность принимать выделенную хост-системой память в гостевых системах, защищённых при помощи технологии AMD SEV-SNP (Secure Nested Paging) или Intel TDX (Trusted Domain Extensions).
  • Осуществлён переход на использование выпуска Rust 1.68.2, в котором стабилизированы некоторые возможности, задействованные в ядре. Улучшен API pin-init. Расширены возможности модулей 'error', 'sync', 'str', 'task' и 'types'.
  • В подсистеме BPF появилась поддержка добавлена поддержка прикрепления фильтров к kfunc (функции ядра, доступные для использования в программах BPF) для ограничения контекста, в котором допускается вызов kfunc.
  • Добавлено автоматическое выявление и пометка работ, интенсивно расходующих ресурсы CPU (выполняемых более 10 мс).
  • Не обошли вниманием и архитектуру RISC-V, где теперь реализована поддержка ACPI и расширения «V» (Vector, векторные инструкции). Для управления расширением в prctl() предложен параметр "/proc/sys/abi/riscv_v_default_allow" и серия флагов «PR_RISCV_V_*».
  • Китайская архитектура Loongarch не забыта. Для нее добавлена поддержка одновременной многопоточности (SMT, Simultaneous Multi-Threading). Также обеспечена возможность сборки ядра для Loongarch компилятором Clang.
  • В одном из последующих выпусков уберут механизм распределения памяти SLAB, вместо которого в ядре будет использоваться только SLUB.
  • В планировщике задач оптимизирована балансировка нагрузки между ядрами CPU за счёт исключения лишней миграции между областями SMT (Simultaneous Multi-Threading) на гибридных системах.

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


  • Здесь, как и говорилось в самом начале, изменений не очень много. Но они есть, и некоторые достаточно важные. Например, Btrfs предложены новые оптимизации. Реализована передача данных в синхронном режиме для быстрых алгоритмов вычисления контрольных сумм crc32c и xxhash).
  • Кроме того, в EXT4 почистили код, который связан с с деревом состояний экстентов, журналированием и выделением блоков. Повышена производительность параллельной перезаписи в режиме DIO (Direct I/O).
  • В XFS убрали признак экспериментальной разработки с кода подсчёта крупных экстентов. Задействован режим FMODE_CAN_ODIRECT.
  • Еще в одной файловой системе, F2FS реализована поддержка опции монтирования «errors=», через которую можно настроить поведение в случае возникновения ошибок при чтении или записи данных на накопитель.
  • ФС Overlayfs перевели на использование нового API для монтирования. В ядре 6.5 для Composefs добавлена поддержка слоёв «data-only», используемых только для данных (отдельно от метаданных).

Сеть


  • Для беспроводных устройств IEEE 802.15.4 добавили поддержку режима активного сканирования сети.
  • Разработчики переписали реализацию системных вызовов sendpage и splice, в которых вместо передачи данных в сокет страница за страницей, в обработчиках sendmsg реализована передача ссылок на данные.
  • А еще добавлен новый тип сообщений SCM_PIDFD. Он дает возможность использовать сокеты и вызовы sendmsg()/recvmsg() для передачи сведений о pidfd-идентификаторе процесса.

Виртуализация и безопасность


  • Здесь тоже совсем немного изменений. Из основного можно выделить добавление поддержки механизма Landlock, позволяющего ограничить взаимодействие группы процессов с внешним окружением, в UML (User Mode Linux).
  • В минимальной стандартной Си-библиотеке Nolibc реализована поддержка механизма выявления переполнений стека Stack Protector.
  • И также активирована по дефолту функциональность «secretmem», работа которой обеспечивается системным вызовом memfd_secret().


Как всегда, вместе релизом выпущен и вариант свободного ядра 6.5 — Linux-libre 6.5-gnu. Из него убраны элементы прошивок и драйверов, в которых есть несвободные компоненты или участки кода, область применения которых ограничена производителем.

Другие интересные материалы


   

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


  1. Dynasaur
    29.08.2023 06:54

    Как всегда (ну, почти), большая часть изменений касаются драйверов

    Я далёк от архитектуры ОС, но всегда думал, что драйверы это не ядро


    1. vadimr
      29.08.2023 06:54
      +13

      Смотря какие драйверы и в какой архитектуре ОС.


  1. Dynasaur
    29.08.2023 06:54
    -6

    А когда Линукс научится вай-фай свисток сам определять и устанавливать?


    1. SADKO
      29.08.2023 06:54
      +9

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

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


      1. Arvardan
        29.08.2023 06:54

        руками

        .


        1. khajiit
          29.08.2023 06:54

          В те времена, когда винде надо было подсовывать наугад один из пяти драйверов, из которых два уводили систему в синяк, третий терял сеть, четвертый висел с кодом 12, а пятый работал отлично, но не давал системе уснуть


          .


          1. Arvardan
            29.08.2023 06:54
            -2

            В те времена...

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


            1. khajiit
              29.08.2023 06:54
              +2

              Так это вы отвечали на комментарий, начинающийся с Лет надцать тому )


    1. keldar
      29.08.2023 06:54

      Лет так много назад, так оно почти и было. Драйвера по сути либо компилились в ядро либо подключались модулями, теперь же ядро заранее содержит массу вкомпиленных дров, ведь памяти то теперь море и тп. Зато перекомпилять ничего не надо, а раньше почти всегда. Но и модули сейчас все еще живы. В принципе любое ядро ос содержит некоторые драйвера, иначе оно не запустится...


    1. Dynasaur
      29.08.2023 06:54

      Похоже я сказал что-то крамольное :-) Простите великодушно, не хотел оскорбить ничьих чувств :-) Я не знал что так нельзя говорить :-)


  1. Beanut
    29.08.2023 06:54
    -1

    Так что удалили то? "Строки"?


  1. domix32
    29.08.2023 06:54
    +2

    беспроводные чипы

    Это как?


    1. khajiit
      29.08.2023 06:54
      +3

      Wireless Fidelity, Bluetooth, ZigBee и другие беспроводные стандарты.


  1. truthseeker
    29.08.2023 06:54

    И также активирована по дефолту функциональность «secretmem», работа которой обеспечивается системным вызовом memfd_secret().

    Выглядит многообещающе. Хорошо, что эту фичу включили по умолчанию, ранее нужно было активировать принудительно в boot-параметра при загрузке, так как она была не стабильна. И пригодится эта фича может не только в приложениях для виртуализации. По идее, её заюзать могут и приложения, хранящие секретные данные в памяти, такие как Gnome Keyring, KeepassXC и KWallet...


  1. wifage
    29.08.2023 06:54

    А что будет, когда ChatGpt научится дебажить код. Обновления будут еженедельные вероятно. Или каждый сможет написать ОС под себя.


  1. LF69ssop
    29.08.2023 06:54

    Так, в новой версии сразу 1467 исправления от более, чем 2 тыс. разработчиков.

    А это как интересно?

    У коммита может быть больше одного автора?