3.1.1 linux下的VFS虚拟文件系统
Linux采用VFS来管理系统,VFS全称是Virtual File System(虚拟文件系统)。VFS是不同类型文件之上的软件粘合层,因为VFS可以无缝使用多个不同类型的文件系统。
VFS的作用就是采用标准的UNIX系统调用来读写位于不同物理介质上的不同文件类型。
Linux内核采用inode结构体来保存与文件相关的信息,比如访问权限,文件大小和创建时间,这些信息被称为文件的元数据。inode数据结构和内容本身是分开存放的。VFS采用的是面向对象的编程方法,利用回调函数实现。
3.1.2 ext2文件系统结构
对于一个磁盘分区来说,在其被指定为相应的文件系统后,整个区被分为1024、2048、4096字节大小的块,可以分为:
超级快:包含整个文件系统的基本信息
inode块:文件系统索引
数据块:具体存放数据的位置区域
inode结构体
拥有者/拥有者组 |
---|
文件类型 |
文件大小 |
文件权限 |
时间戳 创建时间 修改内容时间 修改属性时间 |
硬链接个数 |
额外标识 |
指向数据块的指针 |
3.1.3 目录文件及常规文件存储方法
目录文件和普通文件都是文件,只是目录文件的内容是其子文件或子文件夹的名称及inode值的对应,查找一个文件,首先根据路径找到文件所在目录,获取目录的内容,从中获取相应文件的inode信息。
3.2 linux系统下文件类型及属性