fs 理解

发布时间 2023-10-07 11:20:01作者: lance9527

1:普通文件的数据块里面保存的是文件数据,而目录文件的数据块里面保存的是目录里面一项一项的文件信息

2:被链接模块应按调用顺序先后指定,将静态库放在链接命令行的最后

3:在启用MMU的情况下,程序指令中的地址是VA,而访问内存用的是PA,MMU硬件单元的作用就是将VA转换为PA;不启用时都是PA

4:一个文件只需要一个inode节点来存储文件的元信息就够了,所以文件和inode节点是一一对应的 ; 文件的数据都存放在数据块中; 通过超级块检索数据块位图和inode块位图,再通过数据块位图检索数据块,inode块位图检索inode节点块;

5:i_zone[9]的理解:假设文件大小为2k则只需2个扇区即可放下,假设放在扇区100和101上,则i_zone[0]==100,i_zone[1]==101;假设文件是8k,放在扇区100到107上,则i_zone[0-6]==100-106;而i_zone[7]却不是简单地等于107,这里用了扩展的方式;假设扇区67只用于扩展记录,则将扇区67的1k空间划分为512个u16的空间,每一个u16空间内的数用于指定一个扩展后的扇区号,因此扇区67可以扩展出512个扇区,每一个u16空间内的值都对应一个真实的扇区号;因此i_zone[7]的取值范围是[0,511],因此i_zone[7]==0,且扇区67的前2字节值是107;同理若文件大小为9k,则i_zone[7]==1,且扇区67的前2字节值是107,再2字节值是108;这就是ext2fs的存储方式

6:一个具体文件包含2种数据,1种是文件的内容数据保存在数据块中,由数据块位图索引;一种是文件的信息数据保存在inode块中,由inode位图索引;一个N字节大小的数据块位图可以索引8N个大小为N字节的数据块;一个N字节大小的inode块位图可以索引8N个大小为sizeof(inode)字节的inode结构体,inode块会占用多个物理块;m_inode是inode在ram/mem中的组织形式,d_inode是inode在rom/disk中的组织形式,从rom中读取d_inode的数据,并构建ram中的m_inode。

7: