SkyOS uses a 64bit journaled filesystem with meta-data (attributes) and indexing and querying characteristics to provide functionality similar to that of a relational database.
Based on OpenBFS SkyFS has evolved into its own filesystem.
The main purposes for BranchFS are:
- Make it possible to create a branch of an entire filesystem. This means that right after branching the filesystem all filesystem modifications are reversible to the previous state. This can especially be interesting when updating your system with drivers or other critical components, or if you want to install a few applications and make sure that you can revert your system to a working state.
By branching the read-only ISO9660 LiveCD filesystem, one can immediately convert a read only medium to a full read-write system, branching future the modifications on volatile (Ramdisk) or non-volatile devices (harddisk, USB drive, …)
Using BranchFS alien filesystem "magically" get full SkyFS attribute style support. This makes it possible to use all filesystem with the IndexFeeder, meaning, the entire filesystem content can be indexed
SkyOS can be booted in a so called "Volatile" mode where every modification (application installation, system updates, ...) made to the filesystem will be lost on the next reboot. This makes using SkyOS as an operating system for Kiosks very attractive.
Another application area for BranchFS is when using the LiveCD. When SkyOS runs from a CDROM (which is read only by its nature) you can still fully modify the system and any files, download applications or compile your sources. All modifications will be lost on next reboot or will be non-volatile if you specify a physical device as branch device. (for instance, an external USB stick)