Home $5K RTOS Bundle The Blunk Difference Contact Us Downloads

Compressed Data File System


Blunk Microsystems' compressed static file system, TargetZFS, is a general purpose file system for embedded applications. It supports static and compressed read-only volumes linked into program code as well as compression of volumes located in read-write storage.


  • Royalty free.
  • Source code for target file system.
  • Reliable, re-entrant embedded file system.
  • Provides POSIX and Standard C API (read-only).
  • Compression is invisible to applications.
  • Supports multiple volumes.
  • Supports user configurable, volume level encryption.
  • User control over compression level and block size used for compression.
  • User can supply own compression library, or use TargetZFS's default one that employs zlib compression.
  • Includes sample applications.

Although TargetZFS is general purpose, it is specifically designed to meet four critical needs of embedded developers:

  • Serve as a file system for an embedded component, such as TargetGraphics, Blunk's graphics library, or TargetWeb, Blunk's web server.
  • Facilitate compression of application programs to be loaded into RAM for execution.
  • Compress data in a device without losing read-only file system access to it.
  • Reduce data transmission for files that are to be retrieved from a device.

The TargetZFS system includes a PC tool (screen shot below) that is used to create a compressed image of any PC directory. The resulting read only file system can be made available to an embedded application in one of two ways: (1) the compressed image can be converted by the PC tool into the initialization data for a C array that is compiled as source code and linked with the application, or (2) the compressed image can be placed into an existing file system on the target and mounted. In either case the result is that the files formerly on the PC become available to the embedded application for access through TargetZFS' standard file system API and are transparently decompressed as they are read.

TargetZFS Screen Shot

The PC tool is also capable of decompressing images. Thus, if data is to be retrieved from a target, TargetZFS makes it easy to compress the data files on the target so that the transfer time will be reduced.

Some embedded modules, such as graphics libraries and web servers, require access to an underlying file system. Using TargetZFS either by itself, or in combination with one of Blunk's general purpose file systems, such as TargetXFS, provides a complete set of solutions for such applications. The TargetZFS part of the solution provides both for compression and the ability to link a file system in with the application's code. TargetXFS allows the contents of the file system to be changed after the device is deployed. Using the two systems in combination allows compressed data to be stored in a general purpose file system and changed after deployment.

In particular, for graphics libraries the fonts and images and for embedded web servers the HTML source files are usually static and significant compression can be expected from TargetZFS. If there is no need to dynamically change the component's source files, TargetZFS alone can provide a file system for the graphics library and/or the web server. If dynamic updates of files are needed, the files can be stored in a general purpose file system either as individual files or after having been packaged into compressed images using TargetZFS.

Also, many embedded devices have ROM resident boot code that loads the main application program into RAM where it is then executed, typically so that it benefits from higher speed memory. Compression of the memory footprint of an application program is generally very dramatic and TargetZFS provides a straight-forward approach to achieving compression with minimal programming effort.