linux编程之文件系统

来源:互联网 发布:java制作骰子 编辑:程序博客网 时间:2024/06/05 04:26

linux中的文件系统有EXT2

block:ext2文件系统组织文件时是以block为单位组织的,磁盘上一般是以扇区为单位的,一个扇区大小为512B,block是磁盘上的一块区域,大小一般为8个扇区,为4K。

inode表:inode表就是一块区域记录着文件信息inode结点的表格

inode节点:inode结点表中的一项


这里写图片描述 
图1 ext2全貌 

从图1中可以看到,ext2 将磁盘分成了一个一个的“组”(除了第一个小方格外)。接下来,又把每个组具体再细分,划分出了超级块,组描述符表,块位图,inode 位图,inode 表,数据块。

位图

位图,是一种常见的数据结构。它就好像是一张地图,每个 bit 位代表一个位置,如果为 0,表示这个位置没有被占用,如果为 1,表示该位置被占用。

那么 inode 位图就是用来记录 inode 表中哪个位置被占用了,block 位图,就是记录哪个 block 被占用了。等到后面的实验中,你就会深刻理解这一点。

组描述符

一个组描述符表,它不仅存储当前组的信息,也会保存其它组的信息。这是一种备份思想。组描述符表中存储的组描述符

组描述符中保存了 inode 位图和 block 位图在哪个 block 上。除此还有 inode 表的位置等等。

超级块

超级块记录了一全局信息,比如 inode 节点的个数,第一个数据块的位置,block 的大小(是1KB还是2KB还是4KB?),block 的个数等等。

原创粉丝点击