OSTree Overview

This is intended as an general overview of OSTree, and it is intended as a starting point to understand how it works from a general perspective.

About OSTree, and its goals

OSTree is a set tools which allow to manage multiple entire file system trees and store them efficiently. The main goals are:

  • Storing multiple, complete file system trees.
  • Allowing to boot from file system trees, and switching easily between them.
  • Versioning the contents of the file system trees.
  • The user's home directories are shared: they are the same regardless of the tree being used.

One can think about OSTree as a “Git-like tool for storing entire snapshots of an operating system”.

Other duties

Alongside with OSTree comes ostbuild, a build tool (which ideally would supersede Jhbuild at some point), and which is aware of how to add contents to OSTree repositories. This means that it is able to build a certain GNOME module and add the resulting files to an OSTree-managed file system.

Real life usage

The description above may sound vague, so let us see some concrete real-world benefits of OSTree. It enables to do things like those:

  • Using one system (read: tree) for regular, everyday work, with the current stable GNOME version, and at the same time having a second tree with a bleeding-edge version to try out new things.

  • Using multiple system versions (read: trees) for development, e.g. to be able to target different GNOME versions, or to help reproducing bugs with certain versions of the components.

  • When upgrading the system, a tree of the previous version can be kept around and used as fall-back if something fails in the new one.
    • Also, due to the way data is stored, an upgrade would only download those files that are actually new.
  • Installing a new system

How does Yocto fit in the whole picture?

Yocto is used for bootstrapping and for populating the trees with the basic packages that conform a base GNU/Linux system. Once a base system is ready, “ostbuild” is then used to build the GNOME packages and adding them to a tree.

Projects/OSTree/Overview (last edited 2013-11-22 20:27:22 by walters)