NTFS-3G — это кроссплатформенная реализация файловой системы Microsoft Windows NTFS с открытым исходным кодом и поддержкой чтения/записи. NTFS-3G часто использует интерфейс файловой системы FUSE , поэтому может работать без изменений во многих различных операционных системах . Он работает на Linux , FreeBSD , NetBSD , OpenSolaris , illumos , BeOS , QNX , WinCE , Nucleus , VxWorks , Haiku , [1] MorphOS , Minix , macOS [3] и OpenBSD . [4] [5] Он распространяется по лицензии GNU General Public License . Это частичная версия ntfsprogs , которая находится в стадии активного обслуживания и разработки.
NTFS-3G была представлена одним из старших разработчиков Linux NTFS Сабольчем Сакачицем в июле 2006 года. Первая стабильная версия была выпущена 21 февраля 2007 года как версия 1.0. Разработчики NTFS-3G позже сформировали компанию Tuxera Inc. для дальнейшей разработки кода. NTFS-3G теперь является бесплатной «общественной версией», [1] , а Tuxera NTFS — проприетарной версией.
В 2021 году Линус Торвальдс объединил другую реализацию NTFS (экспериментальную начиная с версии 6.0) [6] под названием NTFS3 с ядром Linux 5.15. [7]
NTFS-3G поддерживает все операции записи файлов: на разделах NTFS можно создавать, изменять, переименовывать, перемещать или удалять файлы любого размера. Поддерживается прозрачное сжатие , а также шифрование на уровне системы . [8] Доступна поддержка изменения списков управления доступом и разрешений . [9] Разделы NTFS монтируются с использованием интерфейса «Файловая система в пространстве пользователя » (FUSE). NTFS-3G поддерживает жесткие ссылки , символические ссылки и соединения. С помощью подключаемых модулей точки повторной обработки NTFS его можно заставить читать файлы с дедупликацией фрагментов, файлы, сжатые системой, и файлы OneDrive . [10] NTFS-3G обеспечивает полную поддержку и преобразование списка управления доступом (ACL) NTFS в разрешения POSIX ACL. Утилита usermap включена для записи сопоставления UID с идентификаторами SID Windows NT.
По собственной информации, компания Tuxera Ltd была основана в 2008 году Сабольчем Сакачицем, поскольку все больше и больше запросов от известных компаний относительно интеграции в их продукты сделали этот шаг необходимым. [11] На своем веб-сайте компания предлагает индивидуальные версии Tuxera NTFS для встраиваемых систем .
NTFS-3G поддерживает частичное ведение журнала NTFS , поэтому, если неожиданный сбой компьютера приведет к тому, что файловая система окажется в несогласованном состоянии, том можно будет восстановить. Начиная с 2009 года том, содержащий неочищенный файл журнала, восстанавливается и монтируется по умолчанию. Чтобы отключить это поведение, можно использовать опцию монтирования norecover. [12]
В конце августа 2009 года стало известно, что Tuxera заключила сотрудничество с Microsoft, которое также включало соглашение об интеллектуальной собственности . [13] Поскольку Microsoft, таким образом, также предоставила информацию о спецификации exFAT, Tuxera смогла разработать драйвер Tuxera exFAT для встраиваемых систем в дополнение к NTFS, который предлагается коммерческим клиентам.
Тесты показывают, что производительность драйвера через FUSE сравнима с производительностью драйверов других файловых систем в ядре [14] при условии, что процессор достаточно мощный. Во встроенных или старых системах высокая загрузка процессора может серьезно ограничить производительность. Tuxera продает оптимизированные версии драйвера, которые, как утверждается, улучшают загрузку ЦП для встраиваемых систем и macOS . [15]
Медлительность NTFS-3G (и FUSE в целом) во встроенных системах объясняется частым переключением контекста , связанным с вызовами FUSE. Некоторые методы с открытым исходным кодом, предназначенные для уменьшения этих накладных расходов, включают: [16]
big_writes
использовать блоки большего размера при записи. Использование большего блока означает меньшее количество переключений контекста. На самом деле это решение, рекомендованное Tuxera. [17] Доступен патч для использования еще большего блока. [18]lazytime
для уменьшения количества операций записи при доступе к файлу.CACHE_NIDATA_SIZE
другим механизмом с неясными преимуществами. (Он также включает альтернативный перевод идентификатора безопасности для NAS.)Главный специалист по сопровождению программного обеспечения Жан-Пьер Андре поддерживал активную разработку SourceForge , исправляя ошибки и добавляя новые функции. На своем веб-сайте он запустил систему параллельного выпуска под названием «Расширенная версия NTFS-3G» (NTFS-3G AR). Каждая версия была пропущена через набор тестов и считалась стабильной. [21] [22]
Дистрибутивы Linux, перешедшие на NTFS-3G AR, включают Debian и его производные ( Ubuntu , PureOS , Pardus , Parrot OS , Trisquel ), Gentoo Linux и LiGurOS. [23]
По состоянию на 30 августа 2021 г. два ранее совместных проекта объединились и переехали на GitHub. [24]
Обходной путь: использование опции монтирования «big_writes» обычно снижает загрузку ЦП, при условии, что программное обеспечение, запрашивающее запись, поддерживает большие блоки.