Linux_扩展文件系统的理解及总结

Linux扩展文件系统的理解及总结

no question no answer ——惠勒

什么是文件系统?文件系统的作用是什么?文件系统存在的意义?文件系统作用的对象?
什么是文件?

我们都知道硬盘是一种存储设备,而文件就是存储在硬盘上的数据。
那么这些数据怎么才能被存储到硬盘上呢?这些数据在硬盘上如何才能被有序地组织起来呢?如何高效利用硬盘里的空间呢?等等等等
因此需要一个规则来明确以上的种种问题,就像现实生活中的仓库会有一套如何放置和管理货物的规则,以致让货物放置到适当的地方以分类货物、节约空间、方便以后货物的取用等。

在计算机中像仓库规则这样的一个明确如硬盘这样的存储设备上文件组织的方法就是文件系统。在Linux中,最早引入的文件系统是扩展文件系统(extended filesystem,简记ext)。
第一代的扩展文件系统是ext文件系统,它能够为计算机用户进行基本的硬盘管理,与Unix类似,它使用虚拟目录来操作硬件设备,它的主要功能特点是使用索引结点系统来存放虚拟目录中的文件的信息,索引结点系统在每一个物理设备中创建一个单独的索引节点表,用来存放此设备下的文件信息。虚拟目录中的每一个文件在索引节点表中都有与其对应的一个索引结点,记录了文件的相关信息,其中包括:

  • 文件名
  • 文件大小
  • 文件的属主
  • 文件的属组
  • 文件的访问权限

Linux通过索引节点号(唯一的数值)来引用每一个索引结点。

ext文件系统存在着一些如对单个文件的大小有限制(不得超过2GB)的问题,因此出现了ext2文件系统
想当然,ext2文件系统相对于ext文件系统做了许多升级,如文件大小限制更大、索引结点表可以存储更多的信息,而且还改善了ext文件系统在写操作时的数据碎片化问题。
ext和ext2文件系统都属于普通文件系统,它们的一个致命缺陷就是:不能保证写数据时的安全性。在写数据时,先将数据写入存储设备,然后更新索引节点表。然而如果在这个过程中发生断电等意外情况时,后果就不堪设想。即使文件数据正常保存到了硬盘上,但索引节点表的更新没有完成,ext2文件系统甚至会不知道那个文件的存在!

这时,日志文件系统应运而生
日志文件系统为Linux系统增加了一层安全性,它不再使用将数据直接写入存储设备,再更新索引节点表的方法。而是先将文件的更改临时写入到日志文件(journal)中,再进行对存储设备和索引节点表的更新。当上一次的数据写入未完成时,日志文件系统会读取日志文件并处理未完成写入的数据。

ext3文件系统就是一个日志文件系统,但是它还是缺少一些功能,如无法恢复误删的文件,不能对数据进行压缩和加密等。
ext4文件系统完善了前者的一些不足。如今已成为大多数Linux发行版的默认文件系统,如Ubuntu。


文中涉及的重要概念:
虚拟目录:Linux的目录组织结构。相较于windows系统中,每一个磁盘驱动器都被分配了一个盘符,并且有它自己的目录结构,以便访问其中的文件(如C盘中的Download目录下的test文本文件的路径:C:\Download\test.txt),Linux将所有设备中的文件路径纳入到单个目录结构中(这种结构称为虚拟目录结构)(因此也没有必要使用盘符了),这个目录称为虚拟目录(virtual directory)。如虚拟目录中的某个test文本文件:/home/jobs/test.txt
虚拟目录结构下只有一个称为根(root)目录的基础目录,可以用正斜线/表示。
既然Linux中使用虚拟目录结构,没有盘符标识存储设备,那当我们插入U盘的时候,我们怎么知道U盘的路径在哪呢?
Linux中用挂载点(mount point)实现。
什么是挂载点?
首先,需要了解一个概念:根驱动器——Linux PC上安装的第一块硬盘,而挂载点就是根驱动器上的某个目录,其他额外存储设备如U盘就是通过挂载点来实现访问的。

物理设备:指硬盘和系统所挂接的各种设备,这些设备是物理存在的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值