Добавить в корзинуПозвонить
Найти в Дзене
DigiNews

Обновление Linux 7.1 включает новый «in-kernel» драйвер NTFS

Linux 7.1 привносит, возможно, самое крупное незаметное изменение в хранении данных за годы: новый встроенный в ядро драйвер NTFS, который наконец-то обеспечивает нативную поддержку файловой системы Microsoft. — tomshardware.com В Linux 7.1 грядет, возможно, самое значительное незаметное изменение в области хранения данных за последние годы: новый драйвер NTFS, встроенный в ядро, который наконец-то начинает относиться к файловой системе Microsoft как к полноправному гражданину, а не как к терпимому гостю. После многих лет полумер, включая медленные драйверы FUSE и недостаточно поддерживаемый код ядра, пользователи Linux наконец получат быструю, надежную и полностью интегрированную поддержку NTFS “из коробки”.
Основной обсуждаемой функцией является полная переработка поддержки NTFS, встроенная непосредственно в ядро. В отличие от давно существующего драйвера NTFS-3G, который работает в пространстве пользователя через модуль “Filesystem in Userspace” (FUSE), или более нового, но несколь

Linux 7.1 привносит, возможно, самое крупное незаметное изменение в хранении данных за годы: новый встроенный в ядро драйвер NTFS, который наконец-то обеспечивает нативную поддержку файловой системы Microsoft. — tomshardware.com

В Linux 7.1 грядет, возможно, самое значительное незаметное изменение в области хранения данных за последние годы: новый драйвер NTFS, встроенный в ядро, который наконец-то начинает относиться к файловой системе Microsoft как к полноправному гражданину, а не как к терпимому гостю. После многих лет полумер, включая медленные драйверы FUSE и недостаточно поддерживаемый код ядра, пользователи Linux наконец получат быструю, надежную и полностью интегрированную поддержку NTFS “из коробки”.
Основной обсуждаемой функцией является полная переработка поддержки NTFS, встроенная непосредственно в ядро. В отличие от давно существующего драйвера NTFS-3G, который работает в пространстве пользователя через модуль “Filesystem in Userspace” (FUSE), или более нового, но несколько заброшенного драйвера NTFS3, эта новая реализация с самого начала спроектирована с учетом современной инфраструктуры файловых систем Linux.
Это включает поддержку нативных операций чтения/записи в ядре, iomap (тот же высокопроизводительный путь ввода-вывода,
используемый такими файловыми системами, как XFS), управление памятью на основе фолио (folio-based memory management), удаление устаревшего кода buffer_head и отложенное выделение памяти для повышения эффективности записи. На практике это не просто “NTFS, но снова работает”; это поддержка NTFS в Linux, перестроенная так, чтобы внутренне вести себя как современная файловая система Linux. Это большой философский сдвиг по сравнению с предыдущими подходами, которые в основном рассматривали поддержку NTFS как уровень совместимости.
Файловая система Microsoft всегда была неизбежной для пользователей Linux в смешанных средах; будь то установки с двойной загрузкой, внешние диски или просто перемещение данных между машинами, поддержка существовала, но никогда не ощущалась первоклассной. Исторически сложилось, что у вас были варианты: драйвер NTFS-3G, более новый драйвер NTFS3 или древний драйвер ядра NTFS, который умел только читать тома NTFS, но не записывать их. NTFS-3G стабилен, но медленен из-за накладных расходов пространства пользователя, а более новый драйвер NTFS3 быстрее, но в значительной степени не поддерживался с момента его добавления в Linux 5.15 в 2021 году.
Новый драйвер в Linux 7.1 на самом деле основан на том древнем драйвере ядра NTFS, но он был полностью переписан с нуля разработчиком Намджэ Чоном (Namjae Jeon), тем самым гением, который стоит за
драйвером exFAT для Linux. Первоначальная работа велась под названием NTFSPlus, прежде чем он был объединен просто как “ntfs” для замены старого драйвера. Таким образом, Линус Торвальдс назвал новый драйвер “воскрешением NTFS” при анонсе его слияния.
Если новый NTFS оправдает ожидания, он устранит одну из самых давних проблем во взаимодействии экосистем Linux и Windows. Теоретически производительность должна возрасти, особенно по сравнению с NTFS-3G. Работа только в пространстве ядра устраняет большую часть накладных расходов, связанных с переключением контекста, что всегда было ахиллесовой пятой файловых систем на базе FUSE. Добавьте iomap и новое управление памятью, и новый драйвер должен заметно лучше справляться с большими последовательными операциями чтения и записи, обеспечивая меньшую загрузку ЦП во время файловых операций и более стабильную пропускную способность под нагрузкой.
По сравнению с NTFS3 ситуация менее однозначна. Новый драйвер архитектурно чище и более перспективен, но это новый код, а это значит, что ранние релизы могут не сразу превзойти NTFS3 во всех сценариях. Однако
разработчик заявляет, что однопоточные записи быстрее на 3–5%, а многопоточные — на 35–110%. Монтирование 4 ТБ диска, по-видимому, также происходит в четыре раза быстрее, что обнадеживает.
Конечно, поскольку это новый код, он сопряжен с обычными рисками. Крайние случаи, особенно связанные с менее часто используемыми функциями NTFS, такими как расширенные разрешения, сжатие или особенности журналирования, могут потребовать времени для полной стабилизации. Также стоит отметить, что даже с идеальным драйвером сама NTFS
не спроектирована с учетом семантики Linux, поэтому, хотя совместимость улучшается, она не станет внезапно вести себя в каждом случае в точности как ext4 или XFS. Тем не менее, новый драйвер проходит 326 тестов xfstests, что лучше, чем 273 прохождения у NTFS3, так что он уже более чем достаточно надежен для большинства пользователей.
Тем не менее, годами NTFS в Linux находился в этой неловкой категории “достаточно хорошо, но…”. Он работал, но никогда не ощущался чистым. Linux 7.1 впервые демонстрирует, что ядро начинает серьезно относиться к NTFS как к чему-то, что стоит делать правильно, а не просто поддерживать из необходимости. Если новый драйвер выдержит испытание и получит постоянное обслуживание, он, наконец, сможет сделать NTFS по-настоящему бесшовным мостом между Linux и Windows. Если нет, он рискует стать еще одной записью в долгой истории поддержки NTFS “почти готово” в Linux.

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

Автор – Zak Killian

Оригинал статьи