首页 > 其他分享 >信息安全系统设计与实现学习笔记5

信息安全系统设计与实现学习笔记5

时间:2022-10-03 21:02:03浏览次数:45  
标签:EXT2 超级 信息安全 文件系统 笔记 学习 Block 磁盘 block

一、知识点归纳以及自己最有收获的内容

1、知识点归纳

第11章 EXT2文件系统

1、EXT2文件系统数据结构

  • 虚拟磁盘布局
Block#0:引导块,文件系统不会使用它。它用来容纳一个引导程序,从磁盘引导操作系统
Block#1:超级块,用于容纳关于整个文件系统的信息
Block#2:块组描述符块,EXT2将磁盘块分成几个组,每组用一个块组描述符结构体描述
Block#8:块位图,用来表示某种项的位序列
Block#9:索引节点位图,用来代表一个文件的数据结构
Block#10:索引节点块,每个文件都用一个128字节的独特索引节点结构体表示

2、B10中i_block[15]数组包含指向文件磁盘块的指针,这些磁盘块有:

直接块:i_block[0]至i_block[11],指向直接磁盘块
间接块:i_block[12]指向一个包含256个块编号的磁盘块,每个快编号指向一个磁盘块
双重间接块:i_block[13]指向一个指向256个块的块,每个块指向256个磁盘块
三重间接块:i_block[14]是三重间接块,对于小型EXT2文件系统可以忽略它。

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

4、目录条目——目录包含dir_entry结构

5、EXT2文件系统数据结构

6、文件系统实现分为三个级别

  • 第1级别实现了基本文件系统树,使用第1级别FS函数的用户命令程序有:
Mkdir /creat /mknod/rmdir/link/unlink/symlink/rm/ls/cd/pwd
  • 第2级别实现了文件内容读/写函数,二级文件函数有:
1)open算法
2)lseek
3)close算法
  • 第3级别实现了文件系统的挂载、卸载和文件保护

7、基本文件系统

type.h文件:包含EXT2文件系统的数据结构类型以及打开文件表、挂载表、PROC结构体和文件系统常数。
global.c文件:包含文件系统的全局变量。
util.c file:包含iget(dev,ino)函数,get_block/put_block函数等文件系统常用的使用程序函数。
mount-root.c文件:包含mount_root()函数,在系统初始化期间调用该函数来挂载根文件系统。

自己最有收获的内容

  • 在网上搜索了inode表结构相关内容,加深了对相关概念的理解

二、问题与解决思路

什么情况会造成超级块损坏,会有什么样的后果?

  • 解决方法:
    网上找到相关文章:
https://blog.csdn.net/CFLCL_FLKF/article/details/125313525

当操作系统启动后,系统内核会把超级块中的内容复制到内存中,并周期性的利用内存里的最新内容去更新硬盘上的超级块中的内容。由于这个更新存在 一个时间差,为此内存中的超级块信息与硬盘中的超级块信息往往只有在开机与关机的某个特定时刻是同步的;而在其他时间都是不同步的。假设当操作系统意外当机或者因为断电而造成的意外事故时,内存中的超级块信息没有及时保存到硬盘中,此时文件系统的完整性就会受到破坏。轻者导致刚建立的丢失,重则的话会导致文件系统瘫痪。
超级块损坏的最大杀手仍然是意外断电或者其他原因的意外当机。因为此时内存中的超级块信息无法及时更新到硬盘中。为此就出现了内存与超级块中内容不一致的地方,从而会导致系统启动时的一系列故障。


三、实践内容与截图

实践1:通过mkfs创建虚拟磁盘,查看挂载与超级块

  • 创建虚拟磁盘

  • 查看挂载

  • 查看超级块

标签:EXT2,超级,信息安全,文件系统,笔记,学习,Block,磁盘,block
From: https://www.cnblogs.com/moonyecho/p/16751220.html

相关文章

  • Cit 入门操作笔记
    Git操作入门   Git  是一个快速、可扩展的 分布式版本控制系统 ,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问.Git与你熟悉的大部分版本控制系统的......
  • C#学习第一天
      今天进行了C#的初步学习,主要了解了C#的相关知识:目录基础语法数据类型值类型引用类型动态(Dynamic)类型字符串类型指针类型类型转换变量常量运算符判断循环封装基础......
  • 哈工大李治军老师《操作系统》课程学习笔记
    目录1什么是操作系统2操作系统boot3操作系统启动3.1setup3.2关于保护模式3.3system模块4操作系统接口5系统调用的实现5.1为什么要隔离用户态和内核态5.2如何隔离......
  • MarkDown学习笔记
    MarkDown学习标题:一级标题#一级标题二级标题##二级标题三级标题 ###三级标题字体 ##字体helloword **helloword**helloword *helloword*helloword......
  • 《Unix/Linux系统编程第十一章学习笔记》
    第11章EXT2文件系统11.1EXT2文件系统多年来,Linux一直将EXT2作为默认文件系统。EXT3是EXT2的扩展。EXT3中增加的主要内容是一个日志文件,他将文件系统的变更记录在日志中......
  • 哈工大刘宏伟老师《计算机组成原理》课程笔记
    目录1.0课程简介1.1计算机系统简介1.2计算机的基本组成1.2.1冯诺依曼计算机1.2.2现代计算机硬件框图1.2.3存储器1.2.4运算器1.2.5控制器1.3计算机硬件的主要技术指......
  • JAVA学习前准备
    电脑常用快捷键Ctrl+C:复制Ctrl+V:粘贴Ctrl+A:全选Ctrl+X:剪切Ctrl+Z:撤销Ctrl+S:保存Alt+F4:关闭窗口Shift+delete:永久性删除文件win键+R:打开运行win键+E:打......
  • 《Unix&Linux系统编程》第七章学习笔记
    第11章EXT2文件系统Linux一直使用EXT2作为默认文件系统。EXT3是EXT2的扩展,增加了一个日志文件,它将文件系统的变更记录在日志中,日志可在文件系统崩溃时更快地从错误中恢复......
  • java工厂方法模式学习
    总结;定义一个接口,多个实现类,一个工厂方法publicinterfaceHuman{voideat();voidsleep();}publicclassWhiteHumanimplementsHuman{@Overr......
  • 《Unix/Linux系统编程》第五周学习笔记
    《Unix/Linux系统编程》第五周学习笔记EXT2文件系统ext2功能Ext2(第二扩充文件系统)是一种功能强大、易扩充、性能上进行全面的优化的文件系统,也是目前Linux文件系统实际......