mtd/Documentation/jffs3 JFFS3design.tex,1.12,1.13

Artem Bityuckiy dedekind at infradead.org
Thu Aug 11 07:34:29 EDT 2005


Update of /home/cvs/mtd/Documentation/jffs3
In directory phoenix.infradead.org:/tmp/cvs-serv20788

Modified Files:
	JFFS3design.tex 
Log Message:
Finish unexplained entries in the "definitions" section.



Index: JFFS3design.tex
===================================================================
RCS file: /home/cvs/mtd/Documentation/jffs3/JFFS3design.tex,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- JFFS3design.tex	11 Aug 2005 10:52:11 -0000	1.12
+++ JFFS3design.tex	11 Aug 2005 11:34:25 -0000	1.13
@@ -257,6 +257,8 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{Tree design} \label{ref_SectionTree}
 This section contains the design of the $B^+$-tree of the JFFS3 file system.
+Many things here were borrowed from the Reiser4 file system
+[\ref{ref_Reiser4}].
 
 % BASICS
 \subsection{Basics}
@@ -739,7 +741,8 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{Definitions}\label{ref_SectDefinitions}
 \begin{enumerate}
-\item \textbf{ACL} --
+\item \textbf{ACL} -- a modern mechanism to control accesses to files, see
+[\ref{ref_ACL}] for more details.
 
 \item \textbf{Anchor erasable blocks, anchor area}
 -- two \emph{good} erasable blocks at the beginning of the JFFS3 partition
@@ -751,7 +754,9 @@
 \item \textbf{Branch node} -- any node that is not leaf, not twig and not root
 is called branch node.
 
-\item \textbf{Directory entry} -- 
+\item \textbf{Directory entry} -- basically associates a
+name with an inode number. Directories may be considered as a list of directory
+entries.
 
 \item \textbf{Erasable block, eraseblock} -- the minimal erasable unit of the
 flash chip.
@@ -772,16 +777,23 @@
 non-leaf node is a formatted node and only leaf nodes don't have to be
 formatted nodes. Formatted nodes take one sector.
 
-\item \textbf{Garbage Collector, GC} --
-
-\item \textbf{Journal} -- 
-
-\item \textbf{Key} --
+\item \textbf{Garbage Collector, GC} -- a part of any Flash File System which
+is responsible for recycling dirty space and producing free eraseblocks. Glance
+at [\ref{ref_JFFSdwmw2}] for general explanation of function of GC.
+
+\item \textbf{Journal} -- contains all the recent JFFS3 changes. Its purpose is
+to accumulate a bunch of JFFS3 file system changes and then commit these
+changes at once (the committing may require tree re-balancing and other changes). The
+only purpose of the journal is optimization (it will have more
+functions if we ever decide to add transactions support to JFFS3). 
 
 \item \textbf{Leaf node} -- any node from the leaf level of the tree (level 0).
 Leaf nodes contain only data and do not further refer other nodes.
 
-\item \textbf{Map} --
+\item \textbf{Map} -- the map contains information about all flash sectors
+(dirty/free/used) and eraseblocks (erase count, good/bad). We do not store the
+map in the tree because it is changes very often. Instead, the map is stored in
+a distinct dedicated $B^+$-tree.
 
 \item \textbf{Node} -- the pile of the tree. The tree consists of nodes. The
 root of the tree is the \textbf{root node}, the leafs of the tree are
@@ -800,7 +812,9 @@
 partition where the per-file system static data is stored. JFFS3 may only read
 it and it is created by external formatting tools.
 
-\item \textbf{Stat-data} --
+\item \textbf{Stat-data} -- we keep file's (directory's, etc) data and
+metadata separately. Stat-data contains file's attributes, access permissions,
+etc. Stat-data objects are stored in the tree and have their own key type.
 
 \item \textbf{Superblock, SB} -- special structure which describes the whole
 JFFS3 file system. The dynamic part of the superblock may reside
@@ -823,7 +837,8 @@
 
 \item \textbf{Used sector, used block} -- block or sector which contains valid data.
 
-\item \textbf{Xattr} -- 
+\item \textbf{xattr} -- extended attributes, associate name/value pairs with
+files and directories, see attr(5) Linux manual pages for more information.
 \end{enumerate}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -895,5 +910,8 @@
 Reiser4 File System, \url{http://www.namesys.com/}
 \end{enumerate}
 
+\item \raggedright \label{ref_ACL}
+\url{http://www.suse.de/~agruen/acl/linux-acls/}
+
 \end{document}
 





More information about the linux-mtd-cvs mailing list