首页 > 其他分享 >学习笔记5

学习笔记5

时间:2023-10-15 20:13:43浏览次数:37  
标签:文件 EXT2 文件系统 笔记 学习 算法 磁盘 节点

一、任务详情

自学教材第11章,提交学习笔记(10分),评分标准如下

  1. 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容 (4分)
  2. 问题与解决思路,遇到问题最先使用chatgpt等AI工具解决,并提供过程截图(3分)
  3. 实践过程截图,代码链接(2分)
  4. 其他(知识的结构化,知识的完整性等,提交markdown文档,使用openeuler系统等)(1分)

二、知识点归纳

1.第十一章

11.1 EXT2文件系统

多年来,Linux 一直使用EXT2(Card等1995)作为默认文件系统。EXT3(EXT3,2014)是EXT2的扩展。EXT3中增加的主要内容是一个日志文件,它将文件系统的变更 记录在日志中°日志可在文件系统崩溃时更快地从错误中恢复。没有错误的EXT3文件系 统与EXT2文件系统相同。EXT3的最新扩展是EXT4 ( Cao等2007)。EXT4的主要变化是磁盘块的分配。在EXT4中,块编号为48位。EXT4不是分配不连续的磁盘块,而是分配连续的磁盘块区,称为区段。除了这些细微的更改之外,文件系统结构和文件操作保持不变。本书的目的是讲授文件系统的原理°主要目标并非实现大的文件存储容量,而是重点论述文件系统设计和实现的原则,强调简单性以及与Linux的兼容性。为此,我们以ETX2作为文件系统。

11.2 EXT2文件系统数据结构

  • 通过mkfs创建虚拟磁盘
    创建EXT2文件系统,命令如下:
mke2fs [-b blksize -N ninodes] device nblocks

命令创建一个带有blocks个块和nidodes个索引节点的EXT2文件系统。
blksize为块大小,ninodes为inode数量,device为目标设备,nblocks为块数量。

  • Block#0:引导块 B0是引导块,用来容纳一个引导程序,从磁盘引导操作系统。
  • Block#1:超级块:包含文件系统的元数据信息,如块大小、inode数量等。
  • Block#2:块组描述符:描述块组的信息,如块位图、inode位图、inode表的位置。
  • Block#8:块位图:表示某种项的位序列。
  • Block#9:索引节点位图:一个索引节点就是来代表一个文件的数据结构。
  • Block#10:索引节点 每个文件都用一个128字节的唯一索引节点结构体表示。
  • 磁盘块
    • 直接块:i_block[0]至i_block[11],指向直接磁盘块
    • 间接块:i_block[12]指向一个包含256个块编号的磁盘块,每个块编号指向一个磁盘块
    • 双重间接块:i_block[13]指向一个指向256个块的块,每个块指向256个磁盘块
    • 三重间接块:i_blcok[14]是三重间接块

11.2.7 数据块

紧跟在索引节点块后面的是文件存储数据块。

11.2.8 目录条目

目录包含dir_entry结构

11.3 邮差算法

邮差问题是指将一个二元(多元)对应表转换为一个一元的线性表的转换算法。邮差算法在文件访问上有重大意义,一个良好的算法可以大大加快文件访问速度。同时使用邮差算法和位屏蔽可以实现快速访问多维的数据个体,而不用转向复杂的结构体。具体的实现方式可以通过邮差算法将索引节点转为磁盘上的索引节点来完场。

11.5 遍历EXT2文件系统树

已知一个文件的路径,如何依靠这个路径来找到这个文件,是遍历算法需要解决的问题。一个良好的遍历算法可以在短时间内就完成文件的定位读取,而这依靠的是上述的邮差算法。
(1)读取超级块信息
(2)读取根目录索引节点
(3)遍历根目录
(4)递归遍历子目录
(5)处理文件和目录信息

11.7 基本文件系统

  • type.h文件
    包含了EXT2文件系统的数据结构类型,需要ex2fs_dev库的支持;
  • global.c文件
    ​包含了EXT2文件系统的全局变量,如minode和mtable等。这些全局变量就是上述EXT2文件系统数据结构中各个参数和指针。

其他实用的函数程序

  • get_block/put_block函数
    ​ 按块读写虚拟磁盘文件;
  • iget(dev,ino)函数
    ​ 返回指向包含INODE(dev,ino)的内存唯一minode;
  • THE iput(INODE *mip)函数
    ​ 释放一个mip指向用完的minode;
  • get()函数
    ​ 实现文件系统的树遍历算法;
  • getino()/iget()/iput()函数
    ​ 由路径名向索引节点的转换的系列函数。

11.8 11.9 11.10 文件系统函数

文件系统的实现分为三个级别,每个级别处理文件系统的不同部分:

  • 1级文件系统函数处理文件和路径的基本操作,如创建、删除、打开、关闭等。
  • 2级文件系统函数涉及文件的读取和写入操作。
  • 3级文件系统函数负责文件系统的挂载、卸载和文件保护等高级操作。
  • 这些级别的划分有助于模块化文件系统的实现,使其更容易理解和维护。

11.11 文件系统项目的扩展

多个组-4KB大小块-管道文件-I/O缓冲

2.苏格拉底挑战

image
image

二、问题与解决思路

问题

(1)EXT2文件系统中的inode表是什么,它的作用是什么,以及如何存储文件和目录的元数据信息?

解决思路

image
image

三、实践过程截图

image

image

标签:文件,EXT2,文件系统,笔记,学习,算法,磁盘,节点
From: https://www.cnblogs.com/Euyq123/p/17766079.html

相关文章

  • 学习笔记5
    学习笔记:EXT2文件系统知识点归纳EX2文件系统数据结构通过mkfs创建虚拟硬盘命令为:mke2fs[-bblksize-Nninodes]devicenblocks虚拟磁盘布局超级块Block#1:超级块,容纳整个文件系统的信息u32s_blocks_count://文件系统中块总数u32s_r_blocks_count://为超级......
  • 2023-2024-1 20231321王曦轶 《计算机基础与程序设计》第3周学习总结
    2023-2024-120231321王曦轶《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础与程序设计第三周作业)这个作业的目标<学习计算机......
  • 20211314王艺达学习笔记5
    第十一章EXT2文件系统一.梗概多年来,Linux一直使用EXT2(Card等1995)作为默认文件系统。EXT3(EXT3,14)是EXT2的扩展。EXT3中增加的主要内容是一个日志文件,它将文件系统的变更记录在日志中。日志可在文件系统崩溃时更快地从错误中恢复。没有错误的EXT3文件系统与EXT2文件......
  • jvm学习
    一、什么是JVMJVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具......
  • Linux第11章学习笔记
    第十一章学习笔记##EXT2文件系统多年来,Linux一直使用EXT2作为默认文件系统EXT3是EXT2的拓展。EXT3中增加的主要内容是一个日志文件EXT4的主要变化是磁盘块的分配EXT2文件系统数据结构通过mkfs创建虚拟磁盘创建了一个带有nblocks个块(每个块大小blksize字节)和ninodes个索引......
  • 第六周学习笔记(学习笔记5)
    第十一章EXT2文件系统—学习笔记〇、本章思维导图一、文件系统数据结构通过mkfs创建虚拟磁盘在Linux下,命令mke2fs[-bblkesize-Nninodes]devicenblocks在设备上创建一个带有nblocks个块(每个块大小为blksize字节)和ninodes个索引节点的EXT2文件系统。设备可以是真实......
  • 2023-2024-1 20231304 《计算机基础与程序设计》第三周学习总结
    2023-2024-120231304《计算机基础与程序设计》第三周学习总结作业信息这个作业属于哪个课程2023-2024-1计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第三周作业这个作业的目标学习计算机概论第二三章并完成云班课测试作业正文20......
  • 2023-2024-1 20211327 信息安全系统设计与实现 学习笔记5(必做)
    学习笔记5EXT2文件系统概述1级和2级文件系统函数实践过程EXT2文件系统概述EXT2(SecondExtendedFileSystem)是Linux操作系统早期使用的文件系统,它是EXT文件系统家族的第二个版本,于1993年首次引入。在现代Linux系统中已经被后续版本的EXT文件系统(如EXT3和EXT4)所取代。1.......
  • Vue的学习
    为什么需要前端框架当前前端开发的状态前端基础语言html:构建页面内容结构css:美化和布局页面内容Javascript:提供交互能力和动态三者整合就是我们看到的网页页面---所有的页面和页面功能都能完成现在能做什么浏览器展示的网页+小程序网站,网页游戏等等当前的状态有什么问题基......
  • 2023-2024-1 20231305 《计算机基础与程序设计》第三周学习总结
    2023-2024-120231305《计算机基础与程序设计》第三周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2022-2023-1计算机基础与程序设计第一周作业)这个作业的目标<自学教材并完......