HFS+文件系统

HFS+文件系统

头节点分析

HFS+文件系统节点分类

HFS+文件系统用B-树结构组织数据,B-树包含若干节点(Node),每个节点包含记录(Records),记录由**关键字(Key)数据(data)**组成。节点分为4种:

  • 头节点(Header Nodes):B-树的第一个节点,其中包含有头记录和位图记录。每个B-树只能包含一个头节点。
  • 位图节点(Map Nodes):位图节点中只包含一个位图记录。当头节点中的位图记录不足以管理该B-树中的节点分配情况时,就需要位图节点进一步管理。
  • 索引节点(Index Nodes):索引节点用来存放定义B-树结构的指针记录。
  • 叶节点(Leaf Nodes):叶节点包含与某个关键字相关联的数据记录,每个数据记录的关键字都是唯一的。

HFS+文件系统节点基本结构

节点号 = 节点在B-树文件中的偏移量 / 每节点字节数

节点结构:节点描述符、节点记录列表、节点记录起始偏移量列表

节点结构

节点描述符

大小固定14字节

offsetlengthdescription
0x00~0x034下一个节点号,最后一个节点为0
0x04~0x074上一个节点号,第一个节点为0
0x081节点类型,叶节点-1,索引节点0,头结点1,图节点2
0x091节点高度,头结点0,叶节点1,索引节点比子节点高一层,图节点0
0x0A~0x0B2节点记录数
0x0C~0x0D2保留
节点记录列表

节点描述符的大小14个字节,节点记录列表始于该节点的14偏移处。节点记录列表中由若干个节点记录组成,节点记录的类型和所描述的信息不一样,每个节点记录的大小不一样。

节点记录起始偏移量列表
  • 节点记录起始偏移量列表由若干表项构成,每个表项占用2个字节,用于描述一个节点记录的起始偏移地址,节点通过表项定位和访问每个节点记录。

  • 每个表项采取倒序排列,第一个节点记录的偏移地址由节点记录起始偏移量列表的最后一个表项描述;第二个节点记录的偏移地址由节点记录起始偏移量列表的倒数第二个表项描述,以此类推。

  • 节点记录起始偏移量列表中的表项比节点中的记录数多1,多出表项描述的节点中空闲空间的起始地址,说明节点中最后一个记录的结束地址。如果节点中没有空闲空间,多出的表项描述它本身在节点中的起始偏移。

HFS+文件系统的头节点结构

B-树的第一个节点是头节点,包含着整个B-树的基本信息。头节点的节点描述符后面跟着三个节点记录:

  • 头记录,106字节
  • 保留记录,128字节
  • 位图记录,占用保留记录到节点记录偏移量列表之间的所有空间

在这里插入图片描述

头记录
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值