组成
Linux:一切皆文件
索引节点(I-node)
I-node(Index Node):文件系统的内部数据结构,用于管理文件的元数据和数据块。
- 文件的元数据:包括文件的权限、拥有者、大小、时间戳、索引和指向数据块的指针等信息。
- 是文件的唯一标识,与文件一一对应
V-node(Virtual Node):操作系统级别的数据结构,用于维护打开文件的状态和信息。
- V-node包含了文件的描述符、权限、模式、文件位置指针等信息。
- 每当一个文件被打开时,操作系统会为该文件创建一个对应的V-node,并将其与文件描述符关联起来。
- V-node可以看作是操作系统维护的文件控制块,用于跟踪和管理打开的文件。
目录项
内核维护的数据结构,缓存在内存,不存放在磁盘
- 包含文件或目录的元数据信息,如文件名、文件大小、文件类型、权限、创建时间、修改时间等。
- 包含指向文件数据所在位置的指针或索引信息。
- 记录与其他目录项的层级关联关系。
目录是文件系统中用于组织和管理文件的一种特殊类型的文件。
- 目录可以包含一组目录项,每个目录项对应一个文件或子目录。
- 目录项是文件系统中的逻辑概念,而目录是文件系统中的特殊文件。
- 目录项用于描述文件和目录的元数据,而目录则用于存储目录项和维护文件系统的结构。
存储
连续空间存放
文件头(相当于i-node)指定起始块的位置、长度
磁盘空间碎片、文件长度不易拓展
非连续空间存放
隐式链表
每个数据块留出一个指针空间,易丢失
显式链表
指针存放在一个文件分配表(FAT)
索引
空闲空间管理
空闲表
空闲链表
位图
链接
硬链接是文件系统中一个文件的多个名称,它们共享相同的索引节点(inode)。
原始文件和硬链接之间没有明显的区别,它们都指向相同的数据和元数据,可以独立地访问和修改文件内容。删除其中任何一个硬链接或原始文件,并不会影响其他链接或文件。
软链接,也称为符号链接或软连接,是一个特殊类型的文件。
它的文件内容是另一个文件的路径,实际上是一个指向另一个文件或目录的快捷方式,类似于操作系统中的快捷方式或符号链接。软链接和目标文件或目录之间是独立的实体,它们具有不同的索引节点。