首页 > 系统相关 >Linux第11章学习笔记

Linux第11章学习笔记

时间:2023-10-15 19:35:25浏览次数:42  
标签:11 文件 EXT2 文件系统 笔记 索引 Linux 节点

第十一章学习笔记

## EXT2文件系统

多年来,Linux一直使用EXT2作为默认文件系统
EXT3是EXT2的拓展。EXT3中增加的主要内容是一个日志文件
EXT4的主要变化是磁盘块的分配

EXT2文件系统数据结构

通过mkfs创建虚拟磁盘

创建了一个带有nblocks个块(每个块大小blksize字节)和ninodes个索引节点的EXT2文件系统。

虚拟磁盘布局

索引节点

  • 直接块:i_block[0]至i_block[11]指向直接磁块盘

  • 间接块:i_block[12]指向一个包含256个块编号的磁盘块,每个块编号指向一个磁盘块

  • 双重间接块:i_block[13]指向一个指向256个块的块,每个块指向256个磁盘块

  • 三重间接块:i_block[14]对于小型EXT2文件可忽略,索引节点大小用于平均分割块大小,所以每个索引节点块都包含整数个索引节点。

  • 目录条目 EXT2目录条目;目录包含dir_entry_2结构

    dir_entry是一种可扩充结构。名称字段包含1到255个字符,不含终止NULL。所以dir_entry的rec_len也各不相同。

遍历EXT2文件系统树

遍历算法:

一、读取超级块;

二、读取块组描述符;

三、读取InodeBegin Block,以获取/的索引节点;

四、将路径名标记为组件字符串;

五、从3.中的跟索引节点开始搜索;

六、使用索引节点号ino来定位相应的索引节点七、重复第5第6步。

EXT2文件系统的实现

文件系统结构

第一级别实现基本文件系统树;

第二级别实现文件读/写函数;

第三级别实现系统的挂载,卸载和文件保护

基本文件系统

1级文件系统函数

  • mkdir 算法:创建一个带路径名的新目录

mkdir pathname

  • creat 算法:创建一个空的普通文件

Algorithm of creat

  • rmdir 算法:删除目录(前提是目录必须为空)

rmdir dirname

  • link 算法:创建应用于普通文件的硬链接

link old_file new_file

  • unlink 算法:取消文件链接,将文件的links-count减一并从其父目录中删除文件名。当links_count为0时,通过释放它的数据块和索引节点来真正删除文件。

UNlink filename

  • symlink 算法:创建新文件和旧文件的符号链接。符号链接不同于硬链接,它可以链接到任何对象,包括目录,甚至不同设备上的文件。

  • readlink 算法:读取符号文件的目标文件名并返回目标文件名的长度。

2级文件系统函数

实现了文件内容的读/写操作

3级文件系统

支持文件系统的挂载、卸载和文件保护

文件锁定

文件锁定机制允许进程对一个文件或文件的某些部分设置文件锁,以防止在更新文件时出现竞态条件。文件锁可共享(允许同步读取),也可独占(执行独占写)。文件锁既可以是强制性的,也可以是建议性的。例如, Linux既支持共享文件锁,也支持独占文件锁,但文件锁定只是建议性的。在 Linux I中,文件锁可通过ntl(系统调用设置,也可通过fock系统调用操作。为简单起见,我们假设一种非常简单的文件锁定。

当一个进程试图打开一个文件时,将会检查目标操作模式的兼容性。唯一容模式是读模式。如果已经为更新模式打开了一个文件,即写读写追加,则该文件无法再次打开。但是,这并不会阻止相关进程(例如父进程和子进程)修改父进程打开的同一文件,而且在Unix/ Linux中同样如此。在这种情况下,文件系统只能保证每个写操作是原操作,但不能保证进程的写入顺序,写入顺序取决于进程调度。

文件系统项目的扩展

(1)多个组
(2)4KB大小的块
(3)管道文件
(4)I/O缓冲

苏格拉底挑战

Unix/LinuxEXT2文件系统



基本文件系统



chatgpt答疑

为什么Linux一直选择使用EXT2作为默认文件系统呢

文件系统是什么

代码实现

标签:11,文件,EXT2,文件系统,笔记,索引,Linux,节点
From: https://www.cnblogs.com/nql2/p/17766008.html

相关文章

  • 第六周学习笔记(学习笔记5)
    第十一章EXT2文件系统—学习笔记〇、本章思维导图一、文件系统数据结构通过mkfs创建虚拟磁盘在Linux下,命令mke2fs[-bblkesize-Nninodes]devicenblocks在设备上创建一个带有nblocks个块(每个块大小为blksize字节)和ninodes个索引节点的EXT2文件系统。设备可以是真实......
  • 2023-2024-1 20211327 信息安全系统设计与实现 学习笔记5(必做)
    学习笔记5EXT2文件系统概述1级和2级文件系统函数实践过程EXT2文件系统概述EXT2(SecondExtendedFileSystem)是Linux操作系统早期使用的文件系统,它是EXT文件系统家族的第二个版本,于1993年首次引入。在现代Linux系统中已经被后续版本的EXT文件系统(如EXT3和EXT4)所取代。1.......
  • Linux笔记(2)
    文件权限 文件的权限针对三类对象进行定义owner属主,缩写ugroup属组,缩写gother其他,缩写o 每个文件针对每类访问者定义了三种主要权限r:Read读w:Write写x:eXecute执行 修改文件访问权限的方法指令:chmod    设置文件的访问权限。格式:chmodwhooptper......
  • 学习笔记5 截图+代码
    一、苏格拉底挑战二、遇见的困难三、实践截图和代码课堂笔记:man3printfman-ksort//会找到含有sort功能的命令或函数man-ksort|grep3//缩小查找范围到C语言命令课本练习:#include<stdio.h>#include<stdlib.h>#include<stdint.h>#defin......
  • 《信息安全系统设计与实现》学习笔记5
    《信息安全系统设计与实现》学习笔记5第十一章EXT2文件系统EXT2文件系统数据结构创建虚拟硬盘mke2fs[-bblksize-Nninodes]devicenblocks虚拟磁盘布局Block#0:引导块超级块Block#1:B1是超级块,用于容纳整个文件系统的信息,是记录整个文件系统相关信息的......
  • 20211301 学习笔记5
    20211301学习笔记5教材知识点总结11.1EXT2文件系统EXT2:linux的默认文件系统EXT3:扩展,增加了日志文件EXT4:磁盘块的分配11.2EXT2文件系统数据结构创建虚拟磁盘:创建指定个块和索引节点的文件系统,可以在虚拟磁盘也可以在真实设备上虚拟磁盘布局:超级块:容纳......
  • 学习笔记5
    目录知识点归纳第11章EX2文件系统数据结构苏格拉底挑战问题与解决方案实践过程知识点归纳第11章EX2文件系统数据结构Linux一直将EXT2作为默认文件系统。EXT3是EXT2的扩展。EXT3中增加的主要内容是一个日志文件,他将文件系统的变更记录在日志中。日志可在文件系统崩溃时更快地......
  • Linux系统第四章文件权限读书笔记
    基本权限UGO:     1.UGO权限的含义:UGO是Linux文件权限管理中的基本概念,表示用户(User)、组(Group)、其他人(Others)。这三个范围定义了文件或目录的访问权限,控制着谁可以执行何种操作。User(用户):这是文件或目录的所有者。用户权限是最重要的,因为他们拥有最高级别的控制权......
  • 解决uboot ping不通的硬件问题--Apple的学习笔记
    一,前言之前uboot偶尔第一次上电会ping通一次,之后就ping不通,我以为电源问题,好像也不是,然后我又认为是交叉网线问题,我用的可能是直连网线,之前用的交叉网线头子坏了我就丢了。于是网上买了新的交叉网线,到货后依然ping不通,而且一次都不行了。难道代码有问题,于是用了我之前的uboot代码,结......
  • 学习笔记5
    EXT2文件系统EXT2(TheSecondExtendedFileSystem)是Linux的标准文件系统,一直以来被广泛使用。EXT3是EXT2的扩展版本,增加了一个日志系统。文件系统背景Linux标准文件系统:EXT2是Linux的标准文件系统,多年来一直被广泛使用。EXT3的扩展:EXT3是EXT2的扩展版本,主要增加了一个日......