读书笔记深入linux内核架构Chapter9

Ext文件系统族

l  简介

²  文件系统要考虑的几个问题:碎片、空间利用率、维护内容一致性。

 

Ext2文件系统

l  结构概况

²  块组(Block Group):块组是Ext2的核心要素。

²  文件系统是由大量块组在硬盘上相继排布。如图。

一个块组

 

硬盘如下

 

 

²  启动扇区是硬盘上的一个区域(一般是第一个扇区),加电后BIOS自动加载并执行其中的内容。

 

²  inode间接索引数据块:灵活应对大小文件。

²  ext2试图将同一个文件的块维持在同一个块组中。

²  ext2在分配块的时候采用预分配的方式。

²  创建文件系统:用户空间工具mke2fs,将分区的空间划分为管理信息和有用数据两部分,创建简单的目录结构(用来存放坏块的lost+found目录)。

 

l  VFS与文件系统实现有3个结构(包含一些函数指针的结构体)建立:

²  file_operations:操作文件的内容

²  inode_operations:元数据的操作

²  address_space_operations:一般地址空间的操作

 

l  文件系统的操作

²  装载和卸载

²  读取并产生数据块和间接块:找到数据块、请求新块、块分配、

²  创建和删除inode

 

 

Ext3文件系统

l  增加了日志功能:事务日志带来了开销。

l  ext3有三种日志方式(用来tradeoff):回写模式、顺序模式、日志模式。

l  事务是什么样的:

²  日志记录:最小单位,表示某个块的更新

²  句柄:例如write请求涉及到6个块,则这6个日志记录属于同一个句柄。

²  事务:几个句柄的集合。

²  三者关系如图:

原文地址:https://www.cnblogs.com/apprentice89/p/2870440.html