我们有时将其称为filesystems
,因为有时这些目录是装入点。您问的唯一一个问题就这么多了...
filesystem
可以指两个不同的事物……或者实际上是同一事物的两个非常不同的方面:
- 用于在存储介质上组织数据的逻辑结构。
- 操作系统用来为进程提供对数据的统一访问的方法。
文件和目录的概念是一个隐喻。对于计算机来说,只有数据,而所有媒体都不过是可以保存数据的设备。一些设备允许读取和写入数据(例如HDD),其他设备仅允许读取数据(例如CD-ROM),甚至还有一些设备仅允许写入数据(例如打印机)。我们使用文件和目录隐喻来构造数据,以便我们可以访问小的数据块,而不是同时访问所有数据。
我们放在存储介质上的文件系统(例如ext4,xfs,fat)构成了结构化部分。我们使用它们将标签放在数据块(文件)上,并使所有标签(目录)具有一致的结构化列表。结构化列表实际上是一棵树。最重要的方面是一棵树只有一个起点,即它的根。维护此结构并确保数据可访问并保持可访问性是一项艰巨的任务,这就是为什么文件系统不仅仅只有一种。
文件系统的另一个方面是OS的工作是使存储在存储设备上的数据对所有程序都可访问。这可以通过两件事来完成:
该操作系统恰好提供了一个(编程)界面来访问文件和目录并与之交互。对于程序/进程,存储设备上的文件系统是ext2,xfs,fat还是其他文件都没有关系。程序/进程以统一的方式访问文件和目录。
操作系统组织所有的存储介质,即它们的文件系统,在一个上级的结构。程序通过此上级结构访问文件和目录,而无需直接与存储设备进行交互。这样,程序不必关心数据实际驻留在哪个设备上。这种上级结构通常被称为内核的“虚拟文件系统”。
将存储设备的文件系统添加到虚拟文件系统称为“挂载”文件系统。当Linux启动时,内核会创建虚拟文件系统(VFS)。在创建之后,它是空的,仅包含其转录的入口点(也称为根)/
。然后内核将文件系统挂载到VFS的根目录。这可以是虚拟磁盘,也可以是硬盘驱动器分区上的文件系统。当它添加到VFS的根目录时,该分区通常称为根文件系统。
现在这是线条模糊的部分,我们看到存储设备上的文件系统和内核的VFS实际上是同一OS任务的两个方面:在安装根文件系统后,VFS包含许多文件和目录,所有这些文件和目录存在于根分区上。但是,每个目录都可以成为“挂载点”。挂载点是VFS将入口点放置到存储设备上文件系统的位置。这意味着,每当我们在目录上安装文件系统时,我们都会告诉VFS,与其访问存储在该目录中的数据,不如访问另一个存储设备上的数据。挂载点通常是空目录,因此,通过在其上挂载其他文件系统,我们不会使数据不可访问。
在安装操作系统时,是要将所有数据放在一个文件系统上,然后成为根文件系统,还是要在多个文件系统之间拆分数据,这取决于您。后者要求您的操作系统挂载所有单独的文件系统,以使所有数据均可访问。如何拆分事物是系统设计的一个问题。这就是为什么有时将您从安装中知道的目录称为文件系统的原因。
对于我们通常在家中使用的计算机,不再需要将安装分为多个文件系统。这样做仍然有充分的理由,但这超出了本文的范围。
为了使本发布的其余内容简短:分区是在存储设备上构造数据的另一种方法。通过分区,人们可以从物理存储设备中切出连续的存储空间,并将它们作为单独的存储设备提供给OS(在OS上可以将文件系统安装到VFS上)。这样做的一个原因可能是一个人只有一个硬盘驱动器,但要使用许多不同的文件系统。根文件系统所在的分区通常称为根分区。