UBIFS 术语

B+ tree:

base head:

budgeting: 空闲空间评估

bud: 一个日志使用的eraseblock

cnode:

commit: 更新index到flash上的过程

commit start node:

common header: 所有节点类型的公共头部(除了LPT area)

data head: Journal head used for data nodes. Potentially UBIFS could have more than one data head which would assist in keeping data nodes for each file grouped together rather than interspersed. However presently there is only one data head.

directory entry node: 包含目录项的节点

dirty space: flash上被废弃节点,padding 节点以及padding数据占据的空间

eraseblock: flash memory最小可擦除单位,一般是page的2^n倍

extended attribute entry node: 一个节点包含扩展属性的名字和inode number。难道是扩展属性的真正内容保存在inode number所指向的文件中?

freeable LEB: main area中的一个LEB仅包含空闲空间和dirty空间,看起来就是可回收LEB

free space: flash上的可写空间,应该是page的倍数吧,毕竟page是写的最小单位

garbage collection: 回收dirty空间获取free space

garbage collection head: Journal head used by the garbage collector. In order to move and reindex nodes, the garbage collector just feeds them back through the journal.

garbage collection LEB number: 保留给garbage collection的LEB, 一个 LEB保留给GC

index:UBIFS wandering tree的上部分,保存着index nodes

index LEB: 一个LEB仅仅保存index nodes

index node: 一个节点保存这index物理结构。包含子节点的key以及on-flash位置,应该类似XFS文件系统的 index node

inode: 一个文件系统对象。在UBIFS中,一个inode可以代表一个regular文件,一个目录,一个符号链接,一个特殊文件,或者一个属性值(果然,属性值是以文件方式保存的)

in-the-gaps method: When the file system becomes full, the index cannot grow in size and consequently must be updated in-place. This is done by writing index nodes in-the-gaps created by obsolete index nodes.

journal: 日志就像个小型的 JFFS2文件系统,存储nodes without an on-flash index, 这样可以成组的更新index。和JFFS2类似,必须在mount时扫描日志

journal head: The position on-flash where the next node will be written. UBIFS adopts a multiheaded journal with two main heads: the base head and the data head.

key: index 的key, index保存所有子节点的位置以及他们的key,通过index中的key来获得相应的节点。key是64-bit值,32位是inode number。3 bits是node类型,其余29bits依赖与node的类型。UBIFS也支持改变key的格式到128-bits。32bits的inode number是谁的inode number呢?

LEB: Logical eraseblock由UBI映射为physical eraseblock

LEB properties: main area LEBs有三个重要的属性需要记录在LEB properties, 这三个属性是: 空闲空间数目, dirty空间数目,以及是否LEB包含index nodes

LNC: 页节点cache用来存储目录项和扩展属性项

log: The part of the journal that records where the buds are.

LPT: LEB properties tree, 一个wandering tree用来记录LEB属性

main area: 用来存放data和index的LEBs区域

master mode: 节点用来保存所有on-flash位置可变的结构的position。 具体哪些是on-flash 且位置可变的结构?

minimal I/I unit:flash memory的最小写入单位

node: JFFS2 UBIFS类文件系统的node结构的逻辑部件

nnode: Internal node of the LPT.

orphan area: the node used to store orphan information.

padding bytes: 当需要pad的空间对于padding node太小时padding的字节

padding node: 一个用来填充的node,通常用在最小写单位的边缘位置

PEB: Physical eraseblock,被UBI映射为logical eraseblock

pnode: Leaf node of the LPT which contains the actual LEB property values.

recovery: 在unclean unmount后,UBIFS 用来修复文件系统的功能

replay: 文件系统 mount时,需要重新index日志中的节点

reference code: Log nodes that store the LEB numbers of buds and their offset.

shrinker: 当系统内存缺少时,释放掉内存。UBIFS的shrinker从TNC中释放znodes

superblock node: 超级块记录着几乎永远不便的文件系统参数

TNC: Tree Node Cache, 缓存在cache中的UBIFS index。

truncate node: 一个node记录 文件被truncated并且尺寸变小

unclean unmount: 文件系统没有机会写入所有的cached data以及metadata, 比如系统掉电。

wandering tree:

znode: index node在内存中的对象

原文地址:https://www.cnblogs.com/pengdonglin137/p/3398712.html