是什么让Unix文件系统更优于Windows文件系统?

时间:2008-08-30 02:25:53

标签: unix filesystems

我承认我不知道unix操作系统的内部工作原理,所以我希望有人可以对这个话题有所了解。

为什么Unix文件系统比Windows文件系统更好?

grep在Windows上是否也能正常工作,或者是否存在一些根本不同的东西使它在Unix机器上更强大?

e.g。我听说在Unix系统中,给定目录中的文件数量不会减慢文件访问速度,而在Windows上,直接文件访问会随着给定文件夹中文件数量的增加而降低,这是真的吗?

更新: 布拉德,没有unix file system这样的东西?

9 个答案:

答案 0 :(得分:19)

Unix和Windows之间文件系统语义的一个根本区别就是inode的想法。

在Windows上,文件名直接附加到文件数据。这意味着操作系统会阻止某人删除当前打开的文件。在某些版本的Windows上,您可以重命名当前打开的文件,而在某些版本上则不能。

在Unix上,文件名是指向inode的指针,inode是文件数据实际存储的位置。这有几个含义:

  • 您可以使用两个不同的文件名来引用相同的基础文件。这通常称为硬链接。文件数据只有一个副本,因此通过一个文件名进行的更改将显示在另一个文件夹中。
  • 您可以删除(也称为unlink)当前打开的文件。所有发生的事情都是删除目录条目,但这不会影响可能仍然打开文件的任何其他进程。打开文件的进程会挂起到inode,而不是目录条目。当进程关闭文件时,操作系统会删除inode,因为没有更多的目录条目指向它,并且没有更多进程打开inode。

这种差异很重要,但与grep的表现无关。

答案 1 :(得分:8)

首先,没有“Unix文件系统”这样的东西。

第二,你的论点在什么前提下休息?你听说有人说它优越吗?也许如果你提供了一些来源,我们可以批评具体的论点。

编辑:好的,根据http://en.wikipedia.org/wiki/Comparison_of_file_systems,NTFS的绿色框比UFS1和UFS2都多。如果绿框是衡量“更好”的标准,那么NTFS就是“更好”。

还是一个愚蠢的问题。 :-P

答案 2 :(得分:4)

我觉得你有点困惑。没有'Unix'和'Windows'文件系统。 * nix系列文件系统包括ext3,ZFS,UFS等.Windows主要支持FAT16 / 32及其自己的文件系统NTFS。但是今天linux系统可以读写NTFS。更多文件系统here

我不能告诉你为什么一个人比另一个人好。

答案 3 :(得分:3)

我完全不熟悉UNIX文件系统的内部工作方式,比如存储位和字节的方式,但实际上该部分是可互换的(ext3reiserfs等)。

当人们说UNIX文件系统更好时,他们可能会说,“哦,ext3以比NTFS更少的方式存储比特”,但他们也可能在谈论在上面的共同层。它们可能指的是文件的路径不一定与任何特定设备相对应。例如,如果将程序文件移动到第二个磁盘,则可能必须将它们称为“D:\ Program Files”,而在UNIX / usr / bin中可能是硬盘驱动器,网络驱动器,CD ROM或RAM。

另一种可能性是人们使用“文件系统”来表示路径的组织。比如,例如,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下的表现相当不错。事实上,我发现全文搜索我从grep获得的结果比Windows内置的搜索工具更好!

答案 4 :(得分:1)

确保* nix文件系统在实际文件管理方面比fat16 / 32或NTFS做得好得多。 * nix系统试图阻止对Windows进行碎片整理的需要......什么都没有?除此之外,我真的不知道什么会比另一个更好。

答案 5 :(得分:1)

Windows和Unix操作系统如何向用户公开磁盘驱动器以及驱动器空间的分区方式存在差异。

两种操作系统的最大区别在于Unix基本上将所有物理驱动器视为一个逻辑驱动器。 (这不完全是它的工作方式,但应该给出足够好的图片。)从用户的角度来看,这样可以实现更简单的文件系统,因为没有要处理的驱动器号。我有一个名为/ usr / bin的文件夹,可以跨多个物理驱动器。如果我需要扩展该分区,我可以通过添加新驱动器,重新映射文​​件夹和移动文件来实现。 (再次,有点简化,但它得到了重点。)

另一个区别是,当您格式化驱动器时,会留出一定数量(默认情况下,作为管理员,您可以根据需要将大小更改为0)供“root”帐户(管理员帐户)使用这使得管理员几乎总能能够登录到机器,即使用户已经填满了磁盘并且正在接收“磁盘空间不足”的消息。

答案 6 :(得分:1)

一个简单的答案:

Windows是专有的,这意味着除了Windows之外没有人能看到它的代码,而unix/linux是开源的。因此它是开源的,许多更明亮的思想为文件系统做出了贡献,使其成为强大而有效的,因此有效的命令如grep在真正需要时来到我们的救援中。

答案 7 :(得分:0)

我不太清楚文件系统的内容是否能够回答第一个问题,除非我在阅读NTFS的第一个描述时听起来非常像Berkley Fast Filesystem。

至于第二个,Windows有很多greps。当我以前不得不使用Windows时,我总是首先安装Cygwin。

答案 8 :(得分:-1)

答案结果是文件系统与文件系统访问驱动程序无关。

特别是,与ext2 / ext3相比,Windows上NTFS的实现速度非常慢。同样在Windows上,“无法删除正在使用的文件”,即使NTFS应该能够支持它。