原文见:http://www.linux-mtd.infradead.org/doc/ubifs_whitepaper.pdf
UBIFS Source File List
budget.c budgeting
build.c module initialization, mounting and unmounting
commit.c commit management
compress.c compression management
debug.c debugging self-checks
debug.h debugging self-checks header
dir.c directory operations
file.c file operations
find.c find eraseblocks for various purposes e.g. G.C.
gc.c garbage collection
io.c node I/O
ioctl.c EXT2 compatible extended attribute ioctls
journal.c journal updates
key.h index key related functions
log.c log
lprops.c LEB properties
lpt.c LEB properties tree (LPT)
lpt_commit.c LPT commit
master.c master node
misc.h shared inline functions
orphan.c orphans
recovery.c recovery
replay.c replay
sb.c default file system creation and super block node
scan.c general purpose eraseblock scanner (e.g. used by G.C.)
shrinker.c memory shrinker for TNC
super.c super operations
tnc.c tree node cache (TNC)
tnc_commit.c TNC commit
ubifs.h internal definitions
ubifs-media.h on-flash structures and definitions
xattr.c extended attributes
UBIFS Glossary
B+tree Kind of tree used for UBIFS wandering tree.
base head Journal head used for non-data nodes. The base head provides the integrity and recoverability of UBIFS by keeping all inode nodes and directory entry nodes in sequence.
budgeting Estimation of free space.
bud An eraseblock used by the journal.
cnode Either a pnode or an nnode.
commit Process by which the index is updated.
commit start node Node written to the log when a commit starts.
common header Common header of all node types except nodes in the 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 A node that contains a directory entry.
dirty space Space taken up on flash by obsolete nodes, padding nodes and padding bytes.
eraseblock The smallest unit of flash memory that can be individually erased.
extended attribute entry node A node that contains the name and inode number of an extended attribute (same structure as a directory entry).
freeable LEB A LEB in the main area that contains only free space and dirty space.
free space Space on flash that can be written to.
garbage collection The process of reclaiming dirty space to make 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 LEB reserved for garbage collection (must always be one LEB reserved), also known as gc_lnum.
index The top part of the UBIFS wandering tree consisting of index nodes.
index LEB A LEB that contains (only) index nodes.
index node A node that forms the structure of the index. It contains the keys and on-flash positions of its child nodes.
inode A file system object. In UBIFS, an inode may be a regular file, a directory, a symbolic link, a special file, or an extended
attribute (xattr) value holder.
inode node A node that holds the metadata for an inode. Every inode has exactly one (non-obsolete) inode node.
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.
JFFS2 Journaling Flash File System 2 which is the quintessential linux flash file system, however it is not scalable and the present limit of its usage is 1 GiB.
journal The journal is like a miniature JFFS2 file system, storing nodes without an on-flash index, so that index updates can be grouped altogether. Like JFFS2 the journal must be scanned at mount time.
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 The key to the index. The index stores the position of all nodes, and their keys. A node may be found by looking up its key in the index. The key is a 64-bit value whose first 32 bits are the inode number. The next 3 bits are node type, and the remaining 29 bits vary depending on node type. UBIFS also supports the possibility of changing the key format and allows for up to 128-bits for the key.
LEB Logical eraseblock that is mapped to a physical eraseblock (PEB) by UBI.
LEB properties Main area LEBs have three important values that are recorded about them. These LEB properties are: amount of free space, amount of dirty space, and whether the LEB contains index nodes.
LNC Leaf node cache used to store directory entries and extended attribute entries
log The part of the journal that records where the buds are.
LPT LEB properties tree, a wandering tree used to store LEB properties.
main area LEBs that are used for data and the index.
master node The node that contains the positions of on-flash structures.
minimal I/O unit The smallest unit of flash memory that can be individually written.
mkfs.ubifs The userspace program that creates UBIFS images.
MTD Memory Technology Device. A linux device layer for flash memories.
node The logical component of node-structured flash file systems like JFFS2 and UBIFS.
nnode Internal node of the LPT.
orphan area Area for storing the inode numbers of deleted by still open inodes, needed for recovery from unclean unmounts.
orphan node The node used to store orphan information.
padding bytes Bytes written when the space to pad is too small for a padding node.
padding node A node written to fill space, usually to the edge of a minimal I/O unit.
PEB Physical eraseblock that is mapped to a logical eraseblock (LEB) by UBI.
pnode Leaf node of the LPT which contains the actual LEB property values.
recovery The functions by which UBIFS repairs itself after an unclean unmount.
replay The process by which UBIFS reindexes the nodes in the journal when the file system is mounted.
reference node Log nodes that store the LEB numbers of buds and their offset.
shrinker A linux facility the requests that some memory be freed if possible. UBIFS has a shrinker that frees clean znodes from the TNC.
superblock node The node that records file system parameters that almost never change.
TNC Tree Node Cache, UBIFS index in memory.
truncation node A node that records when a file is truncated and becomes smaller.
UBI Unsorted Block Images module that provides wear-leveling, bad-block handling, and the creation of logical volumes mapping logical eraseblocks to physical eraseblocks.
UBIFS UBI File System.
unclean unmount When the file system does not have a chance to write all cached data and metadata, for example because of a loss of power.
wandering tree A tree that moves in a way to allow out-of-place updates.