Как стать автором
Обновить
2623.48
Рейтинг
RUVDS.com
VDS/VPS-хостинг. Скидка 10% по коду HABR10

Релиз Linux 5.12, подробности для локалхоста

Блог компании RUVDS.comРазработка под Linux

В самом начале последней недели апреля увидела свет новая версия ядра Linux. Особенностью данного релиза стал сам факт того, что понадобился RC8. Помимо того в течении апреля произошла совершенно невероятная история с исправлениями из Университета Миннесоты, о которых следует рассказать отдельно, когда немного осядет пыль и полностью будет восстановлен ущерб от преднамеренно неисправных патчей.

Патч размером 39 MiB содержит труд 1873 разработчиков, из них 262 новых. Усилиями сообщества добавлено 518307 и удалено 313155 строк кода. Больше всего отличились следующие компании:

  • Intel;
  • Linaro;
  • Red Hat;
  • Google;
  • Huawei Technologies;
  • Facebook;
  • NVIDIA;
  • AMD;
  • SUSE;

Но на втором месте по числу исправлений не отдельная компания, а Unknown, что не может не радовать. Из списка активных контрибютеров выпала компания Habana Labs.

▍- Графика


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

Intel VRR / Adaptive-Sync


Для чипов Intel Tiger Lake (Gen 12) и более новых добавлена поддержка Variable Rate Refresh (VRR) / Adaptive-Sync. Данная функциональность пока существует лишь для DisplayPort / eDP подключений. HDMI Forum закрыл доступ к спецификациям, и по этой причине ощутить преимущества адаптивной синхронизации смогут только обладатели eDP дисплеев с VRR функционалом.

Разгон GPU Radeon RX 6000


В реализации RDNA 2 (Sienna Cichlid) на ОС Linux одной из отсутствующих функций была поддержка OverDrive разгона для графических карт серии Radeon RX 6800/6900. Наконец в новой версии ядра эта возможность реализована в драйвере amdgpu. Разгон Sienna Cichlid выполняется с использованием тех же атрибутов sysfs, которые в настоящее время разгоняют AMD GPU OverDrive.

Пиксельный формат FP16 для DCE


Благодаря патчам независимого разработчика Марио Кляйнеру в ядре появилась поддержка пиксельного формата FP16 для старых поколений графических процессоров AMD Radeon. Исправления затрагивают Display and Compositing Engine с 8-й по 11-ю версию. Это позволяет снять ограничения на неспособность старых устройств масштабировать фреймбуфер формата FP16.

AC/DC для GPU Radeon и прочие обновления для amdgpu


Включение функции ACDC на мобильных графических процессорах Radeon, где сила тока и тактовый диапазон изменяются в зависимости от того, работает ли ноутбук в режиме питания переменного или постоянного тока. При включенном бите функции микропрограммное обеспечение берет на себя управление обработкой функции. Кроме того для APU Van Gogh и GPU Navy 22, a. k. a. Navy Flounder появилась возможность сброса GPU.

▍- Файловые системы


Ожидаемые обновления вызывающей противоречивые чувства btrfs, XFS, CIFS и других.

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


Зонированные блочные устройства обладают непривычными свойствами, это сделано с умыслом и во имя более плотной записи данных. Эти устройства разделены на зоны, в которых не возможен произвольный доступ для операций записи. Запись в таких зонах осуществляется только последовательно, от первого блока и до последнего.
image
Единственный способ перезаписи данных в последовательной зоне — это сброс указателя записи в начало зоны, что приведет к немедленному удалению всего содержимого. С другой стороны, полностью поддерживается произвольный доступ для чтения. Для файловых систем это создает определенные проблемы, так как разработка драйверов ведется с учетом того, что блоки хранения могут быть записаны в произвольном порядке. До сих пор поддержка зонированных устройств практически отсутствовала в основных ФС, однако с релизом Linux 5.12 btrfs получил эту функциональность.

Перенос идентификаторов при монтировании


Добавлен новый системный вызов mount_setattr(2), который дает возможность переносить идентификаторы прав с одного mount на другой для fat, ext4 и xfs. Перенос ID при монтировании файловой системы полезен для ряда серверных и DevOps сценариев. В частности ФС, в которых нет самой концепции владельца ресурса, как например vfat, могут использовать данную функциональность для реализации DAC (discretionary access control) проверок.

Режим ранней записи в NFS


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

Опции mount.tfs дополнились новыми элементами:

  • writes=lazy — текущий способ записи по умолчанию.
  • writes=eager — нестабильные операции ввода немедленно отправляются на сервер.
  • writes=wait — нестабильные операции ввода немедленно отправляются на сервер и затем ядро ожидает ответа на запрос.


XFS


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

F2FS


Добавлена поддержка выбора уровня сжатия для алгоритма LZ4, также реализована новая опция монтирования checkpoint_merge. Еще в sysfs появились новые элементы:

  • /sys/fs/f2fs/<dev name>/stat/sb_status для отображения статуса суперблока в режиме реальном времени в шестнадцатеричном формате;
  • /sys/fs/f2fs/<disk>/ckpt_thread_ioprio для изменения приоритета ввода-вывода службы совмещения контрольных точек.


CIFS


В настоящее время NFS и CIFS в Linux имеют параметр монтирования actimeo для управления кэшированием метаданных но в то же время CIFS не имеет сопутствующих параметров монтирования для того, чтобы различать атрибуты каталога кэширования и файлы. Теперь же в CIFS эти опции добавлены: acregmax для управления кэшированием файлов и acdirmax для управления кэшированием атрибутов каталогов.

▍- Сетевая подсистема


TCP/IP стек ядра Linux занимает особое место в общей картине, в виду существенной сложности архитектуры и огромным возможностям по использованию в самых разнообразных устройствах. Сетевая инфраструктура больше других обеспечивает доминирование Linux ОС на серверах и продолжает развиваться семимильными шагами.

  • добавлены уведомления при изменении флагов маршрутизации на сетевом оборудовании;
  • netfilter, реализована структура владения таблицами, позволяющая пользователям привязывать таблицу вместе с содержимым к процессу через сокет netlink;
  • TCP, изменения связанные с рандомизацией портов в протоколах транспортного уровня (RFC-6056).
  • в IGMPv3 появилась поддержка механизма Explicit Host Tracking.
  • cfg80211/mac80211, у пользователей появилась возможность отключить режим HE, аналогично тому, как можно отключить VHT и HT.
  • hsr, реализована поддержка EntryForgetTime, благодаря чему удалось устранить проблемы связи с Cisco IE в режиме Redbox;
  • ipvs, новый алгоритм балансировки нагрузок, основанный на случайном выборе двух серверов, в зависимости от взвешенных оценок.


Опрос NAPI в потоках ядра


NAPI призвана повышать производительность при высоких нагрузках, опрашивая сетевое устройство вместо ожидания IRQ. Этот опрос, однако, выполняется в контексте softirq, где планировщик задач не может его видеть, и это затрудняет настройку системы для максимальной производительности.

Благодаря исправлениям Wei Wang-а, а также Paolo Abeni, Felix Fietkau, и Jakub Kicinski ядро может по выбору создать отдельный поток для каждого сетевого интерфейса с поддержкой NAPI. После этого опрос NAPI будет выполняться в контексте этого потока, а не в программном прерывании. Это пока еще не избавление от softirq, но шаг в нужном направлении. Новое свойство активируется из sysfs через параметр /sys/class/net/<iface>/threaded.

Multipath TCP


MPTCP является набором расширений (RFC-6824) протокола TCP, с помощью которых данные для одного соединения передаются через разные сетевые интерфейсы по нескольким IP маршрутам одновременно. В новой версии появилась поддержка MP_PRIO для выставления приоритета определенным потоком нижнего уровня. Данный атрибут также определен в RFC-6824. Также улучшена возможность отображения IPv4 адресов в пространство IPv6.

Internet Protocol


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

Ранее при сбое во время разгрузки маршрутов в пользовательское пространство не поступало никаких извещений и из-за этого демон маршрутизации мог бесконечно долго пребывать в состоянии ожидания. Новый патч добавляет статус offload_failed с помощью флага RTM_F_OFFLOAD_FAILED к маршрутам IPv4, чтобы пользователи могли лучше видеть процесс разгрузки.

▍- Безопасность


Сюда вошли исправления, связанные с Security Enhanced Linux, KFENCE, Trusted Protection Module и Integrity Management architecture.

KFENCE


Kernel Electric-Fence, или KFENCE, представляет из себя новое средство обнаружения ошибок безопасности памяти на основе выборки, отличительной особенностью которого является незначительная потеря производительности. KFENCE предназначен для ядер на промышленных системах и имеет практически нулевые накладные расходы на производительность. Новый детектор способен отловить такие ошибки использования памяти, как выход за пределы буфера и обращения после освобождения памяти.

Основная причина появления на свет KFENCE в способности обнаружить редкие сценарии с ошибками в коде, которые обычно не присутствуют в тестовых средах.

IMA


Integrity Measurement Architecture позволяет измерять данные в файлах и буферных массивах. Однако различные структуры данных, политики и состояния, хранящиеся в памяти ядра, тоже влияют на целостность системы. До недавнего времени IMA не обладала обобщенной функцией для измерения критически важных данных целостности ядра. Сейчас подобная возможность уже присутствует в подсистеме IMA.

Криптография


Из кода ядра удалены некоторые алгоритмы хэшей:

  • RIPE-MD 128;
  • RIPE-MD 256;
  • RIPE-MD 320;
  • Tiger 128;
  • Tiger 160;
  • Tiger 190.

Такая же судьба постигла алгоритм потокового шифрования Salsa20, а blake2 подтянулся до blake2s.

В картах eMMC стало возможным использовать встроенное шифрование.

▍- Nintendo 64


Хорошие новости для ретро-игроманов, в новой версии Linux наконец-то появилась поддержка игровой консоли Nintendo пятого поколения.
image
В далеком 1996 г․ компания выпустила игровую приставку Nintendo 64. Консоль была оснащена 64-битным процессором NEC VR4300 (MIPS R4300i) с тактовой частотой 93.75 МГц и стала самой производительной среди приставок середины 1990-х гг.

▍- Чипы и чипсеты


В Linux 5.12 было значительное число обновлений для архитектуры x86 и ARM.

x86


В настоящее время существует созданная сообществом, с помощью обратной разработки, поддержка Microsoft Surface System Aggregation Module (SAM). The system aggregation module в своей основе — это встроенный контроллер, найденный в более поздних версиях аппаратного обеспечения Surface. SAM отвечает за обработку состояния батареи, тепловую отчетность, ввод с сенсорной панели, поведение скрытой клавиатуры и многое другое.

Платформа Lenovo IdeaPad получила поддержку:

  • подсветка клавиатуры;
  • всегда на зарядке USB;
  • повторное включение управления сенсорной панелью.

Также ACPI драйвер Lenovo ThinkPad теперь может управлять языковыми настройками клавиатуры и управлять режимами энергопотребления. Lenovo ThinkPad X1 Tablet Gen 2 обзавелся драйвером с поддержкой подсистемы HID.

ARM


В число поддерживаемых платформ, плат и устройств добавлены:

  • ASUS ASUS Zenfone 2 Laser смартфон;
  • Beacon i.MX8M Nano;
  • Beacon EmbeddedWorks (на платах RZ/G2H и RZ/G2N);\
  • Boundary Devices i.MX8MM Nitrogen SBC;
  • BQ Aquaris X5 a. k. a. Longcheer L8910 смартфон;
  • Intel eASIC N5X;
  • NanoPi M4B;
  • OnePlus6 / OnePlus6T смартфон;
  • Netgear R8000P Wi-Fi маршрутизатор;
  • PineTab Early Adopter tablet;
  • Plymovent BAS;
  • Plymovent M2M;
  • Purism Librem5 Evergreen смартфон;
  • Samsung GT-I907 смартфон;
  • Snapdragon 888 / SM8350;
  • Snapdragon MTP;
  • Sony Xperia Z3+/Z4/Z5 смартфоны.

Некоторые платформы ARM подверглись чистке ввиду отсутствия сколь-нибудь значимого количества устройств с ОС Linux, либо ввиду отсутствия поддержки со стороны производителя.

  • efm32;
  • picoxcell;
  • prima2/atlas;
  • tango;
  • u300;
  • zte zx.

ARM64 также имеет немало обновлений для SoC драйвером, также в подсистеме KVM обновился код PMU (Performance Monitoring Unit) до ARMv8.

RISC-V


Появилась начальная поддержка SoC SiFive FU740, анонсированного в конце прошлого года. Этот чип используется на плате разработки HiFive Unmatched. Другим новшеством для платформы стала поддержка технологии NUMA.


Теги:linuxopen-source управлениепроектамиruvds_статьи
Хабы: Блог компании RUVDS.com Разработка под Linux
Всего голосов 58: ↑55 и ↓3 +52
Просмотры9.7K

Похожие публикации

Лучшие публикации за сутки

Информация

Дата основания
Местоположение
Россия
Сайт
ruvds.com
Численность
11–30 человек
Дата регистрации
Представитель
ruvds

Блог на Хабре