Next: References
Up: JFFS3 design issues
Previous: Abbreviations
Contents
- Block, Sector -
the minimal flash erasable unit.
- Bad block - unreliable flash block which must not be exploited.
NAND and AND flash chips may be shipped with bad blocks. These blocks are marked
bad and must not be ever used (read, written or erased). The technology also implies
that new bad blocks may appear during the flash's life-cycle. These blocks
have to be marked bad too.
- Data node - the inode node relating to file, not to directory.
- Dentree, directory entry tree - TODO. Not designed yet.
The Idea is to keep
direntries of the directory in a sort of balanced tree, not in a list as
it is done in JFFS2.
- Direntry node - node representing JFFS3 directory entry.
Each JFFS3 directory entry is represented by one valid direntry node.
- Dirt, dirty space - the flash space which was once used
but doesn't contain useful information anymore. Due to flash nature this
space can't be used before the relating block has been erased. To put it
differently, the dirty space is comprised of obsolete nodes and
paddings.
- Fragtree, fragment tree - a Red-Black tree of the file
fragments scattered over JFFS3 data nodes. Used to quickly lookup which
nodes ought to be read in order to get the needed file data range.
- Garbage Collector - very important part of JFFS3
design designated to reclaim dirt. Namely, GC moves
valid nodes from dirty vblocks to newly erased vblocks reclaiming the space
occupied by dirt. Another substantial aspect GC is responsible for is
the wear-levelling support and the production of pristine nodes.
- Gcblock - the block which is currently being Garbage
Collected, i.e., the valid nodes are moved from this block by the GC.
- Node -
basic JFFS3 data structure. Anything that JFFS3 stores on flash is
stored in form of node(s). There are different types of nodes defined.
- Node header -
nodes and the relating data structures largely consist of two parts - header and
data. Node header contains internal information while node data contains some
user-visible data like file's content or direntry's name.
- Non-pristine node - a type of data node which contains the amount
of uncompressed data which is not multiple of PAGE_SIZE bytes.
- ICP entry - a short record in ICP referring a node.
- Icp_ref - a small object representing an ICP. Belongs to
the in-core objects group.
- In-core memory, in-core RAM - the memory that is consumed by
node_ref, inode_ref and icp_ref objects.
- Inode_ref - a small object representing an inode (of any
type). Belongs to the in-core objects group.
- Inode build - a process which is activated by the
iget() VFS call. The main tasks are: to build the dentree
for th directory inodes and to build fragtree
for the regular file inodes.
- Inode node - a node representing JFFS3 inode.
Any inode in JFFS3 is represented by one (for directory inodes) or more
(for file inodes) inode nodes.
- Node_ref - a small object representing any JFFS3 node (of any type).
Belongs to the in-core objects group.
- Obsolete node - a node which does not contain any
actual information. The exact semantic of obsolete node depends on its
type.
- Padding node - fake node representing nothing and
as a rule produced when JFFS3 synchronizes the write buffer(s) or the end
of vblock has been reached and there is no enough space to write
any meaningful node. Padding nodes facilitate the faster filesystem
scanning.
- Pristine node - a type of data node which contain multiple of
PAGE_SIZE bytes of data in the uncompressed form.
- Summary node, summary -
describes the layout of full vblock. Summary is situated at the end
of each vblock and describes the vblock's layout, e.g. position, type,
length, etc of all the vblock's nodes.
- Valid node - not obsolete node.
- Vblock, virtual block -
JFFS3 may treat several blocks as one vblock of larger size.
Thus, the minimal erasable flash unit from the JFFS3's viewpoint
is vblock which consists of one or more flash blocks.
Next: References
Up: JFFS3 design issues
Previous: Abbreviations
Contents
2005-04-23