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

学习笔记5

时间:2023-10-15 20:33:11浏览次数:39  
标签:文件 EXT2 文件系统 笔记 学习 索引 inode 节点

知识点归纳

EXT2文件系统
EXT2文件系统是一种用于Linux操作系统的文件系统。它是EXT文件系统的第二个版本,与其前身相比具有许多改进和增强功能。EXT2文件系统提供了可靠的数据存储和管理,可以在硬盘上组织文件和目录,并提供了文件权限、访问控制、日志记录等功能。

EXT2文件系统使用了许多高级数据结构来管理文件和目录。例如,它使用了索引节点(inode)来存储文件的元数据,包括文件的大小、修改时间、权限等信息。索引节点还存储了文件数据的物理位置,使得文件可以在硬盘上进行快速访问。

一个EXT2文件系统分为多个块组,每个块组都包含一组数据块和一组索引节点。数据块用于存储文件的实际数据,而索引节点用于存储文件的元数据。块组的概念使得文件系统可以更加高效地进行管理和操作,减少了访问硬盘的次数。

EXT2文件系统还包含一些额外的特性,例如文件系统的扩展性和恢复能力。它支持动态调整文件系统的大小,可以根据需求添加或删除块组。此外,EXT2文件系统还实现了日志记录机制,可以在文件系统出现故障时快速恢复数据的一致性。

尽管EXT2文件系统在可靠性和性能方面有很多优点,但它也有一些限制。其中最严重的限制是不能动态地调整文件大小,只能通过备份和恢复的方式来改变文件系统的大小。此外,EXT2文件系统也没有提供数据的压缩和加密功能。

由于以上的限制和其他一些原因,EXT2文件系统逐渐被其后续版本EXT3和EXT4所取代。EXT3和EXT4在可靠性、性能和功能上都有了进一步的改进,并且兼容EXT2文件系统。因此,EXT2文件系统现在已经不再是Linux系统默认的文件系统,但仍然被一些较老的系统广泛使用。

块和索引节点位图
在EXT2文件系统中,块位图(block bitmap)和索引节点位图(inode bitmap)用于跟踪文件系统中的块和索引节点的分配情况。

块位图是一个位域,记录了每个数据块的使用状态。每个位表示一个数据块,如果该位为1,则表示对应的数据块已经被分配并正在使用;如果该位为0,则表示对应的数据块是空闲的。通过块位图,文件系统可以快速地查找和管理可用的数据块。

索引节点位图也是一个位域,记录了每个索引节点的使用情况。每个位表示一个索引节点,如果该位为1,则表示对应的索引节点已经被分配并正在使用;如果该位为0,则表示对应的索引节点是空闲的。通过索引节点位图,文件系统可以快速地查找和管理可用的索引节点。

块位图和索引节点位图通常存储在文件系统的超级块(superblock)中,它是文件系统中的一个重要数据结构,包含了文件系统的元数据信息。通过超级块中的指针,文件系统可以快速地访问块位图和索引节点位图。

当文件系统需要分配一个新的数据块或索引节点时,它会在对应的位图中查找一个空闲的位置,并将该位置的位设置为1,表示已经被分配。当文件或目录被删除时,文件系统会将对应的块或索引节点标记为空闲,以便重复使用。

块位图和索引节点位图的位数通常与文件系统的总块数和索引节点数相同。它们的大小取决于文件系统的大小,较大的文件系统将需要更多的位来表示块和索引节点的分配情况。

通过块位图和索引节点位图,EXT2文件系统可以有效地管理块和索引节点的分配和释放,提高文件系统的性能和可靠性。

根索引节点
在EXT2文件系统中,根目录使用一个特殊的索引节点(inode)来表示。该索引节点的编号为2,并且在文件系统创建时就已经被分配。根目录实际上就是一个目录文件,存储在根索引节点对应的数据块中。

要显示根索引节点的详细信息,可以使用ls命令的-i选项。i选项会显示每个文件或目录的索引节点编号,其中根目录的索引节点编号为2。例如,可以使用以下命令显示根目录的索引节点编号:

$ ls -lai /

该命令会列出根目录下的所有文件和子目录,同时显示它们的详细信息和索引节点编号。在输出结果中,可以找到根目录的名称为“/”,其索引节点编号为2。

除了使用ls命令,还可以使用debugfs命令来查看EXT2文件系统中的索引节点。debugfs是一个强大的文件系统调试工具,可以让用户直接访问文件系统的低级别数据结构。可以使用以下命令打开EXT2文件系统的调试模式:

$ sudo debugfs <device>
debugfs: 

其中,是文件系统所在的设备名称,例如/dev/sda1。进入调试模式后,可以使用以下命令查看根索引节点的详细信息:

debugfs: stat /

该命令会显示根目录的索引节点详细信息,包括索引节点编号、文件类型、大小、权限等。可以使用其他debugfs命令来查看和修改文件系统的其他元数据信息。

实践








一级文件系统是一种简单的文件系统,通常用于教学和实验目的。下面是一级文件系统的简单实现算法:

  1. 创建一个表示文件系统的数据结构,包含超级块、inode表和数据块。

  2. 初始化超级块,包括设置文件系统的总大小、块大小等信息。

  3. 在inode表中分配一个根目录的inode,设置其相关属性(如权限、大小等)。

  4. 在数据块中分配存储根目录的数据块,并将其关联到根inode。

  5. 解析用户的文件操作命令,如创建文件、创建目录、读取文件、写入文件等。

  6. 对于创建文件或目录的操作,分配一个新的inode和相关属性,更新父目录的数据块和inode。

  7. 对于读取文件的操作,根据给定的文件路径,找到其对应的inode,并读取相应的数据块内容。

  8. 对于写入文件的操作,找到给定文件的inode,并将数据写入相应的数据块。

  9. 在文件系统关闭之前,将超级块、inode表和数据块的相关信息保存在持久化存储介质中,以便下次使用时恢复。

这是一级文件系统的简单实现算法,主要用于描述其基本思想和流程。实际的一级文件系统可能包含更多的功能和细节,如文件和目录的权限管理、数据结构的优化和磁盘空间的管理等。同时,对于不同的操作系统和硬件架构,实际实现可能有所不同。

标签:文件,EXT2,文件系统,笔记,学习,索引,inode,节点
From: https://www.cnblogs.com/qqhope666/p/17766121.html

相关文章

  • 2023-2024学年 20213423 《计算机基础与程序设计》第三周学习总结
    第三章是《计算机科学概论》中一个非常重要的章节,它涵盖了计算机的内部结构和工作原理。通过学习这一章,我更深入地了解了计算机是如何运行的,以及其中涉及到的各种关键组件和概念。以下是我学习这一章的一些心得体会:首先,我学到了计算机的基本组成部分,包括中央处理单元(CPU)、内存、......
  • 学习笔记5
    第11章Diffle-Hellman协议  Diffle-Hellman协议主要用于密钥交换,使得在不安全线路上通信的两个人能够以这样的方式协商得到密钥:两个人都能得到相同的密钥,并且这个密钥不会泄露给监听二人会话的其他人。11.1群11.2基本的DH  在基本的DH协议中,首先选取一个大素数$p$和群$......
  • 第十一章学习笔记
    第十一章学习笔记一、课本知识1.EXT2文件系统TheSecondExtendedFileSystem(ext2)文件系统是Linux系统中的标准文件系统,是通过对Minix的文件系统进行扩展而得到的,其存取文件的性能极好。在ext2文件系统中,文件由inode(包含有文件的所有信息)进行唯一标识2.硬盘组成与分割磁......
  • 学习笔记5 第十一章的自学归纳
    学习笔记5第十一章的自学归纳EXT2文件系统EXT2第二代扩展文件系统(英语:secondextendedfilesystem,缩写为ext2),是LINUX内核所用的文件系统。它开始由RémyCard设计,用以代替ext,于1993年1月加入linux核心支持之中。EX2文件系统数据结构创建虚拟硬盘mke2fs[-bblksize-Nn......
  • 汽车操控原理学习之 -- 行走系统
    一、轮胎对操控的影响轮胎花纹对轮胎操控的影响轮胎的花纹不仅仅是为了好看,轮胎的花纹还关系到能否完全地发挥轮胎的性能,如:牵引制动转弯排水静音等等性能简单来说,胎面花纹最重要的三大作用是:提升抓地力降低噪音增加排水性不过这三者之间本身就是互相牵制甚至是冲......
  • 汽车操控原理学习之 -- 悬架系统
    一、悬挂倾角对操控的影响现实中的汽车底盘并不像普通的玩具车、四驱模型车、玩具遥控车那么简单地将四个轮平行安放且完全垂直于地面,而是为了各种目的把车轮设计成在各个方向按一定的轻微的角度来安放。对于改装爱好者而言,了解四轮定位参数是相当有必要的一门必修课,因为牵一发......
  • 汽车操控原理学习之 -- 动力系统
    一、动力对汽车操控的影响及其相关物理原理本质上说,动力对汽车操控有两方面影响:加速快慢极速高低本质上,决定”加速快慢“和”极速高低“的都是”功率“,或者说”轮上功率“。而发动力是汽车功率的唯一来源,而变速箱的作用是根据不同形式工况(例如上坡、低速起步、高速再加速、......
  • 学习笔记5
    一、任务详情自学教材第11章,提交学习笔记(10分),评分标准如下知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)问题与解决思路,遇到问题最先使用chatgpt等AI工具解决,并提供过程截图(3分)实践过程截图,代......
  • 学习笔记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计算机基础与程序设计第三周作业)这个作业的目标<学习计算机......