What is Ubuntu Core?
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.
Ubuntu Core releases track a corresponding Ubuntu LTS release, and there are currently three supported versions available:
|UBUNTU CORE VERSION||UBUNTU BASE||STATUS|
|Ubuntu Core 20 (UC20)||Ubuntu 20.04 LTS (Focal Fossa)||supported|
|Ubuntu Core 18 (UC18)||Ubuntu 18.04 LTS (Bionic Beaver)||supported|
|Ubuntu Core 16 (UC16)||Ubuntu 16.04 LTS (Xenial Xerus)||supported|
Ubuntu Core is more than a repackaged version of Ubuntu, however. Ubuntu Core 20, for example, offers full-disk encryption, a new recovery mode and Raspberry Pi ARMv7 and ARMv8 support.
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.
Advantages for IoT
Ubuntu Core is engineered to meet the precise requirements of IoT devices. It runs on a large range of hardware including, but not limited to, Raspberry Pi, Intel NUC, Qualcomm Snapdragon 410c and even a KVM. Features include:
snap-based and composed of read-only filesystems: the root filesystems and apps are packaged as snaps, each shipping a read-only filesystem, while there is separate and dedicated writable space for system and user data. Snaps are easy to build, and painless to distribute. Validation is based on public-key signatures that ensure what’s running is exactly what’s intended to run.
transactional updates: signed, autonomous and atomic, updates can withstand unpredictable hardware and network conditions, even to the operating system.
security first, snaps are secure: apps run in isolation from each other and access to system resources is only granted with explicit permissions.
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.
|Minimum requirements||500Mhz single-core CPU
384MB 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|