文章目录
一、inode与block概述
1.1 inode和block的概述
■文件数据包括元信息与实际数据
■文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节。
■block(块)
●连续的八个扇区组成一个block
●是文件存取的最小单位
■inode(索引节点)
●中文译名为“索引节点”,也叫i节点
●用于存储文件元文件
** inode存储元信息(文件属性)和文件存储在系统的哪一个block之中 ,block存储数据,一个文件必须占用一个inode,但至少占用一个block **
PE 4M
扇区 512字节
chunk 512字节
1 block = 4096字节(连续8个扇区) 如果文件不满8K就浪费了
1.2 inode的元信息
■ inode包含文件的元信息
● 文件的字节数
● 文件拥有者的User ID
● 文件的Group ID
● 文件的读、写、执行权限
● 文件的时间戳
● 指向block
■ 用stat命令可以查看某个文件的inode信息
● 示例:stat aa.txt
二、Linux读文件的流程(inode和block的工作流程)
linux读文件先读inode,读取文件在哪个block 再去block寻找内容
读取文件夹里的内容 先根据目录名搜寻inodetable中目录的inode 然后再根据文件名查找目录inode中具体文件的inode,然后根据文件的inode到达block查看具体内容。
2.1 目录文件
■ 目录文件的结构
● 目录也是一种文件
●目录文件的结构
■ 每个inode都有一个号码,此操作系统用inode号码来识别不同的文件
■ Linux系统内部不使用文件名,而使用inode号码来识别文件
■ 对于用户,文件名只是inode号码便于识别的别称
文件名1 | inode号码1 |
---|---|
文件名2 | inode号码21 |
… |
2.2 inode号码
■ 用户通过文件名打开文件时,系统内部的过程
1、系统找到这个文件名对应的inode号码
2、通过inode号码,获取inode信息
3、根据inode信息,找到文件数据所在的block,读出数据
2.3 硬盘分区后的结构
文件名 → 目录项 目录块
元信息 → inode inode表区块
数据 → block block数据区
2.4 访问文件的简单流程
三、inode的相关命令
stat + 文件名 查看inode元信息
stat /etc/* 查看etc目录下所有文件的元信息
mtime(modi