如果把文件系统比作一个大楼的话,它的数据布局方式和内部数据结构就是高楼的基础和框架,因此理解了它的数据布局方式和数据结构就能对数据结构有一个整体的认识。ext2作为一个经典的文件系统,不失作为一个号的入口


1. ext2文件系统的数据拓扑结构:

wKioL1j1rFXhK4TmAAA-B1gNwKA408.png


2. ext2重要的数据结构如下


wKioL1j1rLGCqgWVAALKGSPQEFA590.png


3. ext2 数据结构内部关系


wKioL1j1rQzRbK5EAABt_ufwpc8140.png


4. Linux  文件系统中的cache:

inode cache, Directory cache,buffer cache,

上面这些cache再加上内存里面的 file table, 以及外面的supper block构成了主要的meta data.


Linux文件系统发展到2.4之后的变化包括:

1.数据流向page cache

2.每一个打开的文件都有一个dcache引用,而且它自身在dcache中有一个条目;

3.类似SVR4 vnodeops的移植

4. SMP-based 锁机制的实现,以便提高SMP系统性能


2.4x内核中和文件系统访问相关的主要数据结构如下:


wKiom1j1rcyS37kXAADR2-4Jvpc634.png