inode号
一、相关概念
1.1 扇区、块
- 我们都知道Linux系统的文件是存储在硬盘上的,而硬盘的最小存储单位叫做“扇区”(sector) ,每个扇区存储512字节(1K=1024字节,即一个扇区存储0.5K的信息)。
- 操作系统在读取硬盘的时候,不是一个扇区一个扇区地读取的(这样效率太低),而是一次性连续读取多个扇区,一次性读取一个块,一个块一个块这样来读取的。
- 一般连续八个扇区组成一个“块”(block),一个块是4K大小(即一次读取八个扇区),“块”(block)是文件的最小存储单位。
1.2 inode
- inode ,中文译名“索引节点”,也叫“i节点”
- Linux系统中文件的文件名和文件数据是分开存储的,而文件数据又分为实际数据与元信息。
- 元信息类似于文件属性,包括文件的创建者、创建日期、文件大小、文件权限等信息,实际信息存储在块中,而存储文件元信息的区域就叫做inode,因此一个文件必须占用一个 inode, 并且至少占用一个block。
- inode不包含文件名,文件名是存放在目录当中的。Linux系统中一切皆文件,因此目录也是一种文件。
- 每个inode都有一个号码(即 inode号),操作系统用 inode号码来识别不同的文件。
————Linux内部使用 inode号来识别文件,而非文件名,对于系统来说,文件名是 inode号的别称,是便于用户识别文件的,文件名和 inode号是一一对应的关系,每个 inode号对应一个文件名。
硬盘分区后的结构:
- 当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码;通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据;如果没有就会返回。
访问文件的简单流程: