zoukankan      html  css  js  c++  java
  • [svc]ext4文件删除&访问原理

    文件名信息存放在哪里?

    LINUX的文件名是存在父目录的block里面,并指向这个文件的inode节点,这个文件的inode节点再标记指向存放这个文件的block的数据块。我们删除一个文件,实际上并不是清楚inode节点和block的数据。只是在这个文件的父目录里面的block删除这个文件的名字,从而使这个文件名消失,并且无法指向这个文件的 inode节点,当没有文件名指向这个inode节点同时没有进程调用的时候,这个inode和下面的block是无主的。在磁盘检查或者有内容写入的时候会是否释放inode节点和存放这个文件的数据块,并更新inodeMAP和blockMAP今后让这些位置存放其他文件数据。

    文件的访问(读取)

    企业面试题: 请从linux文件系统角度详细描述读取文件过程

    扩展知识:读取文件的原理过程

    
    读取/tmp/text.txt的过程如下:
    1.首先查根目录/ inode 信息,然后查找到根目录的block
    2.在根的 block 信息里查找到/tmp的目录名,进而找到/tmp的inode 
    3.然后找到/tmp的block信息,查找到 text.txt的文件名、inode信息与权限属性信息
    4.进而查找到文件的 block信息而读取到文件的内容
    

    文件的删除

    被删除的条件: inode0 && icount0
    企业案例-磁盘满了

    我为何要理解这玩意, 牵扯到linux权限, 删除一个目录下的文件, 操作对象有 父目录的inode+文件的inode

  • 相关阅读:
    uniq 只能相邻行去重
    uniq 只能相邻行去重
    uniq 只能相邻行去重
    KVO(1)
    KVO(1)
    KVO(1)
    KVO(1)
    解决 Retrofit 多 BaseUrl 及运行时动态改变 BaseUrl ?
    jquery 请求成功后
    事故现场:MySQL 中一个双引号的错位引发的血案
  • 原文地址:https://www.cnblogs.com/iiiiher/p/8511478.html
Copyright © 2011-2022 走看看