• day15-Linux对文件系统的支持


    1.Linux中使用文件系统分几个部分

            1.1 有关于Linux中高速缓冲区的管理程序。 分页机制 buffer.c

            1.2 文件系统的底层通用函数(对于硬盘的读写 分配 释放等,对于目录的节点管理 inode 内存与磁盘的映射)

            1.3 对文件数据进行读写操作模块 (VFS:虚拟文件系统 硬件驱动 和 文件系统的关系 pipe 块设备(磁盘光驱等))

            1.4 文件系统与其他程序的接口实现 (fopen 关闭 创建等使用文件的调用方式)

    2.文件系统的基本概念

            磁盘中要有目录的映射,我们把磁盘分成盘片

            每一个盘片都有一个文件系统的子系统(章节目录)

    引导块:用来引导设备的,引导块可以为空,但是一定要保持格式的一致性,空出一定空间

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

    逻辑块位图:每一位对应一个逻辑块的使用情况,对应逻辑块如果被使用则逻辑位图对应位置1

    i节点位图:每一位对应一个i节点的使用情况,对应i节点被使用则i节点位图对应位置1

    逻辑块:用来存储数据的数据存储单元

    i节点:目录与磁盘的桥接 文件的属性描述(文件的名片)

    1. struct m_inode {
    2. unsigned short i_mode; //文件的类型和属性
    3. unsigned short i_uid; //宿主用户id
    4. unsigned long i_size; //文件大小
    5. unsigned long i_mtime; //文件修改时间
    6. unsigned char i_gid; //宿主的组id
    7. unsigned char i_nlinks; //链接数(硬链接)
    8. unsigned short i_zone[9]; //该文件映射在逻辑块号的数组
    9. /* these are in memory also */
    10. struct task_struct * i_wait;
    11. unsigned long i_atime;
    12. unsigned long i_ctime;
    13. unsigned short i_dev;
    14. unsigned short i_num;
    15. unsigned short i_count;
    16. unsigned char i_lock;
    17. unsigned char i_dirt;
    18. unsigned char i_pipe;
    19. unsigned char i_mount;
    20. unsigned char i_seek;
    21. unsigned char i_update;
    22. };

    crw-rw 文件的类型和属性

    c代表文件类型

    - 普通文件

    d 目录

    s 符号链接

    p pipe管道

    c 字符设备

    b 块设备

    l 链接文件

    777代表全属性

    每一个文件有三个属主的属性

    777-rwxrwxrwx

    第一个rwx是当前用户的属性

    第二个rwx是用户组的权限

    第三个rwx是他人的权限

    unsigned short i_zone[9];

    文件和磁盘映射

    izone[7]直接块号 如果文件只占用7个逻辑块 那么这个数组中的每一个单元则存储了一个逻辑块的号

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

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

  • 相关阅读:
    基于微信小程序的美食推荐系统的设计与实现
    Go面试题
    如何使用websocket+node.js实现pc后台与小程序端实时通信
    Deep Java Library(四)使用DJL Serving部署JAVA模型 For Windows
    自知则知之做做做做做做做做做做做做做
    【毕业设计源码】基于JAVA的微信小程序直播在线教育平台
    OpenXlab应用部署踩坑记录
    来自大厂 10+ 前端面试题附答案(整理版)
    力扣每日一题35:搜索插入的位置
    Git常用规范
  • 原文地址:https://blog.csdn.net/weixin_66218530/article/details/134394182