3.linux文件操作跟磁盘存储对应过程

         由于iNode太多了,从iNode中找一个特定的条目太麻烦了,所以我们要对iNode抽象一层索引出来。计算机最快的一种查找方式就是键值对查找。

         添加是怎么完成的?

         当文件系统创建完成之后,会在整个元数据区域为每一个iNode创建一个位图(bitmap)区域。每一个iNode都在bitmap中占据一位。已使用的iNode,其标志位置为1,未使用的iNode,其标志位置为0。当我们需要找一个空闲的iNode时,只需要扫描一下bitmap。同理数据区也是用bitmap来管理block。前者称为节点位图,后者称为块位图。

         有了bitmap就大大加快了创建文件时的工作过程。

 

         删除是怎么完成的?

         删除文件时只需要在节点位图中把文件对应的iNode标记为0就可以了。

当要统计硬盘已使用空间时,扫描节点位图中iNode标志位为1的文件占多少个block,然后乘以每个block的大小。为什么删除了的文件能找回来,是因为数据在block中没有动,只是把block对应的块位图标记为0。当我们在存新的文件进来时,就把块位图标志位为0block覆盖掉。这也就是为什么当我们删除了文件,如果添加好多新的文件进来后就不容易找回旧文件的原因。块位图标记为0后,块位图对应的iNode也要标记为0,这个iNode以后也可以被其他文件所使用了,再者,目录block中对应的条目也被删除了。

文件粉碎机的原理:生成一大堆随机数把以标志位为0block覆盖掉。强行覆盖block

 

剪切是怎么完成的?

本来文件放在/var/log/messages,把文件剪切到/var/test下,改名a.txt

首先找到test目录,在test目录的路径映射表上建一个条目,名称叫a.txta.txtiNode直接指向/var/log/messagesiNode,然后把/var/log目录上的messages条目删除掉就行了。剪切的过程就是在一个目录上把对应的条目删除,在另一个目录上创建新的条目。剪切既没有动数据也没用动iNode,只是更改的目录的条目。然而剪切到另一个分区是另一码事了。因为每一个分区都是独立。一个分区就是一个文件系统。跨分区剪切的过程是先复制再删除。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值