next up previous contents
Next: 9.2.6 Cryptfs Up: 9.2 In-Core File Systems Previous: 9.2.4 Snoopfs

9.2.5 Gzipfs

A compression file system using the GNU zip algorithms. Only file data should be compressed for performance reasons. File name extensions will be used to find files that are already compressed and avoid re-compressing them (a process that normally results in the growth of the file size). Data blocks will be compressed before written out to the interposed's file system, and decompressed after being read from it and before being returned to the caller of the interposer's file system.

A slight modification of this file system would only compress files older than a certain date, thus allowing frequently accessible files speeder access, and saving space on seldom-used files.

The difficulty in implementing this file system will come from having to deal with the fact that the sizes of the data streams change when reading compressed files (size grows) and writing (size generally shrinks), and how to maintain the uncompressed file size while saving partition disk blocks resulting from files having been compressed.

Erez Zadok