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;
- 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.
Ubuntu Core is one of many operating systems designed or optimized for containers. Others include:
- Container Linux by CoreOS, which is open source;
- Atomic Host, a supported Linux OS from Red Hat;
- RancherOS, a lightweight Linux distribution;
- Boot2Docker, a tiny Linus OS distribution;
- Alpine Linux, which is also open source; and
- Windows Server 2016 from Microsoft.
Ubuntu Core depends upon secure shell keys from a user's Ubuntu One account, a single sign-on account for a user to access all Ubuntu services. A user must import those keys into his Ubuntu One account, and then allow Ubuntu Core to authenticate against those keys. To use Ubuntu Core as a VM, there are steps necessary to download, build and convert the image to cooperate with the given VM host platform. This process can be complicated, so it may not be ideal for any user seeking a quick start with containers.