| OSTree Manual |
|---|
Another deeply fundamental difference between both package
managers and image-based replication is that OSTree is
designed to parallel-install multiple
versions of multiple
independent operating systems. OSTree
relies on a new toplevel ostree directory; it can in fact
parallel install inside an existing OS or distribution
occupying the physical / root.
On each client machine, there is an OSTree repository stored
in /ostree/repo, and a
set of "deployments" stored in /ostree/deploy/.
Each deployment is primarily composed of a set of hardlinks
into the repository. This means each version is deduplicated;
an upgrade process only costs disk space proportional to the
new files, plus some constant overhead.
OSNAME/CHECKSUM
The model OSTree emphasizes is that the OS read-only content
is kept in the classic Unix /usr; it comes with code to
create a Linux read-only bind mount to prevent inadvertent
corruption. There is exactly one /var writable directory shared
between each deployment for a given OS. The OSTree core code
does not touch content in this directory; it is up to the code
in each operating system for how to manage and upgrade state.
Finally, each deployment has its own writable copy of the
configuration store /etc. On upgrade, OSTree will
perform a basic 3-way diff, and apply any local changes to the
new copy, while leaving the old untouched.