只是文件夹的布局?

只是文件夹的布局?

我从小就使用 Windows,当我听到“Windows 文件系统”这个词时,我会想到目录中的目录(文件夹),一个名为 SYSTEM 的文件夹,一个名为 PROGRAM FILES 的文件夹等等。这就是系统吗?只是文件夹的布局?

然后我最近开始使用 Linux,我的参考书说在 Linux 文件系统中一切都从根开始并从那里分支。这与 Windows 有什么不同?我的意思是,Linux 系统和 Windows 系统似乎只是设置目录树的两种方式。这就是文件系统的意思吗?

答案1

只是文件夹的布局?

听起来好得令人难以置信……

以 FAT32 文件系统为例。我可以在上面安装 Windows XP,但我也可以在存储卡上使用它。在存储卡上,你没有你总结的那些文件夹。

所以...不要将操作系统系列的目录布局与文件系统混淆。

这就是文件系统的意思吗?

不...它指的是使目录结构正常工作的底层位和字节。

底层的位和字节?给我看看 FAT32!

让我们看看FAT32看起来,它有:

  • 开头的一些标头扇区,如卷 ID 和保留扇区
  • 两个文件分配表,让我们知道我们的文件在哪里。
  • 包含我们所有目录和文件数据的集群。
  • 一些我们无法使用的非常小的未使用空间。

FAT 表由许多如下所示的条目组成,使我们能够确定目录或文件在簇空间中的存储位置,以及一些属性和大小。

目录条目将指向目录/文件条目列表......

在集群空间中,我们现在可以遍历集群来查找所需的数据。集群本质上包含数据和信息,下一个片段是

在此处输入图片描述

其他文件系统有区别吗?给我看看 NTFS!

我将向你展示一张图片,以便你能够注意到差异,其余的是读者的作业:更多信息可以在此博客存档或谷歌。

主要思想是 NTFS 比 FAT32 有了很大的改进,更加强大/高效。通过使用位图可以更好地了解(未)使用的空间,从而进一步帮助防止碎片化。等等...

http://thinkdifferent.typepad.com/photos/uncategorized/04ntfsfilesystem.png

Linux 上的文件系统怎么样?给我看看 ext2/3!

这个想法是 ext2/ext3 使用超级块和 inode;这允许软链接和硬链接、文件目录、具有多个名称的文件等等。主要要点是抽象化,以允许文件系统能够做更多的事情东西...

http://thinkdifferent.typepad.com/photos/uncategorized/03extfilesystem.png

答案2

Linux 和 Windows 之间的最大区别在于,至少在文件系统和目录树方面,Linux 认为“一切都是文件”,一切都来自一个根目录。这也适用于几乎所有 Unix 衍生的操作系统,如 BSD、OS X、Solaris 等,但我将只说“Linux”是通用的(尽管并不完全准确)。

但这在实践中意味着什么?

Windows 允许其文件系统有多个命名根。您可以将其理解为驱动器号:C: D: E:等等。每个都有一个根(\),以及一个从根开始的树。Windows 的最新版本允许诸如卷安装点之类的东西,其中可以将卷(您认为是分区)安装到现有的空文件夹中。因此,D:您可以将它安装到,而不是 \ 表示光驱(CD/DVD/BR)的根C:\Optical。这更类似于 Linux 的做法。Windows 中的所有内容都有一个底层的、单根的对象命名空间,类似于 Linux 使用的命名空间,并由对象管理器,但大多数用户很少看到它被引用,因为它主要用于内核。

Linux 有一个根:/一切继承自它,它不一定代表你的硬盘。硬盘、光驱、内存卡、网络共享、打印机、扫描仪、CPU、RAM、进程……一切都代表在这个单一命名空间内的某个地方,任何具有标准文件管理 API 的进程都可以访问它,假设你有足够高的访问级别。仅仅因为你可以读取或写入它并不意味着它是 Linux 硬盘上的文件。例如,设备通常安装在 中/dev,因此访问其中的东西通常意味着你正在与设备对话——可能是声卡、扫描仪或相机等。这些被称为设备文件进程是一种特殊的“文件系统”,通常会挂载到/proc每个正在运行的进程并为其设置一个“目录”,每个目录中的文件与用于调用该进程的命令行、内存映射、打开的文件等相关。 系统文件系统是另一个特殊的文件系统(安装在 上/sys),用于公开有关正在运行的内核对象的大量信息,也可以通过简单地写入特定文件来微调正在运行的内核。

答案3

您可以将文件系统视为存储文件和文件夹的不同格式,有点类似于 MS Word 和 PDF 是存储文档的不同格式,或者 MP3 和 WAV 是存储音频的不同格式。

给定一些文件和文件夹,文件系统是将它们存储到磁盘的格式和代码,以便可以再次读取它们。

就像并非所有视频播放器都能播放所有视频格式一样,并非所有操作系统都能读取所有文件系统。例如,如果您将 Linux 上的文件存储在 ext3 格式的 USB 记忆棒上,Windows 无法读取该文件,因为它不知道如何处理 ext3 文件系统。

常见的文件系统包括

  • FAT 和 NTFS(Windows,NTFS 是较新 Windows 版本的标准)
  • ext3 和 ext4 (Linux)
  • HFS 加 (OS X)
  • ISO 9660 和 UDF(CD、DVD 和蓝光)

请参阅维基百科文件系统的比较

答案4

文件系统不仅涉及目录树的设置方式,还涉及这些信息在介质上的编码方式。Linux 有几种文件系统:ext3、xfs、raiserfs 等。

相关内容