【Linux 基础IO】文件系统初步认识 inode

1. inode 的理解

在Linux文件系统中,inode是一种数据结构,用于表示文件或目录。每个文件或目录在文件系统中都有一个唯一的inode号码,该号码由文件系统分配。

② 文件 = 内容 + 属性;注意❗: 文件名不是属性而是内容,因为文件名可随时更改;

  • inode 的结构如下所示
struct inode {
    // 文件类型
    unsigned long i_mode;

    // 文件大小
    unsigned long i_size;

    // 文件权限
    umode_t i_mode;

    // 创建时间、修改时间、访问时间等时间信息
    struct timespec i_atime;
    struct timespec i_mtime;
    struct timespec i_ctime;

    // 其他元数据信息,如所有者、所属组、链接数等
    uid_t i_uid;
    gid_t i_gid;
    unsigned int i_links_count;

    // inode 编号
    unsigned long i_ino;

    // 存储文件数据块的索引信息
    unsigned long i_block[15];
};

2.文件系统

① ✌Block Group:ext2文件系统会根据分区的大小划分为数个Block Group。而每个Block Group都有着相同的结构组成。政府管理各区的例子;

② ✌超级块(Super Block):存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个文件系统结构就被破坏了;

③ ✌GDT,Group Descriptor Table:块组描述符,描述块组属性信息;

④ ✌块位图(Block Bitmap):Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没有被占用;

⑤ ✌ inode位图(inode Bitmap):每个bit表示一个inode是否空闲可用。

⑥ ✌ i节点表:存放文件属性 如 文件大小,所有者,最近修改时间等。

⑦ ✌ 数据区:存放文件内容

在这里插入图片描述

  • 如何找到某个文件呢?

当我们在文件系统中查找某个文件时,实际上是通过目录项中的文件名找到对应文件的 inode 号码,然后再通过 inode 来获取文件的具体信息。文件名存储在目录项中。

  • 进一步理解文件系统

① 超级块(Super Block)可以比喻为一个地图,它记录了整个文件系统的布局和重要的属性。就像我
们在旅行时需要地图来了解道路和地点一样,文件系统也需要超级块来了解存储数据的结构和属性。

inode 结构体中, i_block[15]介绍

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来可期LJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值