首页 > 其他分享 >信安系统学习笔记五

信安系统学习笔记五

时间:2022-10-03 17:03:18浏览次数:52  
标签:算法 文件 函数 信安 文件系统 笔记 学习 描述符 挂载

第十一章 EXT2文件系统

一.知识点归纳

EXT2文件系统

The Second Extended File System (ext2)文件系统是Linux系统中的标准文件系统,是通过对Minix的文件系统进行扩展而得到的,其存取文件的性能极好。 在ext2文件系统中,文件由inode(包含有文件的所有信息)进行唯一标识。

EXT2文件系统数据结构

通过mkfs创建虚拟键盘

mke2fs [-b blksize -N ninodes] device nblocks

虚拟磁盘布局

 

 

 

 

 

 

 

 

 超级块

超级块(Super Block)描述整个分区的文件系统信息,如inode/block的大小、总量、使用量、剩余量,以及文件系统的格式与相关信息。超级块在每个块组的开头都有一份拷贝(第一个块组必须有,后面的块组可以没有)。

块组描述符

  • 块组描述符块(GD)由很多块组描述符组成,整个分区分成多个块组就对应有多少个块组描述符。
  • 每个块组描述符存储一个块组的描述信息,如在这个块组中从哪里开始是inode Table,从哪里开始是Data Blocks,空闲的inode和数据块还有多少个等等。块组描述符在每个块组的开头都有一份拷贝。

邮差算法

基本文件系统

type.h:包含了超块、组描述符、索引节点、目录条目结构;打开文件表、挂载表、PROC结构体和文件系统常数

global.c:包含文件系统全局变量
实用程序函数:get_block/put_block函数、iget(dev,ino)函数、The iput(INODE *mip)函数、getino()函数

mount-root.c:用于挂载根文件系统

1级文件系统函数

mkdir算法:创建一个带路径名的新目录
create算法:创建一个空的普通文件
rmdir算法:删除目录
link算法:创建从new_file到old_file的硬链接(只能用于普通文件,不能用于目录)
unlink算法:取消文件链接
sylink算法:创建一个从新文件到旧文件的符号链接
readlink算法:读取符号文件的目标文件名并返回目标文件名的长度

2级文件系统函数

open算法:打开一个文件进行读或写
lseek算法:将打开的文件描述符在OFT中的偏移量设置为从文件开头开始或当前位置开始的字节位置
close算法:关闭文件描述符
read系统调用:将n个字节从打开的文件描述符读入用户空间的缓冲区
write系统调用:将n个字节从用户空间的缓冲区写入打开的文件描述符
opendir-readdir

3级文件系统函数

挂载算法:
挂载操作命令mount filesys mount_point可将某个文件系统挂载到mount_point目录上
卸载算法:将挂载的文件系统与挂载点分开
交叉挂载点:修改getino(pathname)函数,来支持交叉挂载点
文件保护:通过文件索引节点中的权限位实现文件保护
实际uid和有效uid:每个进程都有一个实际uid和一个有效uid
文件锁定:文件锁定机制允许进程对一个文件或文件的某些部分设置文件锁,以防止在更新文件时出现竞态条件

二.问题与解决思路

ext2 头文件的下载:

 

 

 

 

三.实践内容与截图

显示超级块

 

 

 

标签:算法,文件,函数,信安,文件系统,笔记,学习,描述符,挂载
From: https://www.cnblogs.com/zhilan/p/16750738.html

相关文章

  • 【博学谷学习记录】超强总结,用心分享 。Dubbo相关知识。
    一.Dubbo的介绍2011年10月27日,阿里巴巴开源了自己的SOA服务化治理方案的核心框架Dubbo,服务治理和SOA的设计理念开始逐渐在国内软件行业中落地,并被广泛应用。在企......
  • 【Linux】学习-07-Linux防火墙端口
    firewall-cmd--list-ports:查看当前开启的端口情况firewall-cmd--zoon=public--add-port=9000/tcp-parmanent:开启9000端口firewall-cmd--reload:重启防火墙,上......
  • 【Linux】学习-06-磁盘管理与进程管理
    1、磁盘管理df:显示当前磁盘的情况,显示的是字节的形式df-h:以M为单位显示当前磁盘的使用情况 du:查看当前文件夹所占用的空间du-a:查看当前文件夹下每个文件(夹......
  • Jenkins 20220927笔记本4
                          ......
  • Jenkins 20220929笔记本5
                                  ......
  • Jenkins 20220925笔记本3
                                                 ......
  • Project Lombok (即 Lombok)学习记录
    目录参考文档什么是ProjectLombok?下载ProjectLombok支持的安装方式安装ProjectLomboklombok.jar安装eclipse安装lombok插件IntelliJ安装lombok插件使用Proj......
  • pyside 学习目标
    官方文档 https://doc.qt.io/qtforpython/examples/index.html1获取配置信息2022-9-28 新建项目   新建 config.yaml文件内容如下mysql:host:"127.0.0.1"port:......
  • 深度学习Vue源码-模板编译原理
    前言此篇主要手写Vue2.0源码-模板编译原理上一篇咱们主要介绍了Vue数据的响应式原理对于中高级前端来说响应式原理基本是面试Vue必考的源码基础类如果不是很清......
  • java---数组Arrays类学习
    一.Arrays类1.数组的工具类java.util.Arrays2.由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象,进行一些基本......