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

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.

主站蜘蛛池模板: 南通市| 麦盖提县| 五河县| 大安市| 临沭县| 北票市| 濉溪县| 泾川县| 江津市| 甘德县| 台东市| 吉木乃县| 凤城市| 饶阳县| 应城市| 临海市| 大关县| 青冈县| 商南县| 长乐市| 冕宁县| 阜城县| 秦安县| 鸡东县| 申扎县| 三都| 南雄市| 犍为县| 曲靖市| 长海县| 铜陵市| 舞阳县| 昭平县| 柞水县| 米泉市| 黄骅市| 滦南县| 扎囊县| 德江县| 仁寿县| 淄博市|