Новая версия ядра Linux 7.1 вышла спустя пару месяцев после предыдущего крупного релиза. Как обычно, это обновление собирает воедино все исправления и доработки, накопившиеся за время тестирования, и Линус Торвальдс подтвердил, что финальная неделя перед выходом прошла спокойно — без каких-либо сюрпризов, лишь с привычными правками драйверов и системных компонентов. Однако за этим стабильным релизом скрывается несколько значимых изменений, которые определенно заслуживают вашего внимания. Поехали! 

Новый драйвер для NTFS

В ядро добавили новый драйвер для работы с NTFS, который заметно превосходит прежние решения — модуль ntfs3 и программу ntfs-3g. Он работает ощутимо быстрее при чтении, записи больших файлов и операциях с метаданными, а главное — гораздо безопаснее ведет себя при совместном доступе к разделам из Linux и Windows, сводя к минимуму риск повреждения данных. 

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

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

Производительность и новые возможности процессоров

Что еще? Включили по умолчанию механизм FRED от Intel. Это способ быстрее обрабатывать возвраты из прерываний и исключений на уровне процессора. Раньше его нужно было включать вручную через параметры сборки ядра. Теперь он работает сразу на поддерживаемых чипах — Panther Lake и следующих поколениях Intel, а также дает выигрыш на будущих AMD Zen 6. На практике это снижает задержки в критичных путях: обработка сети, виртуализация, системные вызовы. Эффект небольшой, но стабильный и заметный на свежем железе без дополнительных настроек.

Для процессоров AMD улучшили управление питанием через CPPC и параметры EPP. Теперь система точнее оценивает нагрузку: агрессивнее снижает частоты во время простоя и быстрее отдает мощность при пиковых задачах. Это помогает ноутбукам дольше работать от батареи, а серверам — меньше греться и потреблять электричество. Кроме того, появилась полноценная отчетность по энергопотреблению NPU в Ryzen AI. Теперь можно следить за реальными показателями работы ИИ-ускорителя и настраивать охлаждение и частоты с максимальной точностью. 

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

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

Графика, поддержка Apple и новое оборудование

Драйвер Xe теперь лучше ладит с видеокартами Intel Arc, включая новые модели серии Battlemage. Разработчики пересмотрели работу с памятью: теперь при серьезных нагрузках система стабильнее распределяет ресурсы. Если видеопамяти вдруг не хватает, драйвер не подвисает, а ведет себя гораздо предсказуемее. Владельцы карт Intel сразу заметят результат: игры и программы для рендеринга работают ровнее, и для этого не нужно ставить никакие сторонние патчи. 

Для старых процессоров AMD с графикой GCN 1.1 (например, Kaveri) теперь по умолчанию подтягивается драйвер amdgpu вместо старого radeon. Раньше такие видеокарты были обделены современными функциями управления питанием и свежими исправлениями, которые получали новые чипы. Теперь эта несправедливость исправлена: старое железо наконец-то получило поддержку всех актуальных фишек ядра. В итоге видеокарты прошлых лет работают стабильнее, лучше дружат с современной системой и показывают себя куда эффективнее в повседневных задачах. 

В ядро добавили драйвер для контроллера Apple SMC (System Management Controller), который напрямую считывает данные о заряде батареи и реальном энергопотреблении всей системы. Раньше эти показатели можно было получить только с помощью самодельных патчей или специфических драйверов, которые не входили в основной состав ядра. Теперь стандартные системные утилиты вроде upower или acpi получают доступ к этой информации из коробки, без стороннего вмешательства. Это позволяет штатным средствам мониторинга корректно отображать уровень заряда и статистику потребления энергии, что заметно упрощает эксплуатацию Linux на устройствах с чипами Apple Silicon. 

Добавили драйвер буфера кадра для окружений Coreboot. Он упрощает вывод изображения на ранних этапах загрузки и в минималистичных встраиваемых конфигурациях, где полноценные графические драйверы избыточны. Включили поддержку реального времени на 32-битных платформах ARM без внешних патчей. Раньше RT на ARM была в основном только для 64-битных ядер. Теперь можно собирать ядро с предсказуемыми задержками на более старом и компактном железе — полезно для промышленной автоматизации, робототехники и аудиообработки.

Из ядра вырезано больше 140 тысяч строк устаревшего кода: удалены 12 драйверов для Ethernet-плат эпохи 2002 года и старше, а также целый ряд компонентов — от подсистемы ISDN и протоколов вроде AX.25 и CAIF до драйверов для старых мышей и сетевых карт типа Yellowfin или Hamachi. Причина проста: за всем этим уже давно никто не следит, а современные инструменты поиска ошибок, такие как syzbot, постоянно находят в них уязвимости. В итоге вся работа по исправлению проблем ложилась на плечи мейнтейнеров основных сетевых подсистем, которым стало проще избавиться от мертвого кода, чем бесконечно его латать. 

Плюс в ядро добавили поддержку примерно 12 новых систем на кристалле и платформ на ARM и RISC-V. Это расширяет список устройств, на которых Linux работает из коробки без дополнительных патчей. Для разработчиков встраиваемых решений и тех, кто экспериментирует с открытыми архитектурами, это дает больше вариантов железа для тестов и проектов.

Долой старый код

Стартовал постепенный отказ от поддержки очень старых процессоров Intel 486. Убрали соответствующие опции сборки и часть связанного кода из дерева. Это не значит, что ядро полностью перестанет собираться на таком железе, но сигнал понятный: старые CPU уже давно не встречаются в новых системах, а поддерживать их приходится при каждом крупном изменении в ядре. Упрощение конфигурации помогает новым участникам быстрее ориентироваться в коде.

А еще разработчики убрали несколько давно не используемых сетевых драйверов, включая поддержку ISDN и другие модули для устаревшего оборудования. Главная причина — массовые автоматические отчеты об ошибках, которые генерируют инструменты на базе искусственного интеллекта. Эти инструменты сканируют исходники и создают заявки на участки кода, которые не менялись годами и никем не используются. Это засоряло трекеры и отнимало время у сопровождающих на разбор ложных срабатываний.

Источник

Аналогично поступили с драйверами для старых мышей типа bus mouse и частью устаревших реализаций для карт PCMCIA. Удаление мертвого кода уменьшает размер ядра и снижает шансы на неожиданные взаимодействия с современными подсистемами. Меньше кода — меньше работы при портировании на новые компиляторы и архитектуры. Для большинства пользователей эти изменения пройдут незаметно, потому что затронутое оборудование уже десятилетиями не встречается в обычных компьютерах.

Такие чистки — нормальная часть жизни большого проекта. Когда код перестает приносить пользу и только увеличивает нагрузку на разработчиков, от него разумно избавляться. В ближайшие годы можно ожидать продолжения этой практики в отношении других устаревших компонентов.

Что починили в последнюю очередь 

В финальную неделю перед релизом вошло большое количество мелких правок в разных подсистемах. В драйвере USB-serial io_ti починили два переполнения кучи — в функциях get_manuf_info и build_i2c_fw_hdr. Это могло использоваться для атаки на системы с соответствующими адаптерами последовательных портов. В netfilter исправили утечки стека через регистры OIFNAME в nft_fib и IIFHWADDR в nft_meta_bridge. Эти утечки могли проявляться при определенных правилах фильтрации.

В сетевых драйверах mlx5 и других местах убрали утечки памяти и проблемы с DMA при ошибках передачи кадров. В amdgpu починили ситуацию, когда после инвалидации части виртуальной памяти команда могла не перезапуститься корректно. В драйверах Intel Xe и цветовой подсистеме поправили отслеживание изменений и поведение при приостановке/возобновлении работы.

В компонентах hyperv и iommu убрали несколько проблем с использованием памяти после освобождения и с подсчетом ссылок. Это важно для облачных окружений и систем с интенсивным использованием общей памяти или прямого доступа к памяти. В инструментах rv для верификации и трассировки сделали серию доработок по очистке ресурсов и обработке ошибок в нестандартных случаях.

Мелкие правки прошли по GPIO, каркасу тактовых сигналов, контроллерам i2c и другим периферийным драйверам. В сумме за короткий период набралось значительное количество патчей от десятков участников. Большинство этих исправлений закрывают редкие, но реальные проблемы, которые могли проявиться на конкретном оборудовании или при определенной нагрузке.

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