Archive for the ‘General Discussion’ Category

What’s Different in FullFAT 1.1.0

Saturday, February 20th, 2010

FullFAT 1.1.0 is coming very soon. There have been some huge changes since the 1.0.x series. I’ve tried to ensure that all API’s remain the same, however some have changed their behaviour slightly, to ensure that FullFAT works more consistently. Here is a list of the changes so far:

  • Correct Error Checking
  • All Errors flow right back to the API’s, this means that they must be checked for values < 0.
  • Huge Performance Gains on Directory traversal. (1000x improvement on recursive operations). (40x improvement on dir listing).
  • FF_FindFirst() and FF_FindNext() now accept wildCards. (This beviour can be disabled by commenting FF_FINDAPI_ALLOW_WILDCARDS in ff_config.h out).
    Behaviour of FF_FindFirst() wildCards is explained in the documentation. The comments above FF_FindFirst() in ff_dir.c.
  • UNICODE Support. If FF_UNICODE_SUPPORT is defined in ff_config.h, and LFNs are enabled, then all API’s become UTF-16 accepting.
  • New Demo’s, consistent for Windows and Linux. All examples now use only the public API’s, and are much simpler.
  • FullFAT 1.1.x series must have at least 2 sectors of memory. (For 512byte Blocksize, it requires 1K for buffers).
    This requirement is a part of the directory traversal improvements.
    FullFAT 2.0.0 series will remove this requirement.

There may be some other differences not noted here, however they will appear in documentation shortly.

Expect an official release in approximately 1 or 2 weeks time. (Grab from SVN to test).

James

FullFAT 1.1.0 Coming Soon!

Tuesday, February 2nd, 2010

The roadmap for FullFAT has changed quite dramatically over the last 24 hours. I’ve been performance profiling all aspects of FullFAT, particularly with respect to directory traversal, and file opening. So far I’ve been able to make gains of more than a 1000x improvement.

This performance optimisation is going to continue of the next few days.

Because of this huge, and much needed, improvement I’ve decided to make prepare for a 1.1.0 release. This will be 100% API compatible with the 1.0.x series. This now means that the FullFAT re-write which was going to be released under the 1.1.x series, will now be known as the FullFAT 2.x.x series.

New features for 1.1.x:

  • Massive Performance Improvements.
  • Guid Partition Table (GPT) support.
  • Working Hash table for near instant shortname lookup.
  • Many bug-fixes, and stability improvements.

What will the 2.x.x series mean?

  • New, but semantically similar API’s (API compatible with E-FS).
  • Programatically Isolated Architecture.
  • Fully encapsulated modules.
  • Strictly defined module interfaces. (No pointers between modules).
  • Even better directory & file handling than 1.1.x series.
  • Much smaller, and efficient I/O sub-system.
  • New driver model.
  • Ability to deal with Storage Media removal without an error.
  • Proper Error checking and reporting. (Allowing problems to be identified with precision).
  • Smaller memory footprint.
  • Associative Caching.
  • Better I/O performance.
  • More modular.
  • Better handling of Short Name conversion.
  • Legal LFN support.
  • Written to a much stricter coding standard.
  • In-built handling of Wild-Card’s for FindFirst(), and FindNext() API’s.
    Making directory operations involving the API more efficient.

It’s a lot of work to do, however many of these features are transferable from my E-FS project, allowing both projects to benefit from each other. FullFAT 2.0.0 is estimated for release by the end of July 2010, and E-FS around September 2010.

FullFAT 1.0.5 Released

Friday, January 22nd, 2010
* Multiple Fixes from Hein Tibosch.
* Fully Working Linux Demo.
* FF_INLINE_MEMORY_FUNCTION (easily inline memory independence functions).
* Accurate Free-space reporting.
* Many bug fixes from other partners.

Announcing the release of FullFAT 1.0.5

This is an interim release, which includes many fixes and enhancements. Especially notable are:

  • Multiple Fixes from Hein Tibosch.
  • Fully Working Linux Demo.
  • FF_INLINE_MEMORY_FUNCTION (easily inline memory independence functions).
  • Accurate Free-space reporting.
  • Many bug fixes from other partners.

All users of FullFAT are advised to update their projects as soon as possible. (Note v1.0.0 is still considered safe for production use).

Looking to the future:

This is an interim release on the way to version 1.1.0 (or 2.0.0 as it may be called). There’s plenty to look for in the upcoming version especially:

  • Formatting Function providing a native disk formatting ability.
  • New Architecture, featuring more programmatic isolation, and encapsulation.
  • New I/O Sub-system, providing a new enhanced and dependable design.
  • New Directory Handling Architecture,  providing massive performance gains on large directories.
  • Ability to properly handle device removal (depending on integration).
  • Proper Error Handling throughout code.
  • New error reporting system (find exactly where an error came from instantly).
  • Smaller Code Size.
  • Smaller memory footprint.

FullFAT 1.1.0 (2.0.0) is estimated for release around September 2010.

Also to look out for is the new E-FS filesystem which should be ready for July 2010. E-FS (embedded future storage) is currently under heavy development as a part of my final major project at university. Much of the development will be ploughed back into FullFAT, to provide a clean code architecture and more dependable design for the FullFAT project. These enhancements will appear in the 1.1.0 (2.0.0) FullFAT release. For more information please contact me.