OSTree

{{About|the system for versioning updates of Linux-based operating systems|the data structure that is a variant of the binary search tree|Order statistic tree}}

{{Short description|System for versioning updates of Linux-based operating systems}}

{{Infobox software

| title = libostree

| repo = {{URL|https://github.com/ostreedev/ostree}}

| programming language = C

| operating system = Linux (Fedora Silverblue, endless OS, and others)

| license = LGPL v2+

| website = {{URL|https://ostreedev.github.io/ostree/}}

}}

{{Portal|Free and open-source software|Linux}}

libostree (previously OSTree) is a system for versioning updates of Linux-based operating systems.{{cite web|url=https://ostreedev.github.io/ostree/|access-date=|title=ostree documentation}} It can be considered "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 exampleos/buildmain/x86_64-runtime.

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: /etc and /var. It provides a mechanism to allow filesystem trees to add configuration files to /etc 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.{{Citation |title=eos-updater |date=2023-03-30 |url=https://github.com/endlessm/eos-updater |access-date=2023-05-17 |publisher=Endless OS Foundation}}
  • Flatpak, used to store applications and runtimes and to provide deduplication.{{Cite web |title=Under the Hood — Flatpak documentation |url=https://docs.flatpak.org/en/latest/under-the-hood.html |access-date=2023-05-17 |website=docs.flatpak.org}}
  • Fedora's atomic spins (Silverblue, Kinoite, Budgie Atomic, and Sway Atomic) through rpm-ostree{{Cite web |title=Fedora Silverblue User Guide |url=https://docs.fedoraproject.org/en-US/fedora-silverblue/ |access-date=2023-05-17 |website=Fedora Docs |language=en}}
  • Atomic Host
  • The GNOME continuous project for continuous delivery of GNOME components.{{cite web |title=Gnome Continuous |url=https://wiki.gnome.org/Projects/GnomeContinuous |access-date=25 January 2018}}
  • [https://developer.toradex.com/torizon/in-depth/ostree/ Torizon OS embedded Linux] uses libostree with the Uptane Frameworks for OS Updates.{{Cite web |title=Torizon OS |url=https://developer.toradex.com/torizon/in-depth/ostree/ |website=Toradex |publication-date=11 October 2023}}

References

{{Reflist}}