什么是文件?
信息按一定结构方式组成文件,由文件名进行标识
什么是文件系统?
文件与管理信息资源的管理程序的集合称为文件系统
文件目录
文件控制块(FCB)
- File Control Block(简称FCB)是操作系统为每个文件建立的唯一数据结构
- 一个文件有两部分:FCB和文件体(即文件信息)。每创建一个文件,系统就要为其建立一个FCB;每当存取文件时,先找到其FCB,才能定位到其物理位置
文件目录
- 目录文件便是由许多的FCB汇集在一起所形成的文件,它保存在外存上并至少包含两个文件:当前目录(即自身)“.”和其父目录“..”
- 文件目录的基本功能是将文件名转换成该文件在磁盘上的物理位置
索引节点inode
- 文件系统的信息空间可认为是一系列逻辑块构成的,不同文件系统的逻辑块大小不定,但通常为512B的整倍数。逻辑块到物理块的转换则由操作系统软件负责
- Linux系统中,FCB中的文件名和其他管理信息分开,其他信息单独构成一个数据结构,即索引节点inode,这些inode被集中存放在磁盘上的inode区。索引节点位置由inode标号标识,所以目录项中仅有文件名和inode标号,称为基本目录项
inode结构示例:
1
2
3
4
5
6
7
8
9
10
11
12struct inode {
……
unsigned long i_ino; //inode号
atomic_t i_count; //inode引用数
kdev_t i_dev; //inode所在设备
……
union {
struct minix_inode_info minix_i;
struct ext2_inode_info ext2_i;
……
}
}因为在文件访问过程中会频繁使用inode,所以Linux在系统所占的内存区内开辟了一张内存索引节点表,又活动inode表,含有100个表项,每个表项称一个活动inode。访问文件时,若在活动inode表中找不到其inode,就申请一个空闲活动inode,把磁盘inode内容复制给它,类似存储管理中的虚拟存储