-1

私は unix オペレーティング システムの内部の仕組みを知らないことを認めます。そのため、誰かがこのトピックに光を当ててくれることを期待していました。

Unix ファイル システムが Windows ファイル システムより優れているのはなぜですか?

grep は Windows でも同様に機能しますか? それとも、Unix ボックスでより強力になる根本的な違いがありますか?

たとえば、Unix システムでは、特定のディレクトリ内のファイルの数によってファイル アクセスが遅くなることはありませんが、Windows では、特定のフォルダ内のファイルの数が増えるとファイルへの直接アクセスが低下すると聞きました。本当ですか?

更新: ブラッド、UNIX ファイル システムのようなものはありませんか?

4

9 に答える 9

19

Unix と Windows のファイルシステムのセマンティクスにおける基本的な違いの 1 つは、inode の概念です。

Windows では、ファイル データにファイル名が直接付けられます。これは、OS が、現在開いているファイルを誰かが削除できないようにすることを意味します。Windows の一部のバージョンでは、現在開いているファイルの名前を変更できますが、一部のバージョンではできません。

Unix では、ファイル名は、ファイル データが実際に格納される場所である inode へのポインタです。これにはいくつかの意味があります。

  • 同じ基になるファイルを参照する 2 つの異なるファイル名を持つことができます。これはしばしばハードリンクと呼ばれます。ファイル データのコピーは 1 つしかないため、1 つのファイル名で行われた変更は、別のファイル名にも反映されます。
  • unlink現在開いているファイルを削除 ( とも呼ばれます) できます。ディレクトリ エントリが削除されるだけですが、ファイルを開いている可能性のある他のプロセスには影響しません。ファイルを開いているプロセスは、ディレクトリ エントリではなく i ノードにハングアップします。プロセスがファイルを閉じると、OS は i ノードを削除します。これは、それを指しているディレクトリ エントリがなくなり、i ノードが開いているプロセスがなくなるためです。

この違いは重要ですが、 のパフォーマンスなどとは無関係ですgrep

于 2008-08-30T02:43:34.237 に答える
9

まず、「Unix ファイル システム」などというものはありません。

第二に、あなたの議論はどのような前提に基づいていますか? 誰かがそれが優れていると言ったのを聞いたことがありますか?おそらく、何らかの情報源を提供していただければ、特定の議論を批判することができます.

編集: http://en.wikipedia.org/wiki/Comparison_of_file_systemsによると、NTFS には UFS1 と UFS2 の両方よりも多くの緑色のボックスがあります。緑色のボックスが「より良い」尺度である場合、NTFS は「より良い」です。

相変わらず馬鹿げた質問です。:-p

于 2008-08-30T02:30:20.490 に答える
4

少し混乱していると思います。「Unix」と「Windows」のファイル システムはありません。*nix ファミリーのファイルシステムには、ext3、ZFS、UFS などが含まれます。Windows は、主に FAT16/32 と独自のファイルシステム NTFS をサポートしています。しかし、今日の Linux システムは NTFS を読み書きできます。その他のファイルシステムはこちら

ただし、一方が他方よりも優れている理由はわかりません。

于 2008-08-30T02:30:13.207 に答える
3

ビットとバイトがどのように格納されるかなど、UNIXファイルシステムの内部の仕組みにはまったく精通していませんが、実際にはその部分は交換可能です(ext3reiserfsなど)。

UNIXファイルシステムの方が優れていると人々が言うとき、彼らは「ああ、ext3はNTFSよりも破損が少ない方法でビットを保存する」と言っているのかもしれませんが、上の共通層で行われた設計上の選択について話している可能性もあります。 . それらは、ファイルのパスが特定のデバイスに必ずしも対応していないことを指している可能性があります。たとえば、プログラム ファイルを 2 番目のディスクに移動する場合は、おそらく "D:\Program Files" として参照する必要がありますが、UNIX では /usr/bin はハード ドライブ、ネットワーク ドライブ、CD ROM などになる可能性があります。 、またはRAM。

もう 1 つの可能性は、人々がパスの編成を意味するために「ファイル システム」を使用していることです。たとえば、Windows は一般に "C:\Program Files\CompanyName\AppName" のプログラムを好みますが、特定の UNIX ディストリビューションではそれらのほとんどを /usr/local/bin に配置することがあります。後者の場合、はるかに小さい PATH 変数を使用して、コマンド ラインからより多くのシステムに簡単にアクセスできます。

また、grep について言及したので、カーネルや libc などのシステム ライブラリのすべてのソース コードが /usr/local/src に格納されている場合、システム ライブラリの内部からの特定のエラー メッセージに対して再帰的な grep を実行するのは非常に困難です。 /usr/local/library-name/[bin|src|doc|etc] のように配置されている場合よりも簡単です。ただし、どこを検索しているかが既にわかっている場合は、cygwin grep は Windows で非常にうまく機能します。実際、全文検索では、Windows に組み込まれている検索機能よりも grep の方が優れた結果が得られることがわかりました。

于 2008-08-30T02:53:11.530 に答える
1

1つの簡単な答え:

Windowsunix/linuxはプロプライエタリです。つまり、オープンソースである間は、Windows以外の誰もそのコードを見ることができません。そのため、オープンソースであるため、多くの明るい心がファイルシステムに貢献しており、ファイルシステムを堅牢で効率的なものの1つにしています。したがって、grepのような効果的なコマンドは、本当に必要なときに私たちの助けになります。

于 2012-05-19T10:40:36.010 に答える
1

*nix ファイルシステムは、fat16/32 や NTFS よりもはるかに優れた実際のファイル管理を行います。*nix システムは、Windows でのデフラグの必要性を防ごうとしています...何もしないのですか? それ以外は、何が他のものよりも優れているのか本当にわかりません。

于 2008-08-30T02:34:04.400 に答える
1

Windows と Unix オペレーティング システムがユーザーにディスク ドライブを公開する方法と、ドライブ スペースを分割する方法には違いがあります。

2 つのオペレーティング システムの最大の違いは、Unix が基本的にすべての物理ドライブを 1 つの論理ドライブとして扱うことです。(これは正確な動作ではありませんが、十分なイメージが得られるはずです。) これにより、処理するドライブ文字がないため、ユーザーの観点からはファイル システムがはるかに単純になります。複数の物理ドライブにまたがる /usr/bin というフォルダーがあります。そのパーティションを拡張する必要がある場合は、新しいドライブを追加し、フォルダーを再マッピングし、ファイルを移動することで拡張できます。(繰り返しますが、やや単純化されていますが、要点はわかります。)

もう 1 つの違いは、ドライブをフォーマットすると、「root」アカウント (管理者アカウント) が使用するために、一定量が確保されることです (デフォルトでは、管理者として、必要に応じてサイズを 0 に変更できます)。ユーザーがディスクをいっぱいにして「ディスク容量が不足しています」というメッセージを受け取っている場合でも、管理者はほとんどの場合マシンにログインできます。

于 2008-08-30T02:44:10.223 に答える
0

NTFS の最初の説明を読んだとき、バークレーの高速ファイルシステムに非常によく似ているように聞こえた以外は、最初の質問に答えるほどファイル システムの本質について十分に知りません。

2 つ目については、Windows 用の grep がたくさんあります。過去に Windows を使用しなければならなかったときは、常に Cygwin を最初にインストールしていました。

于 2008-08-30T02:28:35.380 に答える
-1

答えは、ファイルシステムとはほとんど関係がなく、すべてファイルシステム アクセス ドライバーと関係があることが判明しました。

特に、Windows での NTFS の実装は、ext2/ext3 に比べて非常に遅いです。また、Windows では、NTFS でサポートできるはずなのに、「使用中のファイルを削除できません」というメッセージが表示されます。

于 2008-10-18T18:30:49.980 に答える