什么是文件系统?
- 文件系统是什么?
- 文件系统组成
- 如何写一个简单的文件系统
文件系统是什么?
- 软件
- 记录文件元信息(文件大小,所属用户,包含块等)
文件系统组成
inode
inode 记录着文件的元信息,包含以下部分:
- 文件大小
- 组件文件的块(block)
- 属主(owner)
- 访问权限
- 访问时间
- 创建时间
- 修改时间
inode table
为了管理 inode 信息,需要有个数据数据结构存储 inode 信息, 称之为 inode table, 会占一部分磁盘空间,若 inode 大小为 256 bytes, 一个 4k 大小的 block 可存储 16 个 inodes。
allocation list
为了管理 block 是否已分配,需要有个数据结构存储,通常可以用位图(bitmap) 算法进行存储, 用 1bit 表示该 block 是否已使用,一个 4k 大小的 block 可存储 32k 个 block 使用情况。
superblock
superblock 用于存储文件系统元信息,包括 inodes 数量、文件系统中数据块(data block)数量、inode table 起始块位置、用于标识文件系统类型的魔数(magic number)等。操作系统挂载文件系统时,会首先读取 superblock 信息。