静态文件与inode
文件没有被打开存储在磁盘中称为静态文件,磁盘的最小存储单位叫扇区,操作系统一个一个扇区的读取效率会很低,那么可以多个扇区一起读取,多个扇区就称为块。
我们在对磁盘进行初始化的时候会把它分为两个区域,一个是数据区,一个是inode区,inode区存放一个个inode节点,它是一个结构体存放着一些文件属性,每个文件对应着一个inode,每个inode又对应着一个编号,我们可以通过对应的inode编号找到inode区中对应的inode
打开文件系统内会分为三部分
①找到文件所对应的inode编号 ②通过inode编号找到对应的inode结构体 ③根据inode结构体中记录的属性确定文件数据所在的block,读取数据
PCB和文件表
在Linux系统中,内核会为每一个进程创建一个PCB(Process control block)我们成为进程控制块。
PCB数据结构中有一个指针指向文件描述符表,文件描述符表里面存放进程已打开文件的文件描述符,文件描述表中每一个元素都会索引到对应的文件表,文件表中记录着许多文件相关的信息,也包括inode指针。
inode指针指向该文件对应的 inode结构体,inode 数据结构体中的元素会记录该文件的数据存储的 block(块),也就是 说可以通过 inode结构体找到文件数据存在在磁盘设备中的那个位置,从而把文件数据读取出来。
注:图片来自正点原子