热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux文件系统盘片解析

Linux对于文件系统的支持层解析Linux中使用文件系统都分几个部分有关于Linux中高速缓冲区的管理程序分页机制每页4KB每个程序不是所有页都读入高速缓冲区,如

Linux对于文件系统的支持层解析


  • Linux中使用文件系统都分几个部分

  1. 有关于Linux中高速缓冲区的管理程序 分页机制 每页4KB 每个程序不是所有页都读入高速缓冲区,如果执行中出现没有加入高速缓冲区的页,会触发缺页中断
  2. 文件系统的底层通用函数(对于硬盘的读写 分配 释放等,对于目录的几点管理 inode 内存与磁盘的映射)
  3. 对于文件数据进行读写操作模块(VFS:虚拟文件系统 硬件驱动和文件系统的关系 pipe 块设备的读取)
  4. 文件系统与其他程序的接口实现(fopen 关闭 创建等使用文件的调用方式)


  • 文件系统的基本概念

    磁盘中要有目录的映射,把磁盘分成盘片,每一个盘片都有一个文件系统的子系统(章节目录)一个盘片一般是8196字节

    一个盘片的结构

    引导块:用来引导设备,引导块可以为空,但一定要有,为了保持结构一致

    超级块:是该文件子系统的描述符(记录该盘片的 逻辑块位图的地址 和 i节点位图的地址 通过设备号可以获取超级块,然后在获取逻辑块位图和 i节点位图,最后获取逻辑块和i节点)

    逻辑块位图:其每一位对应一个逻辑块的使用情况,1表示对应逻辑块被使用

    i节点位图:其每一位对应一个i节点的使用情况,1表示对应inode节点被使用

    inode节点:有很多块,文件与磁盘的桥接 ,文件的属性描述(文件名片)

    逻辑块数据区:有很多块,存储数据单元

  • i_mode 文件属性说明

    crwxrwxrwx:

    第一个c:表示文件类型:

    -:普通文件

    d:目录

    s:符号链接

    p:pipe管道

    c:字符设备

    b:块设备

    l:链接文件

    第一个rxw:当前用户的权限

    第二个rxw:用户组的权限

    第三个rxw:他人的权限

  • uid:文件的所属用户ID

  • gid:文件的所属组ID

  • i_size:文件大小

  • i_mtime:文件的修改时间

  • i_zone:该文件映射在逻辑块的数组,里边存储逻辑块号,前7个叫直接块号,一个单元存一个逻辑块号

    ​ izone[8]一次间接块号,如果占用的逻辑块较多 大于7 小于512+7 则占用一次间接块号

    ​ izone[9]二次间接块号,如果占用的逻辑块太多 大于512+7 小雨512*512+7 则启动二次间接逻辑块


推荐阅读
author-avatar
幽忧白雪666
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有