文件系统
目录项的数据结构:
struct ext2_dir_entry_2{
__le32 inode;
__le16 rec_len;
__u8 name_len;
__u8 file_type;
char name[EXT2_NAME_LEN];
};
所以在cat userlist这个文件名的时候,会通过目录项中的文件名找到对应的inode节点
inode节点的数据结构:
struct ext2_inode{
__le16 i_mode; /*文件模式*/
__le16 i_uid; /*所有者UID的低16位*/
__le32 i_size; /*长度,按字节计算*/
__le32 i_atime; /*访问时间*/
__le32 i_ctime; /*创建时间*/
__le32 i_mtime; /*修改时间*/
__le32 i_dtime; /*删除时间*/
__le16 i_gid; /*组ID的低16位*/
__le16 i_links_count; /*链接计数*/
__le32 i_blocks; /*块数目*/
__le32 i_flags; /*文件标志*/
uion{
……
}masix1;
__le32 i_blocks[EXT2_N_BLOCKS]; /*块指针*/
__le32 i_generation; /*文件版本,用于NFS*/
…………
}
inode节点在inode表中,并且inode节点中记录了数据在哪些数据块中(i_blocks[EXT2_N_BLOCKS]
)