fs-squash.so

QNX SDP8.0Utilities ReferenceUtilities

Shared object that supports Linux Squash filesystem (QNX OS)

Syntax:

driver … squash squash_options… &

Runs on:

QNX OS

Options:

The driver is any of the devb-* drivers, and squash_options is one or more of the following, separated by commas:

bmap=size
Set the size of the data block mapping cache. The default size unit is in bytes, but you can add the suffix k (kilobytes) or m (megabytes). This cache stores recent file data logical block offsets because variable-length block compression can make random access slower. The default size is 8k worth of mappings (about 500 such entries).
data=size
Set the size of the data block cache (see Description). The default size unit is in bytes, but you can use the scaling suffixes mentioned in the bmap option. The default size is 10M (total memory, divided into filesystem-sized uncompressed data blocks).
dirindex[=entry]
Load and use the sorted directory index entries stored by Squash; these can speed filename lookups by trading linear directory scanning for this index memory usage. The default is 1 (enabled for any size directory index).
dots
Construct "." and ".." directory entries in readdir() output. Squash directories don't store these items, so this option requests that the filesystem emulates their presence.
meta=size
Set the size of the metadata block cache, (see Description). The default size unit is in bytes, but you can use the scaling suffixes mentioned in the bmap option. The default size is 256k (total memory, divided into 8k uncompressed metadata blocks).
tables[=data]
Preload and store Squash table data; these tables store UID/GID mappings and file data fragment mappings. If the table data isn't loaded into dedicated memory, the relevent table entries are read on-demand from the metadata cache. The default is 0 (off).

In addition, you can specify any of the filesystem options described for io-blk.so.

Description:

The fs-squash.so shared object provides support for Linux Squash filesystems. It's automatically loaded by the devb-* drivers when mounting a Squash filesystem.

Squash is a compressed read-only filesystem that supports files, directories, hard and symbolic links, UIDs, a number of compression algorithms (gzip, lz4, lzma2, zstd), and data block sizes (4k - 1M). The Squash filesystem is useful for providing and shipping OS and feature packages, and for size-constrained, block-device embedded systems where low overhead is needed.

File data and metadata is stored in compressed blocks in the filesystem image. Two caches exist (data and meta) that can store recently-used uncompressed blocks, trading the memory for this storage against the CPU cycles needed to repeatedly decompress the raw content (or the IO cycles to reload if the raw compressed blocks become non-resident in the io-blk buffer cache).

You can create Squash images under any host OS with the mksquashfsimg utility. Under Linux, you can alternatively use the mksquashfs utility from the squashfs-tools package.

For details on filesystems that QNX OS supports, including their drivers and tool set, see the Filesystems chapter of the System Architecture guide.

Page updated: