免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2022 | 回复: 0
打印 上一主题 下一主题

[新手入门] AIX JFS2文件系统底层研究 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-06 13:45 |只看该作者 |倒序浏览
每个分区刚好只有一个聚集;每个聚集可能有多个文件集。
聚集inode中1号inode描述描述IAG(内部包含聚集inode的区域),聚集inode第一个extent在superblk中指定。

聚集Inode中16号inode之后都是文件集,描述用户文件IAG(内部包含用户inode的区域)。
文件集 inode 2 是文件集的根目录 inode。

盘区(extent)需要两个值,即其长度和其地址。长度以聚集块尺寸为单位计算。JFS 使用 24 位值来表示盘区的长度,因此盘区的范围大小是 1 到 2(24)-1 个聚集块。

JFS 磁盘 inode 是 512 字节。一个 JFS 磁盘 inode 包含 4 组基本信息。第一组描述 JFS 对象的 POSIX 属性。第二组描述 JFS 对象的其它属性;这些属性包括支持 VFS 必需的信息、操作系统环境特定的信息、以及 B+ 树的头部。第三组不是包含 B+ 树根节点的盘区分配描述符就是包含内嵌数据。第四组包含扩展属性、更多内嵌数据或附加的盘区分配描述符。

Jfs采用动态分配inode,所以动态分配的inode就需要单独的映射结构(描述这些inode分配区域即分配映射表)。

盘区分配描述符(xad 结构):
struct xad
{
unsigned    flag:8;
unsigned    rsvrd:16;
unsigned    off1:8;  //逻辑位置(块)
uint32      off2;
unsigned    len:24;  //extent长度(块)
unsigned    addr1:8;//物理位置(块)
uint32      addr2;
} xad_t;

Inode中的数据结构包括:
1:内嵌数据
2:直接地址
3:间接地址

稀疏文件:
稀疏文件通过文件逻辑地址offset确定。一个文件需要多个盘区来表示,而文件逻辑地址不连续时代表其实稀疏文件。


块分配映射表本身是聚集 inode 2 描述的文件。
块映射表 inode 索引的映射表的逻辑和物理结构。映射表的每页长度为 4K。映射表包含三种类型的页:bmap 控制页、dmap 控制页和 dmap 页。
0 表示空闲资源,1 表示已分配资源。

inode 分配映射表最前面 4k 大小的页是控制页。该页包含 inode 分配映射表的摘要信息。
每个 IAG 大小为 4K,描述磁盘上 128 个物理 inode 盘区。


符号链接由一个 inode 表示,该 inode 的 di_mode 字段设置为符号链接模式 (S_IFLNK)。如果 inode 内有空间,则链接文件的整个路径直接存储在 inode 中。否则,将作为 inode 的数据存于盘区中。

  目录是 JFS 中日志化的元数据文件。目录由目录项组成,目录项表示目录中包含的对象。目录项将名字和 inode 号连接在一起。特定的 inode 描述特定名字的对象。为提高目录项定位的性能,B+ 树采用按名排序。
  目录 inode 的 di_size 字段仅表示目录 B+ 树的叶子页。如果 inode 中包含目录的叶节点,则 di_size 字段为256。
  目录中没有特定项表示自身 (".") 和父目录 ("..")。而在 inode 中表示。自身就是目录自己的 inode 号。父目录是 inode 中的特殊字段, idotdot,struct dtroot_t ,见文件 jfs_dtree.h。
  目录 inode 包含 B+ 树的根,处理方法和一般文件类似。只是目录 B+ 树以名为键。目录 B+ 树的叶节点包含目录项,且以目录项的全名作为键值。目录 B+ 树最下层内部节点使用后缀压缩。其它内部节点采用相同的压缩后缀。后缀压缩将名字缩至最短,正好足以区分当前目录项和前一目录项。


针对这些研究我写了个提取jfs2文件系统的软件,哪位需要可以到disksoft.org上下载得到。可能还有些地方需要修改,还请各位给出意见。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP