浅析文件系统

文件系统:

Linux提供了层次结构的目录和文件,文件系统将磁盘划分为每1024(或512)个字节为一组的块。编号从0到整个磁盘空间的最大块数

当我们使用ls -来查看时,我们发现,除了看到文件名,还能看到文件元数据

  • 每行包含7列:模式,硬链接数,文件所有者,组,大小,最后修改事件,文件名
  • ls -l读取存储咋磁盘上的文件信息,任何显示出来
  • 除了用这个方式来读取,还可以用一个stat命令能够看到更多的信息

 

ionde:

为了能够解释清楚inode我们先简单了解一下文件系统

  1. 超级块:存放文件系统本身的结构信息;数据块还有多少未被使用,属性区还有多少未被使用
  2. i节点:存放文件属性,如文件大小,所有者,最近修改时间等
  3. 数据区:存放文件内容。磁盘上所有块的大小都相同,如果文件所包含了超过一个块的内容,则文件内容存放再多个磁盘块中,并把磁盘块的分配情况记录再文件的i节点中的磁盘序列表中

 创建一个文件失败的原因:

  1. 数据区满了
  2. inode满了
  3. 位图满了(可能小)

将属性与数据分开存放的想法看起来简单,但是实际上是如何工作的呢?我们通过touch一个新文件来看看如何工作

 

 

创建一个新文件主要有以下4个操作:

  1.  存储属性:内核先找到一个空闲的i节点(这里是1049405),内核把文件信息记录到其中
  2. 存储数据:该文件需要存储再三个磁盘块,内核找到了三个空闲快,分别是300,500,800.将内核缓冲区的第一块数据复制到300,下一块复制到500,以此类推
  3. 记录分配情况:文件内容按300,500,800存放。内核在index上的磁盘分布区记录了上述块列表
  4. 添加到文件名目录:新文件名是abc,Linux如何在当前的,别中记录这个文件?内核将入口(263466,abc)添加到目录文件。文件名和inode之间的对应关系将文件名和文件的内容及属性连接起来

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值