Filesystems
The QNX OS provides a rich variety of filesystems. Like most service-providing processes in the OS, these filesystems execute outside the kernel; applications use them by communicating via messages generated by the shared-library implementation of the POSIX API.
Supported filesystems on QNX OS
The following table shows the shared objects and related commands for the filesystems.
The utilities listed under Initialize with: create an empty filesystem on a target device or in a file. The ones under Create with: create a fully populated filesystem image on a host platform, which you can then write to a target device or a file.
Filesystem | Partition type | Driver | Initialize with: | Create with: | Check with: |
---|---|---|---|---|---|
Power-Safe filesystem
A reliable disk filesystem that can withstand power failures without corruption. |
177, 178, or 179 | fs-qnx6.so | mkqnx6fs | mkqnx6fsimg | chkqnx6fs (on target; not usually necessary) |
QNX compressed filesystem A read-only filesystem that supports the compression of files and metadata so that they take up less space. |
181 | fs-qcfs.so | N/A | mkqfs | N/A |
QNX Trusted Disk A device that provides integrity protection of the underlying disk data in secure boot environments. |
185 | fs-qtd.so | N/A | mkqfs | mkqfs (on host; use -y option to verify) |
Image filesystem (IFS) A simple read-only filesystem that presents the set of files built into the OS image. |
N/A | mount_ifs (secondary IFS) part of the boot image (primary IFS) |
N/A | mkifs | N/A |
DOS filesystem A filesystem that provides transparent access to DOS FAT (FAT12/16/32) disks. |
1, 4, 6, 11, 12, or 14 | fs-dos.so | mkdosfs | mkfatfsimg | chkdosfs (on target) |
Linux Ext2 filesystem
A filesystem that provides transparent access to Linux disk partitions. |
131 | fs-ext2.so | N/A | N/A | N/A |
UDF filesystem
A read-only filesystem that supports UDF (ECMA-167) and ISO 9660 (including Joliet and RRIP extensions). |
N/A | fs-udf.so | N/A | N/A | N/A |
FFS3 filesystem Filesystem drivers that implement a POSIX-like filesystem on NOR flash memory devices. |
N/A | devf-system | flashctl -f command to the
devf-system driver |
mkefs | Internal to the devf-system driver, enabled with the -r option |
NFS filesystem NFS 3 client filesystem. |
N/A | fs-nfs3 | N/A | N/A | N/A |
Linux Squash filesystem A compressed, read-only filesystem. |
N/A | fs-squash.so | N/A | mksquashfsimg | N/A |
In addition, every QNX OS system provides a simple RAM-based
filesystem
that allows read/write files to be placed under
/dev/shmem. However, it does not support many POSIX semantics. For more
information, see RAM filesystem.
Filesystem resource managers
These filesystems are resource managers as described in this book. Each filesystem adopts a portion of the pathname space (called a mountpoint) and provides filesystem services through the standard POSIX API (open(), close(), read(), write(), lseek(), etc.). Filesystem resource managers take over a mountpoint and manage the directory structure below it. They also check the individual pathname components for permissions and for access authorizations.
This implementation means that:
- Filesystems may be started and stopped dynamically.
- Multiple filesystems may run concurrently.
- Applications are presented with a single unified pathname space and interface, regardless of the configuration and number of underlying filesystems.
Virtual filesystems
A virtual filesystem is one in which the files or directories aren't necessarily tied directly
to the underlying media, perhaps being manufactured on-demand.
The /proc filesystem is an example; see
Controlling processes via the /proc filesystem
in the Processes chapter of the QNX OS Programmer's Guide.