《LINUX实战:Linux文件系统结构》要点:
本文介绍了LINUX实战:Linux文件系统结构,希望对您有用。如果有疑问,可以联系我们。
磁盘是由若干扇区组成,每个扇区有512B(将磁盘存储区扇区化是为了更好的管理磁盘).又由若干个扇区组成一个块(ext2默认是由8个扇区组成一个块,即4kb,这里为了简化说明,就把2个扇区组成一个块,即1kb).由图知,将磁盘分成若干个分区,每个分区由若干个块组成.
将数据指针数组命名为data数组.文件系统中,将data[12]进行一级间接寻址.即:将data[12] 指针指向的数据块,转化为一个更大的指针数组,长度为1024/4=256.在将这个更大的指针数组的分别数指向256个数据块;data[13]进行二级间接寻址,data[14] 进行三级间接寻址.都和一级间接寻址同理.
数据块中存储的是一条一条的记录项,每条记录项都由文件名、indoe编号、记录长度(该记录项首地址到下一条记录项的首地址的长度).每一个记录项便是该目录下“ls -a”的结果.
由图可以看出,每个inode节点可以对应多个数据块,和上文在分析inode节点的内容一致.然后,若干个目录块中的记录项指向每个inode节点,通过inode节点中链接数这个数据成员来标识指向其的记录项个数,这便是硬链接.当然,这些目录块都是目录文件的数据块;
由上图知,inode节点在文件系统中被维护成了结构体数组,inode编号为数组的下标;2549号i节点是1267号i节点的子目录,因为1267号i节点的数据块中有2549号i节点的记录项;“.”目录文件和 “..”目录文件都是硬链接.
从以上分析能够得出结论:所有的目录块都是不同目录文件的数据块.
执行命令:mkdir /home/aaron/a.c
(1)通过块位图区找到空闲的数据块,存放a.c中的内容
(2)通过inode位图区找到空闲的inode节点块,生成相应的inode节点
(3)在aaron目录文件的数据块中添加一条a.c的记录项
执行命令:vim /home/aaron/a.c
(1)找到inode编号为2的inode节点,
(2)遍历根目录文件的数据块中的记录项,匹配aaron记录项,获取其inode编号
(3)通过aaron目录文件的inode编号,找到aaron文件对应的数据块
(4)遍历aaron文件的数据块中的记录项,匹配a.c记录项.同理,找到对应的a.c的数据块.用vim打开相应文件
本文永久更新链接地址:
更多LINUX教程,尽在维易PHP学院专栏。欢迎交流《LINUX实战:Linux文件系统结构》!
转载请注明本页网址:
http://www.vephp.com/jiaocheng/7682.html