官术网_书友最值得收藏!

The APFS structure

So, APFS is structured in a single container that may contain one or more volumes. The APFS structure is presented in the following diagram:

Overview of the APFS structure

Each filesystem structure in APFS starts with a block header. The block header starts with a checksum (Fletcher's checksum algorithm is used) for the whole block and also contains the copy-on-write version of the block, the block ID, and the block type.

The APFS structure can be explained as follows:

  • The Container Superblock contains information on the block size, the number of blocks and pointers to the space manager for this task, the block IDs of all volumes, and a pointer to a block map B-Tree (which contains entries for each volume, along with its ID and offset).
  • Nodes are used for storing different kinds of entries. They can be part of a B-Tree or exist on their own and can contain either flexible or fixed-sized entries.
  • The Space Man(ager) manages the allocated blocks in the APFS container, and stores the number of free blocks and a pointer to the Allocation Info File.
  • The Allocation Info File stores the allocation file's length, version, and the offset.
  • The B-Trees manage multiple nodes and contain the offset of the root node.
  • A Volume Superblock contains the name of the volume, its ID, and a timestamp.

As for allocation files, they are simple bitmaps and do not have a block header and type ID.

主站蜘蛛池模板: 徐州市| 青岛市| 嘉祥县| 香港| 娱乐| 泸定县| 宁河县| 满城县| 平江县| 顺昌县| 祁门县| 阿巴嘎旗| 阳高县| 察哈| 黎平县| 惠东县| 新建县| 朝阳市| 中卫市| 阿坝县| 龙里县| 淮北市| 阳谷县| 抚顺县| 勐海县| 宿迁市| 永寿县| 建德市| 曲水县| 伊金霍洛旗| 甘谷县| 射阳县| 衡南县| 白河县| 泉州市| 夹江县| 肃南| 咸阳市| 南汇区| 鹤峰县| 德昌县|