summaryrefslogtreecommitdiff
path: root/nuttx/Documentation/NuttxPortingGuide.html
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/Documentation/NuttxPortingGuide.html')
-rw-r--r--nuttx/Documentation/NuttxPortingGuide.html64
1 files changed, 55 insertions, 9 deletions
diff --git a/nuttx/Documentation/NuttxPortingGuide.html b/nuttx/Documentation/NuttxPortingGuide.html
index fe18ecba8..4f54d4cda 100644
--- a/nuttx/Documentation/NuttxPortingGuide.html
+++ b/nuttx/Documentation/NuttxPortingGuide.html
@@ -16,7 +16,7 @@
</b></big>
<p><small>by</small></p>
<p>Gregory Nutt</p>
- <p><small>Last Update: September 8, 2007</small></p>
+ <p><small>Last Update: December 10, 2007</small></p>
</center>
<center><h1>Table of Contents</h1></center>
@@ -88,6 +88,7 @@
<li><a href="#irqdispatch">4.2.4 <code>irq_dispatch()</code></a></li>
</ul>
</ul>
+<li><a href="#NxFileSystem">5.0 NuttX File System</a></li>
<li><a href="#apndxconfigs">Appendix A: NuttX Configuration Settings</a></li>
<hr>
@@ -607,13 +608,8 @@
<h2>2.6 <a name="DirStructFs">fs</a></h2>
<p>
- This directory contains the NuttX filesystem.
- The NuttX filesystem is very simple; it does not involve any block drivers or
- particular filesystem (like FAT or EXT2 etc.).
- The NuttX filesystem simply supports a set a filesystem APIs
- (<code>open()</code>, <code>close()</code>, <code>read()</code>, <code>write</code>, etc.)
- and a registration mechanism that allows devices drivers to a associated with <i>nodes</i>
- in a file-system-like name space.
+ This directory contains the NuttX file system.
+ This file system is described <a href="#NxFileSystem">below</a>.
</p>
<h2>2.7 <a name="DirStructInclude">include</a></h2>
@@ -1144,6 +1140,56 @@ The system can be re-made subsequently by just typing <code>make</code>.
the appropriate, registered handling logic.
</p>
+<h1><a name="NxFileSystem">5.0 NuttX File System</a></h1>
+
+<p><b>Overview</b>.
+ NuttX includes an optional, scalable file system.
+ This file-system may be omitted altogther; NuttX does not depend on the presence
+ of any file system.
+</p>
+
+<p><b>Pseudo Root File System</b>.
+ Or, a simple <i>in-memory</i>, <i>psuedo</i> file system can be enabled.
+ This simple file system can be enabled setting the CONFIG_NFILE_DESCRIPTORS
+ option to a non-zero value (see <a href="#apndxconfigs">Appendix A</a>).
+ This is an <i>in-memory</i> file system because it does not require any
+ storage medium or block driver support.
+ Rather, file system contents are generated on-the-fly as referenced via
+ standard file system operations (open, close, read, write, etc.).
+ In this sense, the file system is <i>psuedo</i> file system (in the
+ same sense that the Linux <code>/proc</code> file system is also
+ referred to as a psuedo file system).
+</p>
+
+<p>
+ Any user supplied data or logic can be accessed via the psuedo-file system.
+ Built in support is provided for character and block drivers in the
+ <code>/dev</code> psuedo file system directory.
+</p>
+
+<p><b>Mounted File Systems</b>
+ The simple in-memory file system can be extended my mounting block
+ devices that provide access to true file systems backed up via some
+ mass storage device.
+ NuttX supports the standard <code>mount()</code> command that allows
+ a block driver to be bound to a mountpoint within the psuedo file system
+ and to a a file system.
+ At present, NuttX supports only the VFAT file system.
+</p>
+
+<p><b>Comparison to Linux</b>
+ From a programming perspective, the NuttX file system appears very similar
+ to a Linux file system.
+ However, there is a fundamental difference:
+ The NuttX root file system is a psuedo file system and true file systems may be
+ mounted in the psuedo file system.
+ In the typical Linux installation by comparison, the Linux root file system
+ is a true file system and psuedo file systems may be mounted in the true,
+ root file system.
+ The approach selected by NuttX is intended to support greater scalability
+ from the very tiny platform to the moderate platform.
+</p>
+
<h1><a name="apndxconfigs">Appendix A: NuttX Configuration Settings</a></h1>
<p>
@@ -1209,7 +1255,7 @@ The system can be re-made subsequently by just typing <code>make</code>.
<code>CONFIG_DEBUG_NET</code>: enable network debug output (disabled by default)
</li>
<li>
- <code>CONFIG_DEBUG_FS</code>: enable filesystem debug output (disabled by default)
+ <code>CONFIG_DEBUG_FS</code>: enable file system debug output (disabled by default)
</li>
<li>
<code>CONFIG_DEBUG_LIB</code>: enable C library debug output (disabled by default)