Ubuntu Core is a transactional version of the Ubuntu Linux OS, made specifically for internet of things (IoT) devices and large container deployments. This OS powers many digital signs, robotics and gateways, and uses the same kernel, libraries and system software as the standard Ubuntu, but on a much smaller scale.
Ubuntu Core can be run as a VM, or on the following platforms:
- Raspberry Pi 2 and 3;
- Compute Module 3;
- Qualcomm DragonBoard 410c;
- Intel NUC;
- Intel Joule;
- Samsung Artik;
- KVM;
- Amazon Web Services (AWS);
- Microsoft Azure; and
- Google Cloud Platform.
Rely on snap packages
Transactional operating systems divide work into complete, indivisible operations. Ubuntu Core works through the use of snap packages. Snaps are zip files that contain a containerized application and its dependencies, as well as instructions to run securely and communicate with other software. Snaps run on any Linux desktop, server or cloud device, isolated from the underlying OS for safe installation of an application.
Snaps are read-only and immutable, which prevents any modification while installed on a system. Alongside the application and its dependencies, snaps contain two segregated, writable storage spaces, one of which is versioned and saves copies of any data upgrade, and the other stores large volumes of static data that doesn't need reduplication.
Because of Ubuntu Core's use of snaps, its security profile for the applications in containers is heightened. Even the OS and kernel are delivered as snaps, so any snap can be updated without affecting, or relying upon, other installed snaps. Using Ubuntu Core for containerization is now more feasible with the update that makes Docker compatible with Raspberry Pi.