O:31:"Drupal\Core\Render\HtmlResponse":8:{s:7:"headers";O:50:"Symfony\Component\HttpFoundation\ResponseHeaderBag":5:{s:23:"*computedCacheControl";a:2:{s:7:"max-age";s:3:"300";s:6:"public";b:1;}s:10:"*cookies";a:0:{}s:14:"*headerNames";a:14:{s:12:"content-type";s:12:"Content-Type";s:13:"cache-control";s:13:"Cache-Control";s:4:"date";s:4:"Date";s:22:"x-drupal-dynamic-cache";s:22:"X-Drupal-Dynamic-Cache";s:4:"link";s:4:"Link";s:15:"x-ua-compatible";s:15:"X-UA-Compatible";s:16:"content-language";s:16:"Content-language";s:22:"x-content-type-options";s:22:"X-Content-Type-Options";s:15:"x-frame-options";s:15:"X-Frame-Options";s:7:"expires";s:7:"Expires";s:13:"last-modified";s:13:"Last-Modified";s:4:"etag";s:4:"ETag";s:4:"vary";s:4:"Vary";s:11:"x-generator";s:11:"X-Generator";}s:10:"*headers";a:14:{s:12:"content-type";a:1:{i:0;s:24:"text/html; charset=UTF-8";}s:13:"cache-control";a:1:{i:0;s:19:"max-age=300, public";}s:4:"date";a:1:{i:0;s:29:"Wed, 24 Jan 2018 20:04:40 GMT";}s:22:"x-drupal-dynamic-cache";a:1:{i:0;s:11:"UNCACHEABLE";}s:4:"link";a:3:{i:0;s:108:"</sites/default/files/css/css_Ft-hGawuooABKJanSezg8PXovgOMbB_QLx9CIyXeHsA.css?ozekku>; rel=preload; as=style";i:1;s:108:"</sites/default/files/css/css_6qeLA6GBkZNPHWp9GdQIYovV3tYuKU-ts-HicZ-WeQQ.css?ozekku>; rel=preload; as=style";i:2;s:99:"</sites/default/files/js/js_2l0lF4i9o3aztHULbfajMT_RTqGCEN_lVC8JI48SILw.js>; rel=preload; as=script";}s:15:"x-ua-compatible";a:1:{i:0;s:7:"IE=edge";}s:16:"content-language";a:1:{i:0;s:2:"en";}s:22:"x-content-type-options";a:1:{i:0;s:7:"nosniff";}s:15:"x-frame-options";a:1:{i:0;s:10:"SAMEORIGIN";}s:7:"expires";a:1:{i:0;s:29:"Sun, 19 Nov 1978 05:00:00 GMT";}s:13:"last-modified";a:1:{i:0;s:29:"Wed, 24 Jan 2018 20:04:40 GMT";}s:4:"etag";a:1:{i:0;s:12:""1516824280"";}s:4:"vary";a:1:{i:0;s:6:"Cookie";}s:11:"x-generator";a:1:{i:0;s:33:"Drupal 8 (https://www.drupal.org)";}}s:15:"*cacheControl";a:2:{s:7:"max-age";s:3:"300";s:6:"public";b:1;}}s:10:"*content";s:32594:"<!DOCTYPE html>
<html  lang="en" dir="ltr" prefix="content: http://purl.org/rss/1.0/modules/content/  dc: http://purl.org/dc/terms/  foaf: http://xmlns.com/foaf/0.1/  og: http://ogp.me/ns#  rdfs: http://www.w3.org/2000/01/rdf-schema#  schema: http://schema.org/  sioc: http://rdfs.org/sioc/ns#  sioct: http://rdfs.org/sioc/types#  skos: http://www.w3.org/2004/02/skos/core#  xsd: http://www.w3.org/2001/XMLSchema# ">
  <head>
    <meta charset="utf-8" />
<meta name="title" content="The best bits | Yaffs - A Flash File System for embedded use" />
<meta name="news_keywords" content="Flash File System" />
<meta name="description" content="Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One." />
<meta name="abstract" content="Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One." />
<meta name="keywords" content="flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs" />
<meta name="Generator" content="Drupal 8 (https://www.drupal.org)" />
<meta name="MobileOptimized" content="width" />
<meta name="HandheldFriendly" content="true" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css" media="all" />
<link rel="stylesheet" href="https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css" media="all" />
<link rel="stylesheet" href="https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css" media="all" />
<link rel="stylesheet" href="https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css" media="all" />
<link rel="stylesheet" href="https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css" media="all" />
<link rel="stylesheet" href="https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css" media="all" />
<link rel="stylesheet" href="https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css" media="all" />
<link rel="stylesheet" href="https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css" media="all" />
<link rel="shortcut icon" href="/sites/default/files/yaffs_favicon.png" type="image/png" />

    <title>The best bits | Yaffs - A Flash File System for embedded use</title>
    <link rel="stylesheet" href="/sites/default/files/css/css_Ft-hGawuooABKJanSezg8PXovgOMbB_QLx9CIyXeHsA.css?ozekku" media="all" />
<link rel="stylesheet" href="/sites/default/files/css/css_6qeLA6GBkZNPHWp9GdQIYovV3tYuKU-ts-HicZ-WeQQ.css?ozekku" media="all" />

    
<!--[if lte IE 8]>
<script src="/sites/default/files/js/js_VtafjXmRvoUgAzqzYTA3Wrjkx9wcWhjP0G4ZnnqRamA.js"></script>
<![endif]-->

  </head>
  <body class="fontyourface path-features navbar-is-fixed-top has-glyphicons">
    <a href="#main-content" class="visually-hidden focusable skip-link">
      Skip to main content
    </a>
    <div style="background-color: ; color: " id="environment-indicator">
  
    </div>

              <header class="navbar navbar-default navbar-fixed-top" id="navbar" role="banner">
              <div class="container">
            <div class="navbar-header">
          <div class="region region-navigation">
          <a class="logo navbar-btn pull-left" href="/" title="Home" rel="home">
      <img src="/themes/custom/yaffs/logo.svg" alt="Home" />
    </a>
      
  </div>

                          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
              </div>

                    <div id="navbar-collapse" class="navbar-collapse collapse">
            <div class="region region-navigation-collapsible">
    <nav role="navigation" aria-labelledby="block-mainnavigation-menu" id="block-mainnavigation">
            <h2 class="sr-only" id="block-mainnavigation-menu">Main navigation</h2>

      
              <ul class="menu nav navbar-nav">
                            <li>
        <a href="/" data-drupal-link-system-path="&lt;front&gt;">Home</a>
                  </li>
                        <li>
        <a href="/support" title="Help for Yaffs" data-drupal-link-system-path="node/380">Support</a>
                  </li>
                        <li>
        <a href="/documents" data-drupal-link-system-path="documents">Documents</a>
                  </li>
                        <li>
        <a href="/get-yaffs" data-drupal-link-system-path="node/382">Download</a>
                  </li>
                        <li>
        <a href="/about-us" data-drupal-link-system-path="node/325">About us</a>
                  </li>
                        <li>
        <a href="/contact" data-drupal-link-system-path="node/73">Contact</a>
                  </li>
        </ul>
  


  </nav>
<div class="search-block-form block block-search block-search-form-block" data-drupal-selector="search-block-form" id="block-searchform" role="search">
  
    
      <form action="/search/node" method="get" id="search-block-form" accept-charset="UTF-8">
  <div class="form-item js-form-item form-type-search js-form-type-search form-item-keys js-form-item-keys form-no-label form-group">
      <label for="edit-keys" class="control-label sr-only">Search</label>
  
  
  <div class="input-group"><input title="Enter the terms you wish to search for." data-drupal-selector="edit-keys" class="form-search form-control" placeholder="Search" type="search" id="edit-keys" name="keys" value="" size="15" maxlength="128" data-toggle="tooltip" /><span class="input-group-btn"><button type="submit" value="Search" class="button js-form-submit form-submit btn-primary btn icon-only" name=""><span class="sr-only">Search</span><span class="icon glyphicon glyphicon-search" aria-hidden="true"></span></button></span></div>

  
  
  </div>
<div class="form-actions form-group js-form-wrapper form-wrapper" data-drupal-selector="edit-actions" id="edit-actions"></div>

</form>

  </div>

  </div>

        </div>
                    </div>
          </header>
  
  <div role="main" class="main-container container js-quickedit-main-content">
    <div class="row">

            
            
                  <section class="col-sm-12">

                                      <div class="highlighted">  <div class="region region-highlighted">
      


  </div>
</div>
                  
                
                
                                      
                  
                          <a id="main-content"></a>
            <div class="region region-content">
        <h1 class="page-header">The best bits</h1>

  <div class="views-element-container form-group"><div class="view view-highlighted-yaffs-features view-id-highlighted_yaffs_features view-display-id-page_1 js-view-dom-id-e3f4979459e2968b937de0087679b8fdfcfb02cfb5806497096d45cc485a9a42">
  
    
      
      <div class="view-content">
      <div id="views-bootstrap-highlighted-yaffs-features-page-1"  class="grid views-view-grid horizontal">
            <div class="row">
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-thumbs-up"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="384">Royalty Free... </h3></span></div><div class="views-field views-field-body"><div class="field-content"><p><strong>100% ROYALTY FREE</strong></p>

<p>Of course there's no royalty when you use Yaffs under the GPL; it's the GPL!</p>

<p>Our commercial licences are paid for once at the time of buying the Licence, and so they are also royalty free. No accounting and no need to worry about increasing costs as you make or sell more units.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-shield"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="385">A robust flash file system...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>As part of our regular testing, we run power-fail tests. Whether it's during a read or a write, Yaffs is designed to preserve your existing data during a device power failure. And because Yaffs is open source, you can download the tests and run them yourself in the most severe conditions you expect the product to encounter. See:- http://www.yaffs.net/documents/yaffs-robustness-and-testing</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-heart"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="388">Yaffs is Open Source...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>Yaffs is downloadable with a GNU General Public Licence v.2, as at  http://www.gnu.org/licenses/gpl-2.0.html   You get the source code, with all the benefits that brings. And of course, if you buy a commercial licence, you get the source code too, but without the encumberance of your responsibilities under the GNU GPL</p>

<p>Because it's Open Source, you can always see what the code is doing and trace through; and having the code means you'll never be in a situation where you are critically dependent on us, either from a technical or a business perspective.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
              </div>
          <div class="row">
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-mobile-phone"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="389">Tried and tested in millions of devices...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>Yaffs is the leading Flash file system, running in millions of devices. It's been used on Linux computers, in cameras, mobile phones, hard drives, and on many custom boards. People and companies trust it to keep their data safe. Read more about <a href="/documents/yaffs-robustness-and-testing">how we test Yaffs in our Robustness and Testing white paper</a>.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-space-shuttle"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="407">Booting is fast...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>Being quick to boot was one of the fundamental requirements in Yaffs' design. Boot-time scanning to build the file structure lists should require just one pass reading NAND memory.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-users"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="408">An active community...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>You can learn from the experience of people and companies who are working with Yaffs. Thousands of developers have used Yaffs successfully, and commercially-licensed Yaffs has many customers that use it repeatedly. Have a look at the mailing list - it's a great place to start if you have some questions.<br /><a href="http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs">http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs</a></p>

<p>The searchable archive of postings is at <a href="http://lists.aleph1.co.uk/lurker/list/yaffs.html">http://lists.aleph1.co.uk/lurker/list/yaffs.html   </a>Or search online to see the variety of work done with Yaffs as its basis - from research papers through to skunkworks projects for testing particular concepts.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
              </div>
          <div class="row">
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-cogs"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="414">Suitable for open and closed source projects...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>If you want to use Yaffs on an Open Source project, then go ahead and <a href="/downloads">download</a> the GNU General Public Licence v.2 now. You can get it straight away from the link on the right of the page.</p>

<p>Yaffs is also available under a Commercial Licence for projects that don't want to disclose their source code.  This Licence does not have the obligations of GPL, but is perpetual, world-wide, non-exclusive and carries no continuing royalty.</p>

<p>You can use the Open Source code to investigate and evaluate Yaffs, then before shipping your product to anyone outside of your organisation you buy a licence from Aleph One which does not have the GNU GPL obligation to release your Source Code.  Contact  sales@aleph1.co.uk  for more information or have a look at our <a href="/downloads">licensing information</a>.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-credit-card"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="415">For closed source projects - try before you buy...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>When shopping for a software component, it's always useful to be able to try it out before buying.</p>

<p>For your proprietary projects, the GPL version of Yaffs lets you do just that - download it, examine the code and test it out. Check out our documentation and videos.</p>

<p>It's perfectly acceptable and safe to use the GNU GPL code inside your company, providing you don't ship a binary to anyone beyond it. That's when code disclosure and licensing provisions of the GNU GPL kick in. So before you do that, you'll want to talk to us about acquiring a paid Licence.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-bullseye"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="416">Yaffs is a safe choice...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>Having started in 2002 Yaffs embodies more than ten years of experience with Flash memory and its specialised needs, coupled with continued growth in the number of people and companies using Yaffs.</p>

<p>Since its inception numerous features and refinements have been added. The code continues to evolve, growing in value to users whilst retaining backward compatibility. The community of users continues to grow as more and more people and companies opt to use Yaffs, providing a pool of knowledge which is accessible to new users. </p>

<p>The availability of the GNU General Public Licence version means that there's always an exit route for open source projects, and since it's open-source, existing commercial projects will at the very least always have the source code and the licence to continue to use it, and likely much more. Plus commercial projects benefit from the open source experience in Yaffs - both with respect to developers and knowledge. </p>

<p>Yaffs is a safe choice for any project needing a Flash file system: it has well over ten years of history, proven sustainability, a continuously improving codebase, a growing user base, and exit routes, since it will continue to be available regardless of Yaffs.net.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
              </div>
          <div class="row">
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-map-signs"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="417">Yaffs is fully supported...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>Yaffs support is available through the Yaffs community - primarily via the mail list - with help coming from our key developers as well as other people who use Yaffs. For those times when you don't feel comfortable asking a question in a public forum, perhaps because the project is sensitive, we will normally answer a few questions off-list before we offer you the opportunity of consultancy and direct access to our developers. And of course we are always willing to discuss other forms of support for customers who buy licences.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-lock"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="418">Data is safe with Yaffs...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>Yaffs provides bad block handling and ECC algorithms to handle deficiencies in NAND flash.</p>

<p>It is a log-structured file system which makes it very robust to corruptions caused by power failures.</p>

<p>We spend about 60% of development time on testing Yaffs, and our test harness is available for download so you can check the testing and perform some yourself.</p>

<p>We've performed hundreds of thousands of tests to make sure that Yaffs is as safe as we can make it, even in the even of a power failure during a firmware update.</p>

<p>You can find full details of the Yaffs testing regime in our paper <a href="http://www.yaffs.net/documents/yaffs-robustness-and-testing">http://www.yaffs.net/documents/yaffs-robustness-and-testing</a>  including all the details on the power-fail stress tests, the Yaffs Direct API tests for commercial RTOSs, Linux testing, and fuzz testing where we deliberately corrupt Yaffs file systems to check that Yaffs can still mount.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-stethoscope"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="426">High and low level interfaces...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>We provide a high level interface with the GPL version of Yaffs, so it's easy to use with Linux and other OS's that support POSIX.  This support includes directories, symbolic and hard links, through standard file system interface calls.</p>

<p>But when you want to integrate Yaffs directly into your OS or your code, you'll most likely want to make use of the Yaffs Direct Interface or other low-level interfaces:</p>

<ul><li>Application Interface: This is the interface that the application code uses to access the YAFFS file system.</li>
	<li>RTOS Integration Interface: These are the functions that much be provided for YAFFS to access the RTOS system resources.</li>
	<li>NAND Configuration and Access Interface: These are the functions that must be provided for YAFFS to access the NAND flash.</li>
</ul><p>Have a look at the guides in the Documents section, to find out more about <a href="/documents">integrating Yaffs</a>.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
              </div>
          <div class="row">
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-truck"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="427">Cross-platform and portable...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>Yaffs is easy to port. It is written in C, with particular attention paid to making it portable. It's CPU independent, high/low bit independent (endian neutral) and doesn't rely on any particular operating system.  Look at the schematic in the <a href="/yaffs-overview">Yaffs Overview</a> to see the relationship of the different elements.</p>

<p>It's already been used under Linux, eCos, VxWorks, Win CE and more. </p>

<p>Yaffs has been used successfully with many different 32-bit and 64-bit CPUs including MIPS, 68000, many from ARM, ColdFire, PowerPC and x86 variants. Yaffs works with 16-bit CPUs too, but this is less tested and might need some tuning, depending on compiler options. </p>

<p>We've found it easy to move to different processor architectures because it was designed to do this; as long as your processor is greater than 8-bit, Yaffs should run without needing much work.</p>

<p>Read  <a href="http://www.yaffs.net/yaffs-porting-guide">http://www.yaffs.net/yaffs-porting-guide</a> for more detail.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-microchip"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="428">A file system designed for Flash memory...</h3></span></div><div class="views-field views-field-body"><div class="field-content"><p>Yaffs was designed from the ground up for Flash memory. It is best with NAND Flash but can be used with NOR too. It has mechanisms for wear-levelling, and special attention has been paid to the safety of the system even under power-failure. It is works well with MLC Nand, as well as SLC; it is compatible with a wide range of Flash, including Toshiba/Sandisk MLC parts.  See also the document   Considerations in Using a Flash File System  for a discussion of the importance of reliability.</p></div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-plug"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="433">Predictable and performance oriented</h3></span></div><div class="views-field views-field-body"><div class="field-content">
<p>Yaffs has highly optimised and predictable garbage collection strategies. This makes it high performance and very deterministic when compared with similar file systems.</p>
</div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
              </div>
          <div class="row">
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-sort-amount-asc"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="434">Memory efficiency</h3></span></div><div class="views-field views-field-body"><div class="field-content">
<p>Yaffs has a lower memory footprint than most other log-structured Flash file systems.&nbsp; Because it is log-structured, RAM is required to build up runtime data structures for acceptable performance. As a rule of thumb, Yaffs uses approximately 2 bytes per chunk of NAND flash, where a chunk is typically one page of NAND. For NAND with 512byte pages, a budget of approximately 4kbytes of RAM per 1Mbyte of NAND is usually sensible. And for 2kbyte page devices a budget of approximately 1kbyte per 1Mbyte of NAND usually suffices.</p>
<p>You can find out details of Yaffs memory use in the document&nbsp; <a href="http://www.yaffs.net/documents/how-yaffs-works">http://www.yaffs.net/documents/how-yaffs-works</a></p>
</div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-check-square"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="435">Highly configurable - matches your Flash memory</h3></span></div><div class="views-field views-field-body"><div class="field-content">
<p>Yaffs is adaptable to suit the Flash geometries, caching options, Error Correction strategies and other features that you need.</p>
<p>Details of the configuration options can be found in the Linux menuconfig compile options tool, and in&nbsp; <a href="http://www.yaffs.net/yaffs-tuning-and-configuration">http://www.yaffs.net/yaffs-tuning-and-configuration</a></p>
</div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
                  <div class="col col-xs-12 col-sm-12 col-md-4 col-lg-4 ">
            <div class="views-field views-field-field-icon-text"><div class="field-content"><i class="fa fa-puzzle-piece"></i></div></div><div class="views-field views-field-title"><span class="field-content"><h3 id="436">Simple to integrate</h3></span></div><div class="views-field views-field-body"><div class="field-content">
<p>Yaffs Direct Interface is simple to integrate in a system – only a few interface functions are required. Yaffs also includes a POSIX interface. It has been used with Android, VXWorks, Windows, Linux, bare metal, and more; on ARM (32 and 64), x86 (32 and 64), Atmel, and more. </p>
<p>You can find details in the Yaffs Direct guide.</p>
</div></div><div class="views-field views-field-edit-node"><span class="field-content"></span></div>
          </div>
              </div>
      </div>

    </div>
  
          </div>
</div>


  </div>

              </section>

                </div>
  </div>

      <footer class="footer container" role="contentinfo">
        <div class="primary_footer row">
            <div class="col-sm-3">
                  <div class="region region-footer-col1">
    <section id="block-yaffs-block-6" class="block block-block-content block-block-content6c2d4b45-4dba-4b2d-8b9f-76701bf27533 clearfix">
  
    

      
            <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">
<ul class="fa-ul">
<li><i class="fa-li fa fa-phone"></i>+44 (0)1223 811679</li>
<li><i class="fa-li fa fa-envelope"></i><a href="denied:mailto:info@aleph1.co.uk?Subject=Website contact" target="_top">info@aleph1.co.uk</a></li>
</ul>
</div>
      
  </section>


  </div>

            </div>
            <div class="col-sm-3">
                
            </div>
            <div class="col-sm-3">
                
            </div>
            <div class="col-sm-3">
                  <div class="region region-footer-col4">
    <section id="block-footerlegal" class="block block-block-content block-block-content78ab593d-35b6-4772-a141-30216e7fcbb2 clearfix">
  
    

      
            <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">
<p class="text-align-right">&nbsp;<a href="/legal">Legal &amp; Cookies</a></p>
</div>
      
  </section>

<section id="block-cookieinfo" class="block block-block-content block-block-content4848c58d-90df-4819-81d8-0f9568eeeaac clearfix">
  
    

      
            <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item">
<p class="text-align-justify"><br />
We use <a href="/legal">cookies on this site</a>. By using it, you are giving us consent to set cookies.</p>
</div>
      
  </section>


  </div>

            </div>
        </div>
        <div class = "secondary_footer row">
            <div class="col-sm-12">
                <div class="region region-footer">
    <nav role="navigation" aria-labelledby="block-yaffs-account-menu-menu" id="block-yaffs-account-menu">
            <h2 class="sr-only" id="block-yaffs-account-menu-menu">User account menu</h2>

      
              <ul class="menu nav navbar-nav navbar-right">
                            <li>
        <a href="/user/login" data-drupal-link-system-path="user/login">Log in</a>
                  </li>
        </ul>
  


  </nav>

  </div>

            </div>
        </div>
    </footer>
  
    
    <script type="application/json" data-drupal-selector="drupal-settings-json">{"path":{"baseUrl":"\/","scriptPath":null,"pathPrefix":"","currentPath":"features","currentPathIsAdmin":false,"isFront":false,"currentLanguage":"en"},"pluralDelimiter":"\u0003","bootstrap":{"forms_has_error_value_toggle":1,"modal_animation":1,"modal_backdrop":"true","modal_keyboard":1,"modal_show":1,"modal_size":"","popover_enabled":1,"popover_animation":1,"popover_container":"body","popover_content":"","popover_delay":"0","popover_html":0,"popover_placement":"right","popover_selector":"","popover_title":"","popover_trigger":"click","popover_trigger_autoclose":1,"tooltip_enabled":1,"tooltip_animation":1,"tooltip_container":"body","tooltip_delay":"0","tooltip_html":0,"tooltip_placement":"auto left","tooltip_selector":"","tooltip_trigger":"hover"},"ajaxTrustedUrl":{"\/search\/node":true},"user":{"uid":0,"permissionsHash":"aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01"}}</script>
<script src="/sites/default/files/js/js_2l0lF4i9o3aztHULbfajMT_RTqGCEN_lVC8JI48SILw.js"></script>

  </body>
</html>
";s:10:"*version";s:3:"1.0";s:13:"*statusCode";i:200;s:13:"*statusText";s:2:"OK";s:10:"*charset";N;s:23:"*cacheabilityMetadata";O:35:"Drupal\Core\Cache\CacheableMetadata":3:{s:16:"*cacheContexts";a:17:{i:0;s:26:"languages:language_content";i:1;s:28:"languages:language_interface";i:2;s:5:"route";i:3;s:32:"route.menu_active_trails:account";i:4;s:29:"route.menu_active_trails:main";i:5;s:30:"route.menu_active_trails:tools";i:6;s:5:"theme";i:7;s:3:"url";i:8;s:8:"url.path";i:9;s:17:"url.path.is_front";i:10;s:15:"url.path.parent";i:11;s:30:"url.query_args:_wrapper_format";i:12;s:4:"user";i:13;s:21:"user.node_grants:view";i:14;s:16:"user.permissions";i:15;s:10:"user.roles";i:16;s:24:"user.roles:authenticated";}s:12:"*cacheTags";a:70:{i:0;s:16:"block_content:18";i:1;s:16:"block_content:23";i:2;s:15:"block_content:7";i:3;s:18:"block_content_view";i:4;s:10:"block_view";i:5;s:32:"config:block.block.choosingyaffs";i:6;s:29:"config:block.block.cookieinfo";i:7;s:32:"config:block.block.downloadyaffs";i:8;s:30:"config:block.block.footerlegal";i:9;s:39:"config:block.block.frontimagehighlight2";i:10;s:32:"config:block.block.frontpagehero";i:11;s:39:"config:block.block.frontpageprimeryaffs";i:12;s:33:"config:block.block.mainnavigation";i:13;s:35:"config:block.block.mainnavigation_2";i:14;s:29:"config:block.block.searchform";i:15;s:31:"config:block.block.sitebranding";i:16;s:66:"config:block.block.views_block__highlighted_yaffs_features_block_1";i:17;s:66:"config:block.block.views_block__yaffs_admin_recent_content_block_1";i:18;s:66:"config:block.block.views_block__yaffs_documents_highlights_block_1";i:19;s:56:"config:block.block.views_block__yaffs_user_logos_block_1";i:20;s:37:"config:block.block.yaffs_account_menu";i:21;s:33:"config:block.block.yaffs_block_10";i:22;s:32:"config:block.block.yaffs_block_5";i:23;s:32:"config:block.block.yaffs_block_6";i:24;s:32:"config:block.block.yaffs_block_8";i:25;s:32:"config:block.block.yaffs_block_9";i:26;s:36:"config:block.block.yaffs_breadcrumbs";i:27;s:32:"config:block.block.yaffs_content";i:28;s:29:"config:block.block.yaffs_help";i:29;s:36:"config:block.block.yaffs_local_tasks";i:30;s:33:"config:block.block.yaffs_messages";i:31;s:35:"config:block.block.yaffs_page_title";i:32;s:32:"config:block.block.yaffs_user_21";i:33;s:31:"config:block.block.yaffsinspace";i:34;s:17:"config:block_list";i:35;s:24:"config:color.theme.yaffs";i:36;s:30:"config:field.storage.node.body";i:37;s:41:"config:field.storage.node.field_icon_text";i:38;s:31:"config:filter.format.basic_html";i:39;s:30:"config:filter.format.full_html";i:40;s:29:"config:filter.format.raw_html";i:41;s:22:"config:search.settings";i:42;s:26:"config:system.menu.account";i:43;s:23:"config:system.menu.main";i:44;s:24:"config:system.menu.tools";i:45;s:18:"config:system.site";i:46;s:26:"config:user.role.anonymous";i:47;s:44:"config:views.view.highlighted_yaffs_features";i:48;s:13:"http_response";i:49;s:8:"node:384";i:50;s:8:"node:385";i:51;s:8:"node:388";i:52;s:8:"node:389";i:53;s:8:"node:407";i:54;s:8:"node:408";i:55;s:8:"node:414";i:56;s:8:"node:415";i:57;s:8:"node:416";i:58;s:8:"node:417";i:59;s:8:"node:418";i:60;s:8:"node:426";i:61;s:8:"node:427";i:62;s:8:"node:428";i:63;s:8:"node:433";i:64;s:8:"node:434";i:65;s:8:"node:435";i:66;s:8:"node:436";i:67;s:9:"node_list";i:68;s:8:"rendered";i:69;s:6:"user:0";}s:14:"*cacheMaxAge";i:-1;}s:14:"*attachments";a:4:{s:7:"library";a:10:{i:0;s:14:"core/html5shiv";i:1;s:11:"system/base";i:2;s:15:"bootstrap/theme";i:3;s:20:"yaffs/global-styling";i:4;s:23:"yaffs/bootstrap-scripts";i:5;s:19:"yaffs/yaffs-helpers";i:6;s:17:"bootstrap/popover";i:7;s:17:"bootstrap/tooltip";i:8;s:18:"views/views.module";i:10;s:50:"environment_indicator/drupal.environment_indicator";}s:9:"html_head";a:19:{i:0;a:2:{i:0;a:2:{s:4:"#tag";s:4:"meta";s:11:"#attributes";a:2:{s:4:"name";s:5:"title";s:7:"content";s:60:"The best bits | Yaffs - A Flash File System for embedded use";}}i:1;s:5:"title";}i:1;a:2:{i:0;a:2:{s:4:"#tag";s:4:"meta";s:11:"#attributes";a:2:{s:4:"name";s:13:"news_keywords";s:7:"content";s:17:"Flash File System";}}i:1;s:13:"news_keywords";}i:2;a:2:{i:0;a:2:{s:4:"#tag";s:4:"meta";s:11:"#attributes";a:2:{s:4:"name";s:11:"description";s:7:"content";s:352:"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.";}}i:1;s:11:"description";}i:3;a:2:{i:0;a:2:{s:4:"#tag";s:4:"meta";s:11:"#attributes";a:2:{s:4:"name";s:8:"abstract";s:7:"content";s:352:"Yaffs (Yet Another Flash File System) is an open-source file system specifically designed to be fast, robust and suitable for embedded use with NAND and NOR Flash. It is widely used with Linux, RTOSs, or no OS at all, in consumer devices and critical infrastructure. It is available under GNU Public License, GPL, or on commercial terms from Aleph One.";}}i:1;s:8:"abstract";}i:4;a:2:{i:0;a:2:{s:4:"#tag";s:4:"meta";s:11:"#attributes";a:2:{s:4:"name";s:8:"keywords";s:7:"content";s:82:"flash File System, flash, file System, flash storage, NAND flash, NOR flash, Yaffs";}}i:1;s:8:"keywords";}i:5;a:2:{i:0;a:3:{s:4:"#tag";s:4:"meta";s:11:"#attributes";a:1:{s:7:"charset";s:5:"utf-8";}s:7:"#weight";i:-1000;}i:1;s:24:"system_meta_content_type";}i:6;a:2:{i:0;a:3:{s:5:"#type";s:8:"html_tag";s:4:"#tag";s:4:"meta";s:11:"#attributes";a:2:{s:4:"name";s:9:"Generator";s:7:"content";s:33:"Drupal 8 (https://www.drupal.org)";}}i:1;s:21:"system_meta_generator";}i:7;a:2:{i:0;a:2:{s:4:"#tag";s:4:"meta";s:11:"#attributes";a:2:{s:4:"name";s:15:"MobileOptimized";s:7:"content";s:5:"width";}}i:1;s:15:"MobileOptimized";}i:8;a:2:{i:0;a:2:{s:4:"#tag";s:4:"meta";s:11:"#attributes";a:2:{s:4:"name";s:16:"HandheldFriendly";s:7:"content";s:4:"true";}}i:1;s:16:"HandheldFriendly";}i:9;a:2:{i:0;a:2:{s:4:"#tag";s:4:"meta";s:11:"#attributes";a:2:{s:4:"name";s:8:"viewport";s:7:"content";s:37:"width=device-width, initial-scale=1.0";}}i:1;s:8:"viewport";}i:10;a:2:{i:0;a:3:{s:5:"#type";s:8:"html_tag";s:4:"#tag";s:4:"link";s:11:"#attributes";a:3:{s:3:"rel";s:10:"stylesheet";s:4:"href";s:125:"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansRegular-fontfacekit/fontyourface-stylesheet.css";s:5:"media";s:3:"all";}}i:1;s:21:"fontsquirrel-api-1151";}i:11;a:2:{i:0;a:3:{s:5:"#type";s:8:"html_tag";s:4:"#tag";s:4:"link";s:11:"#attributes";a:3:{s:3:"rel";s:10:"stylesheet";s:4:"href";s:124:"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansItalic-fontfacekit/fontyourface-stylesheet.css";s:5:"media";s:3:"all";}}i:1;s:21:"fontsquirrel-api-1152";}i:12;a:2:{i:0;a:3:{s:5:"#type";s:8:"html_tag";s:4:"#tag";s:4:"link";s:11:"#attributes";a:3:{s:3:"rel";s:10:"stylesheet";s:4:"href";s:122:"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBold-fontfacekit/fontyourface-stylesheet.css";s:5:"media";s:3:"all";}}i:1;s:21:"fontsquirrel-api-1153";}i:13;a:2:{i:0;a:3:{s:5:"#type";s:8:"html_tag";s:4:"#tag";s:4:"link";s:11:"#attributes";a:3:{s:3:"rel";s:10:"stylesheet";s:4:"href";s:123:"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBold-fontfacekit/fontyourface-stylesheet.css";s:5:"media";s:3:"all";}}i:1;s:21:"fontsquirrel-api-1149";}i:14;a:2:{i:0;a:3:{s:5:"#type";s:8:"html_tag";s:4:"#tag";s:4:"link";s:11:"#attributes";a:3:{s:3:"rel";s:10:"stylesheet";s:4:"href";s:129:"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifBoldItalic-fontfacekit/fontyourface-stylesheet.css";s:5:"media";s:3:"all";}}i:1;s:21:"fontsquirrel-api-1150";}i:15;a:2:{i:0;a:3:{s:5:"#type";s:8:"html_tag";s:4:"#tag";s:4:"link";s:11:"#attributes";a:3:{s:3:"rel";s:10:"stylesheet";s:4:"href";s:125:"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifItalic-fontfacekit/fontyourface-stylesheet.css";s:5:"media";s:3:"all";}}i:1;s:21:"fontsquirrel-api-1148";}i:16;a:2:{i:0;a:3:{s:5:"#type";s:8:"html_tag";s:4:"#tag";s:4:"link";s:11:"#attributes";a:3:{s:3:"rel";s:10:"stylesheet";s:4:"href";s:126:"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSerifRegular-fontfacekit/fontyourface-stylesheet.css";s:5:"media";s:3:"all";}}i:1;s:21:"fontsquirrel-api-1147";}i:17;a:2:{i:0;a:3:{s:5:"#type";s:8:"html_tag";s:4:"#tag";s:4:"link";s:11:"#attributes";a:3:{s:3:"rel";s:10:"stylesheet";s:4:"href";s:128:"https://yaffs.net/sites/default/files/fontyourface/fontsquirrel/LiberationSansBoldItalic-fontfacekit/fontyourface-stylesheet.css";s:5:"media";s:3:"all";}}i:1;s:21:"fontsquirrel-api-1154";}i:18;a:2:{i:0;a:2:{s:4:"#tag";s:4:"link";s:11:"#attributes";a:3:{s:3:"rel";s:13:"shortcut icon";s:4:"href";s:38:"/sites/default/files/yaffs_favicon.png";s:4:"type";s:9:"image/png";}}i:1;s:67:"html_head_link:shortcut icon:/sites/default/files/yaffs_favicon.png";}}s:12:"placeholders";a:0:{}s:14:"drupalSettings";a:5:{s:4:"path";a:7:{s:7:"baseUrl";s:1:"/";s:10:"scriptPath";N;s:10:"pathPrefix";s:0:"";s:11:"currentPath";s:8:"features";s:18:"currentPathIsAdmin";b:0;s:7:"isFront";b:0;s:15:"currentLanguage";s:2:"en";}s:15:"pluralDelimiter";s:1:"";s:9:"bootstrap";a:25:{s:28:"forms_has_error_value_toggle";i:1;s:15:"modal_animation";i:1;s:14:"modal_backdrop";s:4:"true";s:14:"modal_keyboard";i:1;s:10:"modal_show";i:1;s:10:"modal_size";s:0:"";s:15:"popover_enabled";i:1;s:17:"popover_animation";i:1;s:17:"popover_container";s:4:"body";s:15:"popover_content";s:0:"";s:13:"popover_delay";s:1:"0";s:12:"popover_html";i:0;s:17:"popover_placement";s:5:"right";s:16:"popover_selector";s:0:"";s:13:"popover_title";s:0:"";s:15:"popover_trigger";s:5:"click";s:25:"popover_trigger_autoclose";i:1;s:15:"tooltip_enabled";i:1;s:17:"tooltip_animation";i:1;s:17:"tooltip_container";s:4:"body";s:13:"tooltip_delay";s:1:"0";s:12:"tooltip_html";i:0;s:17:"tooltip_placement";s:9:"auto left";s:16:"tooltip_selector";s:0:"";s:15:"tooltip_trigger";s:5:"hover";}s:14:"ajaxTrustedUrl";a:1:{s:12:"/search/node";b:1;}s:4:"user";a:2:{s:3:"uid";i:0;s:15:"permissionsHash";s:64:"aa7fc4c8fb40c7a8665ccd12fea07926dff0f59b9ee3346bc513c6399bee5b01";}}}}