Linux 文件系统

Linux 文件系统是磁盘驱动器或分区上的结构化文件集合。分区是一段内存,包含一些特定数据。在我们的机器中,内存可以有各种分区。通常,每个分区都包含一个文件系统。

通用计算机系统需要系统地存储数据,以便我们可以在更短的时间内轻松访问文件。它将数据存储在硬盘(HDD)或某种等效的存储类型上。维护文件系统的原因可能如下:

  • 主要是计算机将数据保存到RAM存储中;如果关闭,它可能会丢失数据。但是,有非易失性RAM(闪存RAM和SSD)可用于在电源中断后维护数据。
  • 与标准RAM相比,数据存储在硬盘驱动器上是首选,因为RAM的成本高于磁盘空间。相对于RAM,硬盘成本正在逐渐下降。

Linux 文件系统包含以下部分:

  • 根目录 (/)
  • 特定的数据存储格式(EXT3、EXT4、BTRFS、XFS 等)
  • 具有特定文件系统的分区或逻辑卷。

什么是 Linux 文件系统?

Linux 文件系统通常是 Linux 操作系统的内置层,用于处理存储的数据管理。它有助于在磁盘存储上排列文件。它管理文件名,文件大小,创建日期以及有关文件的更多信息。

如果我们的文件系统中有不受支持的文件格式,我们可以下载软件来处理它。

Linux 文件系统结构

Linux 文件系统具有分层文件结构,因为它包含根目录及其子目录。可以从根目录访问所有其他目录。一个分区通常只有一个文件系统,但它可能有多个文件系统。

文件系统的设计方式使其可以管理非易失性存储数据并为非易失性存储数据提供空间。所有文件系统都需要一个命名空间,该命名空间是一种命名和组织方法。命名空间定义命名过程、文件名长度或可用于文件名的字符子集。它还定义了内存段上文件的逻辑结构,例如使用目录来组织特定文件。描述命名空间后,必须为该特定文件定义元数据描述。

数据结构需要支持分层目录结构;此结构用于描述特定块的可用和已用磁盘空间。它还具有有关文件的其他详细信息,例如文件大小,创建,更新和上次修改的日期和时间。

此外,它还存储有关磁盘部分的高级信息,例如分区和卷。

高级数据及其表示的结构包含有关存储在驱动器上的文件系统的信息;它是不同的,独立于文件系统元数据。

Linux 文件系统包含由两部分组成的文件系统软件实现架构。请考虑下图:

文件系统需要一个 API(应用程序编程接口)来访问函数调用,以便与文件系统组件(如文件和目录)进行交互。API 有助于创建、删除和复制文件等任务。它有助于定义文件系统上文件排列的算法。

给定文件系统的前两部分一起称为 Linux 虚拟文件系统。它为内核和开发人员提供了一组命令来访问文件系统。此虚拟文件系统需要特定的系统驱动程序为文件系统提供接口。

目录结构

目录帮助我们存储文件并在需要时找到它们。此外,目录被称为文件夹,因为它们可以假定为文件以物理桌面类比的形式驻留的文件夹。目录可以在 Linux 和其他几个操作系统中组织在树状层次结构中。

Linux 的目录结构在 Linux FHS(文件系统层次结构标准)中有很好的文档和定义。如果通过由“/”正斜杠链接的目录的顺序更深的名称(如 /var/spool/mail 和 /var/log)访问这些目录,则引用这些目录。这些称为路径。

下表给出了一个非常简短的标准、定义和众所周知的顶级 Linux 目录列表及其用途:

  • /(根文件系统):它是顶级文件系统目录。它必须包括在挂载另一个文件系统之前引导 Linux 系统所需的每个文件。由于系统启动后的根文件系统目录,所有其他文件系统都挂载在明确定义的标准挂载点上。
  • /boot:它包括启动 Linux 计算机所需的静态内核和引导加载程序配置以及可执行文件。
  • /bin:此目录包含用户可执行文件。
  • /dev:它包括连接到系统的所有硬件设备的设备文件。这些不是设备驱动程序;相反,它们是指示系统上所有设备并提供对这些设备的访问的文件。
  • /etc:它包括主机系统的本地系统配置文件。
  • /lib:它包括启动系统所需的共享库文件。
  • /home:主目录存储器可用于用户文件。所有用户在 /home 中都有一个子目录。
  • /mnt:它是基本文件系统的临时挂载点,可以在管理员工作或修复文件系统时使用。
  • /media:用于安装外部可移动媒体设备(如可能链接到主机的 USB 拇指驱动器)的位置。
  • /opt:它包含可选文件,如供应商提供的应用程序,必须放置在这里。
  • /root:它是根用户的主目录。请记住,它不是“/”(根)文件系统。
  • /tmp:它是操作系统和几个程序用于存储临时文件的临时目录。此外,用户可以在此处临时存储文件。请记住,此目录中的文件可能随时被删除,恕不另行通知。
  • /sbin:这些是系统二进制文件。它们是用于系统管理的可执行文件。
  • /usr:它们是只读和可共享的文件,包括可执行库和二进制文件、人员文件和多种文档类型。
  • /var:此处保存变量数据文件。它可以包含MySQL,日志文件,其他数据库文件,电子邮件收件箱,Web服务器数据文件等内容。

Linux 文件系统特性

在 Linux 中,文件系统创建一个树结构。所有文件都排列为树及其分支。最顶层的目录称为根 (/) 目录。Linux 中的所有其他目录都可以从根目录访问。Linux 文件系统的一些主要功能如下:

  • 指定路径:Linux 不使用反斜杠 (\) 来分隔组件;它使用正斜杠 (/) 作为替代方法。例如,与在 Windows 中一样,数据可能存储在 C:\My Documents\ Work,而在 Linux 中,它将存储在 /home/ My Document/ Work 中。
  • 分区、目录和驱动器:Linux 不像 Windows 那样使用驱动器号来组织驱动器。在 Linux 中,我们无法判断我们是在寻址分区、网络设备还是“普通”目录和驱动器。
  • 区分大小写:Linux 文件系统区分大小写。它区分小写和大写文件名。例如,在 Linux 中 test.txt 和 Test.txt 之间存在差异。此规则也适用于目录和 Linux 命令。
  • 文件扩展名:在 Linux 中,文件可能具有扩展名“.txt”,但文件不必具有文件扩展名。在使用 Shell 时,它会给初学者区分文件和目录带来一些问题。如果我们使用图形文件管理器,它会符号化文件和文件夹。
  • 隐藏文件:Linux 区分标准文件和隐藏文件,大多数配置文件隐藏在 Linux 操作系统中。 通常,我们不需要访问或读取隐藏文件。Linux 中的隐藏文件在文件名前用点 (.) 表示(例如 .ignore)。要访问文件,我们需要更改文件管理器中的视图或需要在 shell 中使用特定命令。 

Linux 文件系统的类型

当我们安装Linux操作系统时,Linux提供了许多文件系统,例如Ext,Ext2,Ext3,Ext4,JFS,ReiserFS,XFS,btrfs和swap。

让我们详细了解这些文件系统中的每一个:

1. 分机、分机2、分机3和分机4文件系统

文件系统 Ext 代表 扩展文件系统。它主要是为MINIX OS开发的。Ext 文件系统是旧版本,由于某些限制而不再使用。

Ext2 是第一个允许管理 3 TB 数据的 Linux 文件系统。Ext2 是通过 Ext2 开发的;它是 Ext3 的升级版本,包含向后兼容性。Ext<> 的主要缺点是它不支持服务器,因为此文件系统不支持文件恢复和磁盘快照。

Ext4 文件系统是所有 Ext 文件系统中速度较快的文件系统。它是SSD(固态驱动器)磁盘非常兼容的选项,并且是Linux发行版中的默认文件系统。

2. JFS 文件系统

JFS代表日志文件系统,它是由IBM为AIX Unix开发的。它是 Ext 文件系统的替代方法。它也可以代替 Ext4,在需要少量资源的情况下实现稳定性的地方。当 CPU 功率有限时,它是一个方便的文件系统。

3. ReiserFS文件系统

ReiserFS 是 Ext3 文件系统的替代方案。它具有改进的性能和高级功能。在早期,ReiserFS 被用作 SUSE Linux 中的默认文件系统,但后来它改变了一些策略,因此 SUSE 返回到 Ext3。此文件系统动态支持文件扩展名,但它在性能方面存在一些缺点。

4. XFS文件系统

XFS 文件系统被认为是高速 JFS,它是为并行 I/O 处理而开发的。NASA仍在使用这个文件系统及其高存储服务器(300+ TB服务器)。

5. Btrfs 文件系统

Btrfs 代表 B 树文件系统。它用于容错、修复系统、有趣的管理、广泛的存储配置等。它不适合生产系统。

6. 交换文件系统

交换文件系统用于在系统休眠期间在 Linux 操作系统中进行内存分页。永不进入休眠状态的系统需要具有与其 RAM 大小相等的交换空间。

什么是 Linux 文件系统中的挂载?

在 Linux 中,“挂载”(文件系统术语)是指计算的最初几天,此时物理上需要将可移动磁盘或磁带包挂载到正确的驱动器设备上。在磁盘包上,文件系统在逻辑上将由操作系统挂载,以使内容在物理上位于驱动器上后可供应用程序、操作系统和用户访问。

  • Linux 的根文件系统在引导序列的早期就挂载在 / 目录(根目录)上。
  • 几个文件系统后来由Linux的启动程序安装,要么在SystemV上安装,要么在新Linux版本中通过systemd。
  • 启动期间的文件系统挂载由配置文件处理,即 /etc/fstab。
  • 一种简单的理解方法是 fstab 是“文件系统表”的缩写,它是一个要挂载的文件系统列表、它们的选项以及特定文件系统可能需要的指定挂载点。

文件系统可以在 mount 命令的帮助下挂载到可用的挂载点/目录上。换句话说,任何应用为挂载点的目录都不应包含其他文件,并且应为空。Linux 不会避免用户将文件系统挂载到已经可用的文件系统或包含文件的目录上。实际内容将被覆盖,如果我们在任何现有的文件系统或目录上挂载任何文件系统,则仅显示新挂载的文件系统内容。

热门文章

优秀文章