1kb等于多长个扇区 1kb等于多长字节( 三 )


好了,这回没有然后了!
我们最后来欣赏下我们的文件系统架构 。
这个文件系统,和 linux 上的经典文件系统 ext2 基本相同 。
下面是我画的 ext2 文件系统的结构(字段部分只画了核心字段)
估计你是看不清了,我说下主要异同点:
1. 超级块前面是启动块,这个是 PC 联盟给硬盘规定的 1KB 专属空间,任何文件系统都不能用它 。
2. ext2 文件系统首先将整个硬盘分为很多块组,但假如只有一个块组的话,和我们的文件系统整体结构就完全一样了,分别是超级块、块描述符、块位图、inode 位图、inode 表、数据块 。
3. ext2 文件系统的 inode 表中用 15 个块来定位文件,其中第 13 个块为一级间接索引、14 个为二级间接索引、15 个为三级间接索引 。
4. ext2 文件系统的文件类型分得更多,还有常见的如块设备文件、字符设备文件、管道文件、socket 文件等 。
5. ext2 文件系统的超级块、块描述符、inode 表中记录的信息更多,但核心的和我们的文件系统一样,而且这些字段在后续的 ext3 和 ext4 中不断增加,保持向前兼容 。
6. ext2 文件系统的 2 号 inode 为根目录,而我们的系统是 0 号 inode 为根目录,这个很随意,你设计一个文件系统定一个 187 号 inode 为根目录也没人拦着你 。
假如你想了解 ext2 文件系统的全部细节,有三种方式 。
1. 看源码,linux1.0 后的源码都有 ext2 文件系统的实现,源码是最正确的 。
2. 看官方文档,这里有个 pdf 连接 。https://www.nongnu.org/ext2-doc/ext2.pdf
3. 看优质博客,这里我推荐一个 。http://docs.linuxtone.org/ebooks/C