ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

学习笔记5

2021-10-17 22:32:50  阅读:151  来源: 互联网

标签:Group ext2 文件系统 笔记 学习 block inode Block


本章介绍ext2文件系统。此数字使用Linux与Linux完成完整的兼容ext2文件系统。起点是,只要播放器包含完全文件系统,就可以轻松调整其他文件系统。

本章介绍Linux ext2文件系统历史记录的状态和EXT3 / EXT4文件系统的当前状态。
编程示例显示如何放大不同ext2数据结构的树和ext2文件系统。介绍支持所有Linux核心文件的Ext2文件系统的实现。
mont_root通过虚拟磁盘显示基本文件系统的创建。
文件系统执行可以分为三个级别。 1级别扩展了文件系统木材的基本文件系统,2级设备读/写函数文件内容和级别3实现文件系统安装/充电。文件保护
描述每个级别文件系统的算法,并且程序示例描述了实现过程。
集成编程项目中的所有级别集成。最后,所有编程和追求示例都集成到完全有效的文件系统中。

  • Boot Sector:上图启动块(Boot Sector),是用来存储磁盘分区信息和启动信息,任何文件系统给都不能缺少启动块。启动块大小并不是我们前面所说的4KB,而是1KB,是由PC标准定义的。

  • Block Group:启动块之后才是ext2文件系统的开始。ext2文件系统将整个分区划分为大小相等的块组(Block Group),每个块组由以下部分组成:

  • Super Block:超级块主要有两个功能:1)超级块结构给出了文件系统的全局信息。例如块大小,文件系统的版本等等。2)超级块结构包含一些函数指针,例如super_operation的成员函数read_inode提供了读取inode信息的功能。每个具体的文件系统一般都要提供这个函数来实现对inode信息的读取,例如ext2文件系统提供的具体函数是ext2_read_inode。

在格式化一个分区时究竟会划出多少个块组呢?
这主要取决于分区大小和块的大小。我们考虑一个32GB的ext2分区,块大小为4KB,Block Bitmap占一个块,也就是4KB,可以标注4K*8=32K个块,即128MB。因此,一个32GB的ext2分区需要32GB/128MB=256个块组。

这种寻址方式对于访问不超过12个数据块的小文件是非常快的,访问文件中的任意数据只需要两次读盘操作,一次读inode(也就是读索引项)一次读数据块。而访问大文件中的数据则需要最多五次读盘操作:inode、一级间接寻址块、二级间接寻址块、三级间接寻址块、数据块。实际上,磁盘中的inode和数据块往往已经被内核缓存了,读大文件的效率也不会太低。

   
Group 0: (Blocks 1-8192) [ITABLE_ZEROED]
  Checksum 0xa22b, unused inodes 501
  Primary superblock at 1, Group descriptors at 2-81
  Reserved GDT blocks at 82-337
  Block bitmap at 338 (+337), Inode bitmap at 354 (+353)
  Inode table at 370-497 (+369)
  5761 free blocks, 501 free inodes, 2 directories, 501 unused inodes
  Free blocks: 2432-8192
  Free inodes: 12-512
Group 1: (Blocks 8193-16384) [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Checksum 0xea71, unused inodes 512
  Backup superblock at 8193, Group descriptors at 8194-8273
  Reserved GDT blocks at 8274-8529
  Block bitmap at 339 (bg #0 + 338), Inode bitmap at 355 (bg #0 + 354)
  Inode table at 498-625 (bg #0 + 497)
  7855 free blocks, 512 free inodes, 0 directories, 512 unused inodes
  Free blocks: 8530-16384
  Free inodes: 513-1024
Group0 占用从 1 到 8192 号的 block。其中的 Superblock 则在 1 号 block 内。
文件系统描述说明(Group descriptors)占用从 2 到 81 号 block。
Block bitmap 和 Inode bitmap 分别在 338 和 354 号 block 上。
Inode table 占用 370-497 号 block。
Group0 当前可用的 block 号为:2432-8192,可用的 inode 号码为:12-512。
Group 内 inode 数的计算方式:
一个 inode 占用 256 Bytes
Inode 占用的 block 数:497 - 370 + 1 = 128
每个 block 的大小为 1024 Bytes
Inode 数为:128 * 1024 / 256 = 512

Boot Block
每个磁盘分区的开头 1024 字节大小都预留为分区的启动扇区,存放引导程序和数据,所以又叫引导块。引导块在第一个 Block,即 Block 0 中存放,但是未必占满这个 Block,原因是 Block 的大小可能大于 1024 字节。

标签:Group,ext2,文件系统,笔记,学习,block,inode,Block
来源: https://www.cnblogs.com/zhaoziyu/p/15418505.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有