Вышел Linux 7.3: ускорение файловых систем в 5 раз и поддержка Apple M3

В этот раз в ядро официально пустили и Claude

Вышел Linux 7.3: ускорение файловых систем в 5 раз и поддержка Apple M3

После двух месяцев разработки Линус Торвальдс выпустил ядро Linux 7.3. Из всех обзоров главное знать три вещи: новый механизм изоляции процессов через системный вызов fchroot(), вложенные BPF-планировщики в SCHED_EXT и заметно ускоренные Btrfs, Ext4 и FUSE.

Релиз оказался крупнее предыдущего. В нём 20 260 исправлений от 3171 разработчика, а в версии 7.2 было 17 833 исправления от 2766 человек, то есть патчей стало на 14% больше. 807 авторов прислали код в ядро впервые. Почти половина изменений (44%) касается драйверов.

Что изменилось

Изоляция через failfs и fchroot. Новая псевдо-ФС failfs работает по принципу «ничего не поддерживается»: поверх неё нельзя ничего смонтировать, а процесс, чей корень оказался в failfs, теряет абсолютные пути, симлинки и относительную навигацию.

Доступ остаётся только к каталогам, дескрипторы которых открыли до изоляции. Перевести процесс в такой режим можно вызовом fchroot(), это chroot, который работает с файловыми дескрипторами. Для авторов песочниц это способ закрыть файловую систему без mount namespace и самописных обвязок.

Вложенные планировщики в SCHED_EXT. Механизм, через который планировщики CPU пишут на BPF, получил поддержку sub-scheduler: для каждой cgroup теперь можно поднять собственный планировщик задач.

BPF в binfmt_misc. BPF-программа в момент запуска определяет тип исполняемого файла и сама выбирает интерпретатор или динамический загрузчик. Так можно запускать бинарники чужих архитектур через эмулятор, Windows-программы через Wine и пакеты Nix без patchelf и скриптовых обёрток.

Что ускорили в файловых системах и памяти:

  • Btrfs: на HDD убрали лишнюю задержку, и при нагрузках с частым fsync (например, при записи логов) пропускная способность выросла в 5 раз
  • Btrfs: xarray заменили на LRU-список, работа с некэшируемыми буферами экстентов стала втрое быстрее
  • Ext4: ускорилась параллельная запись через Direct I/O и fallocate()
  • FUSE: при работе через io_uring появились zero-copy и передача пулов буферов из пространства пользователя
  • профилирование памяти: новые ioctl ALLOCINFO_IOC_* работают до 20 раз быстрее, чем чтение /proc/allocinfo

Для блочных устройств добавили флаг RWF_DONTCACHE: он позволяет читать и писать в обход страничного кэша и пригодится, например, СУБД. Ещё userfaultfd научился отслеживать обращения к памяти гостевой системы. Этот патч подготовлен с помощью Claude Opus 4.6, о чём прямо сказано в коммите.

Читают прямо сейчас:

Что такое Linux (и другие вопросы) — чем ядро отличается от дистрибутива и где используется Linux
В Rust нашли опасную дыру в защите памяти — багу уже 11 лет — свежая история про баг в гарантиях памяти Rust
Как происходит загрузка компьютера — от BIOS до запуска ядра: что происходит при включении

Rust и безопасность

Переезд кода из ветки Rust-for-Linux продолжается. Rust теперь можно использовать на PowerPC, в ядре появились обвязки над synchronize_rcu() и SRCU, барьеры памяти, модуль interrupt и спинлоки SpinLockIrq. На Rust написаны драйвер Nova для GPU NVIDIA с GSP-прошивками (начиная с RTX 2000) и драйвер Tyr для ARM Mali. По умолчанию поддержка Rust по-прежнему выключена.

Доступ к криптографическому API AF_ALG из пространства пользователя теперь по умолчанию частично ограничен, управляет этим новый sysctl af_alg_restrict. Причина в серии уязвимостей вроде Copy Fail, через которые можно было менять данные в страничном кэше. AF_ALG могут удалить в одном из следующих выпусков.

В Landlock появился флаг LANDLOCK_RESTRICT_SELF_NO_NEW_PRIVS, который запрещает процессу получать новые привилегии. AppArmor научился загружать сжатые наборы правил.

Что делать разработчику

Перед обновлением проверьте, не задевают ли вас удаления и устаревшие опции:

  • Btrfs больше не поддерживает первую версию кэша свободного места: старые ФС переведите на v2 через btrfstune, иначе они будут работать медленнее
  • опцию монтирования usebackuproot удалили, вместо неё используйте rescue=usebackuproot
  • режим data=journal в Ext4 объявлен устаревшим, его поддержку уберут в 2028 году
  • из ядра удалили ФС EFS из IRIX и FreeVxFS
  • около 55 тысяч строк кода старых ARM-платформ (sa1100, omap24xx, i.MX31 и других) удалят в версии 7.5

Из нового железа: поддержка Apple M3 Pro, Max и Ultra, Samsung Exynos 1580 и Orange Pi 5 Pro. Встроенный SMB-сервер ksmbd теперь принимает бэкапы Apple Time Machine.

Если вы пишете песочницы или контейнерные рантаймы либо держите логи на Btrfs поверх HDD, новое ядро стоит поставить хотя бы на стенд.

Скидка на все курсы Практикума

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

Промокод KOD (можно просто нажать) даст скидку на любой платный курс! А если пока не готовы покупать курс, у Практикума есть бесплатные вводные части.

Соцсети: Юлия Зубарева
Через год — лучше работа, выше зарплата
В «Яндекс Практикуме» становятся разработчиками с нуля. Выберите язык — веб, Python, Java, C++ — и учитесь. Джуны зарабатывают от 80 000 ₽, мидлы — от 150 000 ₽. Дальше — программы трудоустройства и компенсация, если пойдёте в Яндекс.
Вам может быть интересно
[anycomment]
Exit mobile version