Ubuntu Core documentation

Ubuntu Core is Ubuntu for IoT and embedded environments, optimised for security and reliable updates. It's easy to deploy, tamper-resistant, and hardened against corruption.

Its read-only root filesystem is built from the same packages used to build the wider set of Ubuntu distributions, and only differs in the way packages are delivered, and crucially, updated. This is all handled by snaps, a secure, confined, dependency-free, cross-platform Linux packaging system.

Snap packages ensure there is always a clean separation between the base system and whatever applications need to be installed, as well as isolation between each and every application, their data, and even application version data.

Updates are transactional, which means they’re either 100% successful or they’re not installed. If they're not installed, they leave no trace of any failure other than log details. This means the system remains fully operational and in a continuously well-defined state during both application and system updates. The system can also recover or revert to previous states if necessary, even if a system fails to boot. Unlike alternative or more traditional package managers, a failed update never leaves the system in an unpredictable state.

Ubuntu Core releases

Each Ubuntu Core release is built on the foundations of a corresponding Ubuntu LTS release. The following versions of Ubuntu Core are currently available:

Ubuntu Core version Ubuntu base Status
Ubuntu Core 20 (UC20) Ubuntu 20.04 LTS (Focal Fossa) beta1
Ubuntu Core 18 (UC18) Ubuntu 18.04 LTS (Bionic Beaver) supported
Ubuntu Core 16 (UC16) Ubuntu 16.04 LTS (Xenial Xerus) supported

The current recommended version of Ubuntu Core is UC18. UC20 is under active development with a final release due soon. See Ubuntu Core 20 for details.

Download Ubuntu Core: the latest Ubuntu Core images are available from:
http://cdimage.ubuntu.com/ubuntu-core

Advantages for IoT

Ubuntu Core is engineered to meet the precise requirements of IoT devices. It runs on a large range of hardware, including Raspberry Pi, Intel NUC, Qualcomm Snapdragon 410c and even a KVM. Features include:

  • simple, consistent installation and deployment: Ubuntu Core is installed via an immutable image, which can be either installed or built specifically for your platform and application
  • a read-only filesystem: apps run in isolation from each other and access to system resources is only granted with explicit permissions
  • transactional updates: signed, autonomous and atomic, updates can withstand unpredictable hardware and network conditions, even to the operating system
  • snap-based, security first: snaps are secure, easy to build, and painless to distribute. Public/private key validation ensures what's running is exactly what's intended to run

Designed from the ground-up to solve the complex problems associated with deploying, running and updating critical software, Ubuntu Core makes updates automatic, reliable, secure and transparent whilst still offering a broad and carefully selected level of control and customisation over an update’s deployment.

Ubuntu Core and Ubuntu

The Ubuntu family of Linux distributions includes Ubuntu Desktop and Ubuntu Server, as well as Ubuntu Cloud which is optimised and certified for most major clouds. Ubuntu Core is built from the same foundations but differs in the way those foundations are packaged and deployed.

Comparison Ubuntu Core Ubuntu
Minimum requirements 500Mhz single-core CPU
256MB RAM, 512MB storage
1GHz dual-core CPU
512MB RAM, 1.5GB storage
Packaging Snaps, with autonomous updates via either the global store or a private brand store Debs and snaps, with traditional update mechanics and organisation
App security Confinement via AppArmor / Seccomp No system-wide confinement for deb packages
Graphical UI None by default (Wayland or Mir are options) X.Org/GNOME or Wayland/GNOME

© 2020 Canonical Ltd. Ubuntu and Canonical are registered trademarks of Canonical Ltd.