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

学习笔记5

时间:2023-10-15 10:55:20浏览次数:42  
标签:文件 文件系统 笔记 节点 学习 索引 算法 目录

11章教材知识点

  1. EXT2概述:

    • EXT2是一种磁盘文件系统,用于存储和组织文件和目录。
    • 支持文件和目录的权限、链接、文件系统的挂载和卸载等功能。
    • 使用磁盘上的数据结构来组织文件和目录的存储。
  2. EXT2数据结构:

    • 虚拟磁盘:通过mkfs命令创建的EXT2文件系统。
    • 虚拟磁盘布局:由超级块、块组描述符表、块位图、索引节点位图、索引节点表和数据块组成。
    • 超级块:存储文件系统的全局信息,如文件系统的大小、块大小等。
    • 块组描述符:存储每个块组的信息,如块位图、索引节点位图、索引节点表的位置等。
    • 块位图:记录每个数据块的使用情况。
    • 索引节点位图:记录每个索引节点的使用情况。
    • 索引节点:存储文件或目录的元数据,如权限、大小、时间戳等。
    • 数据块:存储文件或目录的实际数据。
    • 目录条目:记录目录中的文件或子目录的名称和对应的索引节点号。
  3. 邮差算法:

    • 用于查找目录中的文件或子目录的索引节点号。
    • 邮差算法通过目录的索引节点号和偏移量计算出目标文件或子目录的位置。
  4. 遍历EXT2文件系统树:

    • 从根目录开始,通过读取目录条目获取子文件或子目录的索引节点号。
    • 根据索引节点号获取子文件或子目录的信息,继续遍历子目录,直到遍历完整个文件系统。
  5. EXT2文件系统实现:

    • 基本文件系统:提供对文件和目录的创建、删除、修改等操作。

    • 1级文件系统:包括mkdir、creat、mkdir-creat、rmdir、link、unlink、symlink、readlink等功能。

      • mkdir算法:创建一个新目录,并在父目录中添加一个新的目录条目。
      • creat算法:创建一个新文件,并在父目录中添加一个新的目录条目。
      • mkdir-creat的实现:如果要创建的目录或文件不存在,则先创建目录或文件,然后再执行相应的操作。
      • rmdir算法:删除一个目录,并从父目录中删除相应的目录条目。
      • link算法:创建一个硬链接,即在一个目录中创建一个新的目录条目,指向已存在的文件。
      • unlink算法:删除一个文件,并从父目录中删除相应的目录条目,如果该文件有其他硬链接,则只删除目录条目。
      • symlink算法:创建一个符号链接,即在一个目录中创建一个新的目录条目,指向另一个文件或目录。
      • readlink算法:读取一个符号链接的目标文件或目录。
    • 2级文件系统函数:包括open、lseek、close、读取普通文件、写普通文件、opendir、readdir等功能。

      • open算法:打开一个文件,并返回文件描述符。
      • lseek算法:设置文件读写指针的位置。
      • close算法:关闭一个文件。
      • 读取普通文件:从文件中读取数据,可以使用read函数。
      • 写普通文件:向文件中写入数据,可以使用write函数。
      • opendir算法:打开一个目录,并返回目录流。
      • readdir算法:读取目录流中的下一个目录条目。
    • 3级文件系统:包括挂载算法、卸载算法、交叉挂载点、文件保护、实际uid和有效uid、文件锁定等功能。

      • 挂载算法:将一个文件系统挂载到另一个文件系统的某个目录下。
      • 卸载算法:卸载一个文件系统。
      • 交叉挂载点:将一个文件系统挂载到另一个文件系统的某个目录下,使得两个文件系统可以共享数据。
      • 文件保护:通过文件权限和所有权来保护文件的安全性。
      • 实际uid和有效uid:实际uid是进程的真实用户ID,有效uid是进程的有效用户ID。
      • 文件锁定:通过文件锁定机制来防止多个进程同时修改同一个文件。

苏格拉底挑战





实践

标签:文件,文件系统,笔记,节点,学习,索引,算法,目录
From: https://www.cnblogs.com/wang-chen-kai/p/17765325.html

相关文章

  • 《信息安全系统设计与实现》学习笔记5
    第十一章EXT2文件系统EXT2文件系统数据结构通过mkfs创建虚拟磁盘mke2fs[-bblksize-Nninodes]devicenblocks虚拟磁盘布局Block#0:引导块。用来容纳一个引导程序,从磁盘引导操作系统。超级块Block#1:超级块。用于容纳整个文件系统的信息。超级块结构中的一些重要字......
  • 《Unix/Linux系统编程》教材学习笔记第十一章
    chapter11EXT2文件系统Linux一直使用EXT2(Card等1995)作为默认文件系统。EXT3(EXT3,2014)是EXT2的扩展。EXT3中增加的主要内容是一个日志文件,它将文件系统的变更记录在日志中。日志可在文件系统崩溃时更快地从错误中恢复。没有错误的EXT3文件系统与EXT2文件系统相同。EXT3的最新......
  • *【学习笔记】(7) 线段树及高级用法
    一.普通线段树线段树(SegmentTree)几乎是算法竞赛最常用的数据结构了,它主要用于维护区间信息(要求满足结合律)。与树状数组相比,它可以实现\(O(logn)\)的区间修改,还可以同时支持多种操作(加、乘),更具通用性。接下来我们用这道模板题为例,看看线段树是怎么维护区间和这一信息的。P33......
  • *【学习笔记】(4) 网络流
    1.算法简介网络一个网络\(G=(V,E)\)是一张有向图,图中每条有向边\((x,y)\inE\)都有一个给定的权值\(c(x,y)\),称为边的的容量。特别的,若\((x,y)\notinE\),则\(c(x,y)=0\)。图中还有两个指定的特殊节点\(S\inV\)和\(T\inV(S\neqT)\),分别为源点和汇点......
  • 第五周学习笔记
    EXT2文件系统EXT2文件系统数据结构使用mkfs创建虚拟磁盘linux命令为mke2fs[-bblksize-Nninodes]devicenblocks具体使用例:ddif=/dev/zeroof=vdiskbs=1024count=1440mke2fsvdisk1440虚拟磁盘布局Block#0:引导块B0是引导块(BootBlock),文件系统不会使用它。它......
  • 2023-2024-1 20231410刘珈岐 《计算机基础与程序设计》第3周学习总结
    2023-2024-120231410《计算机基础与程序设计》第3周学习总结•作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03这个作业的目标自学计算机科学概论第......
  • 2023-2024-1学期 20231302邱之钊 《计算机基础与程序设计》第三周学习总结
    作业信息作业属于的课程2023-2024-1-计算机基础与程序设计作业要求2023-2024-1计算机基础与程序设计第一周作业作业目标数字分类与计数法、位置计数法、进制转换、模拟数据与数字数据、压缩与解压、数字化、信息安全作业正文2023-2024-1学期20231302邱之钊《......
  • [学习笔记]强连通分量
    定义什么是强连通分量?直白地说就是在一个有向图中,有一块区域,每个点都可以互相抵达。这里用一张图来说明一下。图中的\(1,2,3\)是一个强连通分量,因为他们可以互相抵达。Tarjan算法如何求强连通分量,最有名且最常用的就是Tarjan算法。先给出如下定义:\(dfn_u\):深搜时被......
  • Javascript、axios、vue基础命令快速学习
    1.js:JavaScript基础学习JavaScript基础学习简单案例1.点击img1,则展示img1图片默认,点击img2则展示img2图片2.输入框鼠标聚焦onfocus后,显示小写toLowerCase(),失去焦点onblur后显示大写toUpperCase()3.点击全选按钮,所有复选框为被选中状态,点击反选则取消勾选状态JavaScrip......
  • 2023-2024-1 20231406 《计算机基础与程序设计》第3周学习总结
    2023-2024-120231406《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程<班级的链接>(如[2023-2024-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础......