Содержание
В Linux 7.1 добавили новый in-kernel NTFS-драйвер. Он даёт полноценные чтение и запись NTFS прямо в ядре, без FUSE и его накладных расходов.
Это редкий случай, когда «скучная» файловая система становится новостью. NTFS для Linux много лет был компромиссом. Теперь разработчики переписали поддержку так, чтобы она работала как нормальная современная подсистема ядра.
Новый NTFS в ядре: переписали с нуля и встроили в современные I/O-механизмы
Новый драйвер — это переписывание поддержки NTFS с упором на актуальную инфраструктуру Linux. Он работает в kernel space и делает операции чтения и записи нативно, без прослойки userspace.
- iomap: высокопроизводительный путь ввода-вывода, который используют, например, XFS
- folio: более современная модель управления памятью в ядре
- delayed allocation: отложенное выделение блоков для более эффективной записи
- отказ от buffer_head: убрали легаси-код, который тянулся из старых времён
На практике это означает простую вещь. NTFS перестаёт быть «слоем совместимости» и начинает вести себя как файловая система, встроенная в логику ядра.
Чем это лучше NTFS-3G и чем отличается от NTFS3
Исторически у пользователей Linux было три варианта. Старый драйвер в ядре умел в основном чтение. NTFS-3G работал через FUSE и славился стабильностью, но упирался в накладные расходы userspace. А NTFS3 добавили в Linux 5.15 в 2021 году, он быстрее, но его развитие и поддержка заметно просели.
Новый драйвер в Linux 7.1 связан с тем самым древним «ядровым» NTFS, но по факту это полностью переписанный код. Его написал Namjae Jeon, разработчик, который раньше сделал драйвер exFAT для Linux. Изначально работа шла под названием NTFSPlus, а в дерево ядра она попала как «ntfs», заменив старую реализацию.
Самый понятный выигрыш тут — против NTFS-3G. Kernel space убирает лишние переключения контекста, которые всегда били по скорости и загрузке CPU у FUSE-файловых систем. С NTFS3 сравнение сложнее: новая архитектура выглядит чище и перспективнее, но это свежий код, и первые релизы не обязаны выигрывать во всех сценариях.
Цифры: до 110% быстрее многопоточная запись и в 4 раза быстрее монтирование
Namjae Jeon в обсуждении разработки приводит конкретные оценки. По его словам, однопоточная запись стала быстрее на 3-5%, а многопоточная — на 35-110%. Ещё один показатель звучит особенно приятно для владельцев больших дисков: монтирование тома на 4 ТБ ускорилось примерно в 4 раза.
По надёжности тоже есть цифры. Новый драйвер проходит 326 тестов xfstests, тогда как NTFS3 — 273. Это не гарантия отсутствия багов в экзотике NTFS, но разница заметная.
Линус Торвальдс в момент слияния изменений назвал это «NTFS resurrection». Коммит в дереве ядра доступен публично: cdd4dc3aebeab43a72ce0bc2b5bab6f0a80b97a5.
При этом риски у нового кода стандартные. Реже используемые особенности NTFS, вроде специфичных прав, компрессии или нюансов журналирования, могут всплывать по мере массового использования. Но базовый уровень качества уже подкреплён тестами и публичной историей разработки.