OSTree

libostree (previously OSTree) is a system for versioning updates of Linux-based operating systems. It can be considered as "Git for operating system binaries". It operates in userspace, and will work on top of any Linux file system. At its core is a Git-like content-addressed object store with branches (or "refs") to track meaningful file system trees within the store.

Features
OSTree is closely inspired by Git. It operates on commits which refer to filesystem trees. To refer to different commits while maintaining a user-readable name, OSTree provides "references" (analogous to branches in Git), such as.

Files provided by commits are by default immutable, done by mounting the filesystem itself as read-only. OSTree allows for two mutable directories for storing user data:  and. It provides a mechanism to allow filesystem trees to add configuration files to  while also allowing system administrators to edit those files in a persistent manner.

OSTree provides bootloader management for hardware deployments. This enables atomic updates, as OSTree can create deployments and atomically insert them into the boot partition. It also allows for systemwide rollback by selecting old deployments during startup.

Usage
libostree is used by various Linux operating systems and tools:


 * Red Hat In-Vehicle Operating System is a derivative of CentOS Automotive Stream Distribution that uses OSTree
 * endless OS through eos-updater.
 * Flatpak, used to store applications and runtimes and to provide deduplication.
 * Fedora's atomic spins (Silverblue, Kinoite, Budgie Atomic, and Sway Atomic) through rpm-ostree
 * Atomic Host
 * The GNOME continuous project for continuous delivery of GNOME components.
 * Torizon OS embedded Linux uses libostree with the Uptane Frameworks for OS Updates.