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

学习笔记5

时间:2023-10-15 11:12:04浏览次数:30  
标签:count bg 文件系统 笔记 学习 u32 inode block

第十一章

EXT2文件系统

  • 创建虚拟磁盘
    mke2fs [-b blksize -N ninodes] device nblocks
  • 虚拟磁盘布局

    Block#0:引导块 B0是引导块,文件系统不使用
  • 超级块
    • Block#1 超级块 B1是超级块,用于容纳整个文件系统的信息
    • 超级块的重要字段
    u32 s_inodes_count://文件系统中节点总数
    u32 s_blocks_count://文件系统中块总数
    u32 s_r_blocks_count://为超级用户保留的块数
    u32 s_free_blocks_count: //文件系统中空闲块总数
    u32 s_mtime://文件系统的挂接时间
    u32 s_wtime://最后一次对该超级块进行写操作的时间
    u32 s_magic ://魔数签名,用于确定文件系统版本的标志
    u32 s_inodes_per_group://表示每个组块的inode数目,查找文件inode所在块的位置很重要
    u32 s_mnt_count://文件系统挂接计数
    u32 s_max_mnt_count://文件系统最大挂接计数
    u32 s_state://文件系统的状态
  • 块组描述符
    Block#2 块组描述符块 EXT2将磁盘分成几个组,每个组有8192个块,每组用一个块组描述符结构体来描述
struct ext2_group_desc{
   u32	bg_block_bitmap;	//Bmap block number
   u32	bg_inode_bicmap;	//Imap block number
   u32	bg_inode_table;	        //Inodes begin block number
   ul6	bg_free_blocks_count;	//THESE are OBVIOUS
   U16	bg_free_inodes_count;		
   U16	bg_used_dirs_count;		
   ul6	bg_pad;	                //ignore these
   u32	bg_reserved(3);	
};			
  • 块和索引节点图
    • Block#8: 块位图(Bmap)(bg_block_bitmap)位图是用来表示某种项的位序列,例如 磁盘块或索引节点。位图用于分配和回收项。
    • Block#9:索引节点位图(Imap)(bg_inode_bitmap)一个索引节点就是用来代表一个文件的数据结构。
  • 索引节点
    • Block#10:索引(开始)节点(bginode_able)每个文件都用一个128字节(EXT4中 是256字节)的唯一索引节点结构体表示。
struct ext2_inode {
   ul6	i_mode;   	//16 bits = |tttt|ugs|rwx|rwx|rwx|
   ul6	i_uid;	        //owner uid
   u32	i_size;	        //file size in bytes
   u32	i_atime;	//time fields in seconds
   u32	i_ctime;	//since 00:00:00,1-1-1970
   u32	i_mtime;		
   u32	i__dtime;		
   U16	i_gid;	        //group ID
   u16	i_links_count;	//hard-link count
   u32	i_blocks;	//number of 512-byte sectors
   u32	i_flags;	//IGNORE
   u32	i_reserved1;	//IGNORE
   u32	i_block[15];	//See details below
   u32  i_pad[7];;	//for inode size = 128 bytes
}	

i_block[l5]数组包含指向文件磁盘块的指针,这些磁盘块有:
* 直接块:i_block[0] Mi_block[ll],指向直接磁盘块。
* 间接块:i_block[12]指向一个包含256个块编号(对于1KB BLKSIZE)的磁盘块,每个块编号指向一个磁盘块。
* 双重间接块:i_block[13]指向一个指向256个块的块,每个块指向256个磁盘块。
* 三重间接块:**i_block[14]是三重间接块。对于“小型” EXT2文件系统,可以忽略它。

  • 数据块
    紧跟在索引节点块后面的是文件存储数据块。
    目录条目
    目录包含dir_entry结构,即
struct ext2_dir_entry_2{
   U32 inode;                       //inode number; count from 1; NOT 0
   U16 rec_len;                     //this entry's length in bytes
   U8 name_len;                     //name length in bytes
   u8 file_type;                    //not used
   char name[EXT2_NAME_LEN];        //name:1-255 chars, no ending NULL

dir_entry是一种可扩充结构。名称字段包含1到255个字符,不含终止NULL。

  • 邮差算法
Linear_address LA = N*block + house;
Block_address BA = (LA/N,LA%N);

3级文件系统

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

  • 挂载算法
    mount filesys mount_point
    可将某个文件系统挂载到mount_point目录上
  • 卸载算法
    卸载文件系统操作可卸载已挂载的文件系统,将挂载的文件系统与挂载点分开。
  • 交叉挂载点
    • 向下遍历
    • 向上遍历
  • 文件保护
    9个权限位
    • owner
      • r w x
    • group
      • r w x
    • other
      • r w x
  • 文件系统项目拓展
    多个组-4KB大小块-管道文件-I/O缓冲

苏格拉底挑战




标签:count,bg,文件系统,笔记,学习,u32,inode,block
From: https://www.cnblogs.com/gao0818/p/17765404.html

相关文章

  • 深度学习模型在基因组选择中的预测能力(统计、总结)
    Gianolaetal.[61]:应用:基因组选择。比较:多层感知器(MLP)与贝叶斯线性回归(BRR)。结果:在小麦数据集中,随着隐藏层神经元数量的增加,MLP的预测能力提高。MLP对BRR的性能提高了11.2%至18.6%。在Jersey数据集中,MLP也超越了BRR,特别是在脂肪产量、牛奶产量和蛋白产量上。Pérez-R......
  • 《信息安全系统设计与实现》第六周学习笔记
    《信息安全系统设计与实现》第六周学习笔记第十一章EXT2文件系统EXT2文件系统EXT2第二代扩展文件系统(英语:secondextendedfilesystem,缩写为ext2),是LINUX内核所用的文件系统。它开始由RémyCard设计,用以代替ext,于1993年1月加入linux核心支持之中。EX2文件系统数据结构......
  • 深度学习不如GBLUP的原因
    深度学习,尤其是最近几年,被广泛宣传为可以处理复杂问题的强大工具。然而,我们必须理解,在某些特定的问题或数据集上,传统的方法有时可能更适合或更稳定。以下是一些可能解释为什么在考虑G×E交互效应时,深度学习没有表现得像GBLUP模型那么好的原因:数据量和复杂性:深度学习模型,特别是......
  • 2023-2024-1 20231312 《计算机基础与程序设计》第三周学习总结
    作业信息|这个作业属于哪个课程|<班级的链接>2023-2024-1-计算机基础与程序设计|||----这个作业要求在哪里|---<作业要求链接>2023-2024-1计算机基础与程序设计第一周作业-|----||这个作业的目标|《计算机基础概论》第2,3章《C语言......
  • 学习BASE64编码
    什么是BASE64编码Base64是一种基于64个可打印字符来表示二进制数据的表示方法。BASE64解决什么问题Base64常用于在处理文本数据的场合,表示、传输、存储一些二进制数据,包括MIME的电子邮件及XML的一些复杂数据。原因:一个字节可表示的范围是0~255,其中ASCII值的范围......
  • 学习笔记5
    11章教材知识点EXT2概述:EXT2是一种磁盘文件系统,用于存储和组织文件和目录。支持文件和目录的权限、链接、文件系统的挂载和卸载等功能。使用磁盘上的数据结构来组织文件和目录的存储。EXT2数据结构:虚拟磁盘:通过mkfs命令创建的EXT2文件系统。虚拟磁盘布局:由超级块、......
  • 《信息安全系统设计与实现》学习笔记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)\),分别为源点和汇点......