分类目录:EXT2

ext2_splice_branch解析

我们前面的博客中仔细阐述了ext2_allocate_branch()的实现原理,其主要作用是分配写所需的直接和间接块,并建立映射关系,但仔细分析后,我们可以发现,这种映射关系建立的不是很彻底,即有些该做的还未做,那么这些未做的留到哪了呢?就在本文所要分析的ext2_splice_branch()函数中来实现。

ext2_allocate_branch()解析

在之前的多篇博客中我们都比较详细地阐述了ext2_get_block()路径中各个函数的实现原理,今天我们来关注下ext2_allocate_branch()的实现细节,这个函数是非常重要的,而且理解起来也没那么简单,虽然说函数的功能一句话就可能说完:为数据块建立映射路径。

ext2_find_goal详解

ext2文件系统在为一次写分配数据块之前,一般会在处理过程中为块分配器提供一个参考意见(即最好选择哪个磁盘块分配),其选择的标准是尽量将文件的数据块连续,并且将文件的inode所在块和数据块尽量分配在一起,以加速文件读写过程。有了这一原则作为指导思想,我们在理解其逻辑时就简单了很多。

ext2从磁盘读出超级块

概述 本篇博客中,我们将仔细分析如何从格式化为ext2文件系统的磁盘中读取超级块并填充内存超级块结构,每次将一个格式化了ext2文件系统的磁盘(分区)挂载到挂载点的时候会调用该方法,该方法在操作系统中的实现主要是函数ext2_fill_super。

ext2系统元数据

概述 本篇博客主要描述ext2文件系统中的各种典型元数据结构,其中包括文件系统级别的元数据,如超级块,块组描述符等,也包括文件级的元数据,如文件目录项,文件inode等。

ext2磁盘布局

概述 从这篇博客开始,我们主要研究linux下ext2文件系统的设计和实现,我们的主要是目标是对ext2关键技术进行剖析,当然,ext2的年代比较久远了,可能研究它也不见得有多大的参考价值,但是,我的目标是将文件系统做成一个系列,ext2只是一个引子,后续会有ext3,ext4,reiserfs,btrfs,xfs等等,敬请期待。 本篇博客主要关注ext2文件系统的磁盘布局,即ext2会在格式化时将磁盘划分成什么样子。