《信息安全系统设计与实现》第五周学习笔记

《信息安全系统设计与实现》第五周学习笔记

第十一章 EXT2 文件系统

EXT2文件系统

  • EXT2第二代扩展文件系统(英语:second extended filesystem,缩写为 ext2),是LINUX内核所用的文件系统。它开始由Rémy Card设计,用以代替ext,于1993年1月加入linux核心支持之中。

  • 创建mkfs创建虚拟硬盘
    • mke2fs [-b blksize -N ninodes] device nblocks创建一个带有nblocks个块和ninodes个索引节点的EXT2文件系统
  • 虚拟磁盘布局
    • Block#0:引导块
  • 超级块
    • 超级块是记录整个文件系统相关信息的地方,没有superblock,就没有这个文件系统了,它记录的主要信息有:
      • block与inode的总量
      • 未使用与已使用的inode/block数量
      • block与inode的大小
      • 文件系统的挂载时间、最近一次写入数据的时间、最近一次检验磁盘的时间等文件系统的相关信息
      • 一个validbit数值,若此文件系统已被挂载,则valid bit为0,若未被挂载,则valid bit为1
  • 块组描述符
    • Block#2
    • EXT2将磁盘块分为几个组,每个组有8192个块,用一个块组描述符结构体来描述。
  • 块和索引节点位图
    • 块位图(Block#8),用于表示某种项的位序列
    • 索引节点位图(Block#9),代表一个文件的数据结构
    • 索引(开始)节点块(Block#10),索引节点大小用于平均分割块大小,所以每个索引节点块都包含整数个索引节点
  • 数据块
    • 紧跟在索引节点块后面的是文件存储数据块
  • 目录条目
    • 包含dir_entry结构
      • dir_entry是一种可扩充结构,不含终止NULL

邮差算法

  • 邮差算法:
    • 在计算机系统中, 经常出现下面这个问题。 一个城市有M 个街区, 编号从 0到M-1。 每个街区有N座房子, 编号从0 到 N-1。每座房子有一个唯一的街区地址, 用(街区, 房子)表示, 其中0<=街区<M, 0<=房子<N。 来自外太空的外星人可能不熟悉地球上的街区寻址方案, 倾向于采用线性方法将这些房子地址编为 0, 1, ···, N-1, N, N+1 等。 已知某个街区地址 BA= (街区, 房子), 怎么把它转换为线性地址 LA, 反过来,已知线性地址,怎么把它转换为街区地址?如果都从0开始计数,转换就会非常简单。

      •     Linear_address LA = N*block + house;
            Block_address BA = (LA/N,LA%N);
        
    • C语言中的Test-Set-Clear位
    • 将索引节点号转换为磁盘上的索引节点

编程示例

  • 显示超级快
  • 显示位图
  • 显示根索引节点
  • 显示目录条目

3级文件系统函数

  • 3级文件系统支持文件系统的挂载、卸载和文件保护
  • 挂载算法
    • mount filesys mount_point
    • 可将某个文件系统挂载到mount_point目录上。
  • 卸载算法
    • 可卸载已挂载的文件系统。
  • 交叉挂在点
    • 两个方向的挂载点可能会出现交叉
      • 向下遍历
      • 向上遍历
  • 文件保护

文件系统项目的扩展

  • 多个组:组描述符的大小为32字节,32个组的文件系统大小可扩展为32*8=256MB
  • 对于一个组的描述块4KB大小的块:128个组,可将文件系统扩展到128*32=4GB、
  • 管道文件
  • I/O缓冲

苏格拉底挑战




遇到的问题及解决

问题

  • 在EXT2文件系统中,数据块可以按需分配,这种分配策略的优势是什么?

解决

  • 在EXT2文件系统中,延迟分配(delayed allocation)是一种数据块分配策略。它的优势在于,当一个文件写入数据时,文件系统并不立即分配实际的磁盘块,而是将数据暂时缓存在内存中,等到适当的时机再进行实际的分配。这种延迟分配的机制有几个优点:

  • 性能优化: 延迟分配可以减少频繁的磁盘写入操作,提高了文件系统的写入性能。通过将多个写操作合并到一起,可以减少磁盘寻址和写入的次数,从而提高了文件系统的整体性能。

  • 磁盘空间的更有效利用: 延迟分配允许文件系统更加灵活地选择磁盘块的分配位置。这样可以更好地利用磁盘空间,减少了碎片化,提高了文件系统的存储效率。

  • 避免不必要的分配: 如果一个程序只是打开了一个文件但最终没有写入数据,那么就避免了不必要的磁盘块分配,从而节省了存储空间。

  • 总的来说,延迟分配机制可以提高文件系统的性能和磁盘空间利用率。

posted @ 2023-10-15 10:42  20211428谷丰宇  阅读(8)  评论(0编辑  收藏  举报