Fragmentation is a key word when thinking about the current landscape of Linux applications both referring to desktop environments and embedded devices. We have incompatible package formats, different package-management systems, multi-arch root filesystem layouts and device-dependent ways of flashing whole operating systems. We need to address the needs of a new breed of storage and network constrained consumer products.
OSTree is a tool that allows creating, updating and deploying filesystems in an efficient and atomic manner so that the device is guaranteed to always be in a bootable state, regardless of potential issues happening during the upgrade. Through the use of hard links, hashes and delta upgrades the target device does not retrieve or store duplicate content.
Flatpak is a related technology that delivers applications that are not part of the OS. Building on proven technologies such as OSTree, D-Bus, systemd and new features from the Linux kernel, Flatpak is able to provide a way to package, deploy and run Linux applications in secure sandboxed environments. It introduces the concept of "runtime platforms" that flatpak applications depend upon to run, and which make it possible to run a flatpak created in any Linux environment in a completely different Linux environment.
GNOME Software is the user-facing application that enables the end user to install, remove and update a wide variety of software components such as new version of the OS, application and firmware updates. With its plugin-based architecture, GNOME Software is able to handle any type of underlying technology that a given system has to use.
The purpose of this presentation will be to provide an overview of OSTree, Flatpak and GNOME Software, and how those three technologies interact with each other. Together we think they will shape the future of application distribution for Linux.
This talk has been delivered on 2017, March the 16th, in Samsung Research UK, as a joint effort between Richard Hughes (Red Hat) and me (Endless).