zoukankan      html  css  js  c++  java
  • 读书笔记深入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个日志记录属于同一个句柄。

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

    ²  三者关系如图:

  • 相关阅读:
    【vim使用】替换文本
    Ubuntu中将vim中查找设置为高亮
    【vim使用】查找文本
    【vim使用】缩进 和 重复执行上一次命令
    【vim使用】替换命令
    【vim使用】复制和粘贴
    【vim使用】撤销和恢复撤销
    【vim使用】删除文本
    【vim使用】选中文本(可视模式)
    【vim使用】利用标记返回之前需要编辑的代码位置
  • 原文地址:https://www.cnblogs.com/apprentice89/p/2870440.html
Copyright © 2011-2022 走看看