• Ext2文件系统


    应用场景

    EXT2文件系统是Linux Kernel所使用的文件系统,是Linux第一个商用级文件系统(首次应用在Linux Kernel 0.99c)。ext2也可作为基于闪存的存储介质(例如:SD卡和USB存储)的首选文件系统

    起源

    由法国软件商 Rémy Card 所设计,用来代替ext文件系统。

    ext2数据结构

    ext2的空间被分为一个个块,这些块又组成了块组,在一个大的文件系统中通常有几千个块,一个文件的数据通常会尽可能的包含在一个块组中,当读取大量的连续数据时,这样可以最小化寻道次数。每一个块组都包含一个超级块和块组描述符表的副本,所有的块组都包含一个块的位图、一个节点位图、一个节点表、以及实际的数据块。

    超级块包含引导操作系统启动的重要信息,因此在文件系统的多个块中都包含超级块的备份拷贝,但只有文件系统第一个块中的拷贝被用来引导。

    组描述符表为每个块组存储块位图的位置,索引节点的位图以及每个块组的开始节点表。

    索引节点

    每个文件或目录都用一个索引节点来表示,索引节点包括数据大小、权限、所有权以及文件或目录在磁盘上的位置。
    ext2节点结构局举例

    目录

    每一个目录都是一系列目录条目,每一个目录条目豆浆一个文件名和一个索引节点数字相关联。
    根文件目录总是存储在第二个索引节点处,这样文件系统可以在挂载的时候发现根文件目录。子目录通过在命名域存储的子目录的文件名,在索引节点域存储子目录的索引数字来实现。硬链接通过为一个索引号存储多个文件名来实现。
    特殊目录:“.”(当前目录)和“..”(上一级目录)通过在目录中存储“.”和“..”这两个名字,在索引节点字段中存储当前目录和上一级目录的索引节点来实现

    分配数据

    当一个新的文件或目录被创建,ext2必须决定在哪里存放这些数据,如果磁盘基本上是空的,那么数据可以被存储在任何地方。但是,将相关数据聚类存放可以最小化寻道时间,并提高性能。ext2通常会将给一个新的目录分配到包含其父节点的块组中。
    在数据分配位图中可以找到存储文件或目录的数据块,任何

    演化

    从2009年开始,Linux Kernel开始支持ext4的无日志记录模式,相较于ext2而言可以提供更大的文件和卷大小。

  • 相关阅读:
    YTU 2543: 数字整除
    YTU 2542: 弟弟的作业
    YTU 2541: 汽水瓶
    YTU 2535: C++复数运算符重载(+与<<)
    YTU 2530: 小勇玩lol
    YTU 2520: 小慧唱卡拉OK
    YTU 2517: 打倒魔王↖(^ω^)↗
    YTU 2516: 剪刀石头布
    reload、replace、href、assign、window.history.go(0)的区别
    js 数组排序sort方法
  • 原文地址:https://www.cnblogs.com/call-me-dasheng/p/14338221.html
Copyright © 2020-2023  润新知