カーネルNTFSドライバーとNTFS-3G


18

他の質問にアクセスできなくなったため、より包括的なフレーズの質問。

そもそも移行すべきではないので、もう一方を削除してください。

現在、Linuxには2つのNTFSドライバーが用意されています。

カーネルに含まれるNTFSドライバー、およびFUSEを使用するユーザースペースNTFS-3Gドライバー。

すべてのアカウントで、NTFS-3Gは完全に機能します。

私の質問は、NTFSファイルシステムがリバースエンジニアリングに成功した場合、カーネルNTFSチームがドライバーの変更を実装していないのはなぜですか?現時点ではまだ実験的としてマークされており、データを破壊する可能性が十分にあります。

注:これは、ディストリビューションとはまったく関係ありません...

回答:


24

残念ながら、これはコミュニティプロジェクトの一般的な問題です。

コミュニティが重大な問題を特定すると、プロジェクトがポップアップしてその問題に対処します。この場合、問題はNTFS FSの使用率です。

Linux-NTFS(カーネルFSドライバー)、最初に作成され、しばらくして開発が停止しました。IMOは悪い選択です。それは優先順位に値し、今でもあります。このドライバーは、Linuxを実行している限り(半年以上)、読み取り専用で安定しています。これは問題の半分にしか対応していないため、コミュニティはどこにでも目を向けました。

Captive NTFS(NTFS.SYSのDriver Wrapper)は、作成が比較的簡単でした。他のプロジェクトにはすでに多くのコードが存在していました。コミュニティが注目した主な理由は、NTFS.SYSがフリーソフトウェアではないためです。

NTFS-3G(ヒューズ)、一緒に平手打ちされ、完全に機能します。このプロジェクトは、Tuxeraの原動力となっています。このプロジェクトは、LinuxからNTFSを利用するという元の問題に対処します。Tuxeraは、独自のプレミアムNTFSカーネルドライバーを提供しています。これは、コミュニティがLinux-NTFSを完成させる必要がある理由を強調しています。

元の問題が解決されたため、コミュニティの抗議は冷静になりました。多くの場合、正しい実装が完了しないため、これは残念なことです。考えてみると、Tuxeraは実際に独自のカーネルNTFS実装を保護していました。劣ったFUSEドライバーを作成し、安定したパフォーマンスのGPLカーネルドライバーへのプッシュを冷却しました。

今、明確にするために、私は巨大なコミュニティプロジェクトサポーター/愛好家です。私はたまたま批評家でもあり、カーネルプログラミングの能力はありません。FUSEには、特に特殊なFSドライバーにとって多くのメリットがあります。冷たくて難しい事実は今でもあり、Kernel FS Driversははるかに強力なパフォーマンスを提供します。カーネルドライバーの作成には、同等のFUSE実装よりもはるかに多くの時間/タレントが必要です。どちらも(才能あるコミュニティプログラマーからの時間)、常に不足しています。

Linux NTFSのサポートに関して、これが現在の状況を説明することを願っています。


1

それは優先事項です。1つのことを選択するということは、他のことができないということです。ntfd-3gはうまく機能するため、カーネルドライバーに触れることの優先度は非常に低いです。


2
それらが完全に別個のプロジェクトによって書かれていることを除いて、カーネルが実際に動作するドライバーを持つことは確かに重要ですか?
ジャック

それらが別々のプロジェクトであるという事実は無関係です。カーネルドライバーを作成するには、カーネルファイルシステムモジュールの知識 NTFSの知識の両方を持っている人を見つける必要があるため、実際にはさらに悪化します。
イグナシオバスケスエイブラムス

1
いいえ、関係ありません。現時点では、明らかに可能な場合、カーネルにはNTFS書き込みサポートがありません。代わりに、サードパーティのソリューションが必要です。あなたの答えは、KDEがうまく機能しているときに、なぜGnomeを開発するのが面倒なのかということに似ています。gnomeとKDEの両方が完全に機能するため、まったく適切な類推ではありませんが、ポイントを得ることができます
ジャック

3
ポイントがありません。サードパーティのユーザースペースドライバーに依存することなく、カーネルでNTFSドライバーを機能させることには多くの利点があります。いずれにしても、私の質問に対する答えは「ntfs-3gが非常にうまく機能するから」ではありません。プロジェクトXとプロジェクトYがあり、どちらにも共通の目標があり、プロジェクトYが最初に到達した場合、プロジェクトXはあきらめません。実際、私たちはそのを頻繁に見ます。
ジャック

1
What would a kernel driver do that a FUSE driver wouldn't?:CPUを100%でペギングしないことにより、組み込みシステム上の他のプロセスのためにCPUを解放します。参照してくださいUbuntuのMageiaUbuntuのArchLinuxopenSUSEのなど
アミットNaidu

1

私は今日、この質問を実際に自分自身に尋ねました。ここに私のぼんやりとした非専門家の理解があります。

ntfs3gは実際にはドライバーではなく、アプリケーションです。インターフェイスにFUSE(ユーザー空間のファイルシステム)を使用し、クロスプラットフォームです。そのため、カーネルntfsドライバーはntfs3gで使用されるメソッドを実装できる可能性はありますが(可能性はありますか?わかりません)、ユーザー空間で動作することになります。

...それは文字通り、私が読んだ一文に基づく単なる結論でした。そのテーマについて実際に教育を受けた人にとって、それはどのように聞こえますか?=)

実際、私はこの少しでブログをするつもりだと思います。= D


はい、ntfs-3gバージョンはWindowsのネイティブntfs.sysと比較して非常に遅いです。
user2284570
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.