深入理解EXT2文件系统:结构、算法与编程实践
1. EXT2文件系统数据结构概述
EXT2文件系统是Linux系统中常用的文件系统之一,其数据结构包含多个关键部分,下面为你详细介绍。
1.1 组描述符
虚拟软盘(FD)仅有1440个块,因此B2仅包含1个组描述符,其余部分为0。而在拥有大量组的硬盘中,组描述符可能会跨越多个块。组描述符中最重要的字段有bg_block_bitmap、bg_inode_bitmap和bg_inode_table,它们分别指向组的块位图、索引节点位图和索引节点起始块。对于Linux格式化的EXT2文件系统,块3到7是保留的,所以bmap = 8,imap = 9,inode_table = 10。
1.2 块和索引节点位图
- 块位图(Block Bitmap,Bmap):位于块8(
bg_block_bitmap),位图是用于表示某些项目(如磁盘块或索引节点)的位序列,用于项目的分配和释放。在FD中,虽然有1440个块,但块0不被文件系统使用,所以Bmap只有1439个有效位,无效位被视为已使用并设置为1。 - 索引节点位图(Inode Bitmap,Imap):位于块9(
bg_inode_bitmap),索引节点是用于表示文件