📜  Linux文件系统

📅  最后修改于: 2020-12-07 07:42:03             🧑  作者: Mango

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中的所有其他目录。

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 OS中。通常,我们不需要访问或读取隐藏文件。 Linux中的隐藏文件在文件名(例如.ignore)之前用点号(。)表示。要访问文件,我们需要在文件管理器中更改视图或需要在Shell中使用特定命令。

Linux文件系统的类型

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

让我们详细了解每个文件系统:

1. Ext,Ext2,Ext3和Ext4文件系统

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

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

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

2. JFS文件系统

JFS代表Journaled File System ,它是由IBM针对AIX Unix开发的。它是Ext文件系统的替代方法。它也可以用来代替Ext4,因为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大小相等的交换空间。