Драйвер ядра NTFS против NTFS-3G


18

Более подробный вопрос, поскольку я потерял доступ к другому.

Я бы попросил удалить другой, а не этот, так как он не должен был быть перенесен в первую очередь.

В настоящее время для Linux доступно два драйвера NTFS.

Драйвер NTFS, включенный в ядро, и драйвер пользовательского пространства NTFS-3G, который использует FUSE.

По всем признакам NTFS-3G работает отлично.

Мой вопрос: если файловая система NTFS была успешно восстановлена, почему команда ядра NTFS не реализовала изменения в своем драйвере? На данный момент он все еще помечен как экспериментальный, и есть большая вероятность, что он уничтожит ваши данные.

Примечание: это абсолютно не связано с дистрибутивами ...

Ответы:


24

К сожалению, это общая проблема с общественными проектами.

Как только сообщество идентифицирует существенную проблему, появляются проекты для ее решения. В этом случае проблема заключается в использовании NTFS FS.

Linux-NTFS (драйвер ядра FS), был создан первым, а через некоторое время разработка остановилась. ИМО плохой выбор, он заслужил приоритет и до сих пор делает. Этот драйвер был стабильным, только для чтения, до тех пор, пока я работал с Linux (более полувека). Это решает только половину проблемы, поэтому сообщество смотрело куда угодно.

Пленник NTFS (Driver Wrapper для NTFS.SYS) был сравнительно проще в создании. Столько кода уже существовало в других проектах. Основная причина, по которой сообщество обратило внимание, заключалась в том, что NTFS.SYS не является свободным программным обеспечением.

NTFS-3G (Fuse), был соединен и полностью функционален. Проект имеет движущую силу в коммерции Tuxera. Этот проект решает первоначальную проблему использования NTFS из Linux. Tuxera предлагает собственный проприетарный драйвер ядра NTFS, который подчеркивает, почему сообществу необходимо завершить Linux-NTFS.

Таким образом, после решения первоначальной проблемы протест сообщества остыл. Что может быть неудачно, так как правильная реализация часто не завершается. Когда я думаю об этом, Tuxera фактически защищает свою проприетарную реализацию ядра NTFS. Создание низкоуровневого FUSE-драйвера позволило снизить нагрузку на надежный драйвер ядра GPL.

Теперь, чтобы уточнить, я большой сторонник / энтузиаст проекта сообщества. Я также оказался критиком, не имея возможности программирования ядра. У FUSE есть много достоинств, особенно для специальных водителей FS. Жесткие факты по-прежнему сохраняются, драйверы Kernel FS обеспечивают гораздо более высокую производительность. Написание драйверов для ядра занимает гораздо больше времени / талантов, чем сопоставимая реализация FUSE. Оба из которых (Время от талантливых программистов сообщества) всегда были в дефиците.

Я надеюсь, что это объясняет текущую ситуацию в отношении поддержки Linux NTFS.


1

Это вопрос приоритета. Выбор сделать одну вещь означает, что что-то еще не будет сделано. ntfd-3g работает хорошо, поэтому касание драйвера ядра имеет очень низкий приоритет.


2
Кроме того, что они написаны полностью отдельными проектами, и, конечно, для ядра важно иметь драйвер, который действительно работает?
Джек,

Тот факт, что это отдельные проекты, не имеет значения. Фактически, это усугубляет ситуацию, поскольку вам нужно найти кого-то, кто обладает знаниями как о модуле файловой системы ядра, так и о NTFS, чтобы написать драйвер ядра.
Игнасио Васкес-Абрамс

1
Нет, это не имеет значения. На данный момент ядро ​​не имеет поддержки записи NTFS, когда это явно возможно. Вместо этого необходимо стороннее решение. Ваш ответ сродни тому, что надо разрабатывать Gnome, когда KDE отлично справляется со своей работой. Это не совсем удачная аналогия, так как и gnome, и KDE полностью функциональны, но вы понимаете ...
Джек,

3
Вы упускаете суть. Есть много преимуществ наличия работающего драйвера NTFS в ядре, без необходимости полагаться на сторонний драйвер пользовательского пространства. В любом случае, ответ на мой вопрос не «потому что ntfs-3g работает очень хорошо». Если у вас есть Project X и Project Y, оба из которых имеют одинаковую общую цель, а Project Y получает их первым, Projec X не собирается сдаваться. На самом деле, мы видим противоположность этому слишком часто.
Джек,

1
What would a kernel driver do that a FUSE driver wouldn't?: Освободите процессор для других процессов во встроенных системах, не привязывая его к 100% . См. Ubuntu , Mageia , Ubuntu , ArchLinux , openSUSE и т. Д.
Амит Найду

1

Я просто задал себе этот вопрос сегодня, на самом деле. вот мое действительно туманное и не экспертное понимание этого.

Ntfs3g на самом деле не драйвер, это приложение. он использует FUSE (файловая система в пользовательском пространстве) для интерфейса и является кроссплатформенным. поэтому, хотя драйвер ядра ntfs может реализовывать методы, используемые ntfs3g (не так ли? Я не уверен), он будет работать в пользовательском пространстве, что не относится к компетенции ядра.

... это было буквально просто заключение, основанное на одном предложении, которое я прочитал. как это звучит для тех, кто на самом деле образован по этому вопросу? знак равно

на самом деле, я думаю, что я собираюсь вести блог об этом немного. = D


Да, версия ntfs-3g является настолько slooww по сравнению с родным ntfs.sys в Windows.
user2284570
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.