Линус Торвальдс включил в состав ядра Linux 7.1, релиз которого ожидается в середине июня, новый драйвер файловой системы NTFS. Проект, развивавшийся под рабочим названием ntfsplus, теперь официально представлен в ядре как «ntfs». Стоит отметить, что это имя ранее использовалось для старого драйвера, работавшего исключительно в режиме чтения.
Разработчиком новой реализации стал Намджэ Чон (Namjae Jeon) — активный участник проекта Samba, который также отвечает за поддержку драйвера EXFAT и сервера KSMBD в ядре Linux.
История создания ntfsplus
Работа над ntfsplus началась в 2022 году как ответ на проблемы с поддержкой драйвера NTFS3. Напомним, что NTFS3, созданный компанией Paragon Software, был внедрен в ядро 5.15 для замены устаревшего решения. Однако в период с конца 2021 по середину 2022 года разработка практически остановилась: авторы перестали реагировать на сообщения сообщества и патчи. Хотя позже активность была восстановлена и значительные улучшения вошли в состав ядра 7.0, проблемы надежности и производительности NTFS3 подтолкнули разработчиков к созданию более качественной альтернативы.
Авторы ntfsplus подчеркивают, что их решение призвано улучшить взаимодействие Linux с Windows-системами. Многие пользователи и дистрибутивы до сих пор предпочитают использовать ntfs-3g, работающий в пространстве пользователя, из-за нестабильности текущего встроенного решения. Тесты xfstests показывают преимущество новинки: ntfsplus успешно проходит 326 тестов (41,4%) против 273 (34,6%) у NTFS3.
Технические особенности
Драйвер ntfsplus базируется на коде классического драйвера NTFS, который был глубоко переработан и адаптирован для современных стандартов:
- Внедрена поддержка фолиантов страниц памяти (folios) вместо устаревшей структуры buffer_head.
- Реализовано отложенное выделение блоков, что благоприятно сказывается на производительности записи и снижает уровень фрагментации.
- Для операций ввода-вывода (буферизированных, прямых и страничных) и маппинга экстентов задействована библиотека iomap.
- Добавлена поддержка idmap для маппинга идентификаторов пользователей при монтировании разделов.
В ближайших планах разработчиков значится внедрение полноценного журналирования — функции, которая частично представлена в NTFS3 (через replay-журнал).
Производительность и утилиты
Внутренние тесты показывают существенный прирост скорости по сравнению с NTFS3. Применение асинхронных операций iomap и оптимизация работы с кластерами дали следующие результаты:
- Запись: при однопоточном режиме прирост составляет 3–5%, а при использовании четырех потоков — от 35% до 110%.
- Скорость чтения: показатели находятся на одном уровне с NTFS3.
- Работа с файловой системой: при выводе списка файлов в крупных каталогах (от 100 до 400 тысяч объектов) ntfsplus опережает предшественника на 12–14%.
- Монтирование: новый драйвер справляется с задачей в 5–6 раз быстрее (раздел объемом 1 ТБ монтируется за 0,38 секунды против 2,03 секунд).
Для обслуживания файловой системы подготовлен набор утилит ntfsprogs-plus, основанный на коде проекта ntfs-3g. В пакет входят инструменты для клонирования (ntfsclone), управления кластерами (ntfscluster), получения информации (ntfsinfo) и специальная утилита ntfsck для диагностики и восстановления целостности поврежденных разделов NTFS.




