答え1
バージョン7 Unixは単一のファイルシステムのみをサポートすると思います。最新のオペレーティングシステム(Linuxを含む)は多数のファイルシステムをサポートしています。 Linuxカーネルには、これらのさまざまなファイルシステムがPosixおよびLinuxプログラムが期待するように動作するようにする「仮想ファイルシステム」コード階層があります。例えば。 LinuxはさまざまなMS-DOSファイルシステムとNTFSを使用できます。これらのシステムのファイル権限は、正確にLinuxが望むユーザー/グループ/その他、読み取り/書き込み/実行ではありません。したがって、仮想ファイルシステムコードはそれを調整するのに役立ちます。一部のファイルシステム(MS-DOS FATファイルシステムやReiserFSなど)はディレクトリをファイルとして処理しないため、仮想ファイルシステムコードはバージョン7 UFSのようにディレクトリを特別にタグ付けされたファイルとして処理しません。open()
ディレクトリに対してシステムコールを実行できますが、ディレクトリからエントリをgetdents()
読み取るにはシステムコールを使用する必要があります。
答え2
「UNIX(およびLinux)のすべてがファイルです」という意味ではまだファイルです。プログラムcat
がよりスマートになり、「これはディレクトリ型ファイルなので、テキストファイルとして表示することは意味がありません」ということに気づいたので、動作が更新されました。