Canonical’s latest IoT operating system Core 22 also makes extensive use of snaps. Many new functions virtually force their use.
Canonical has released a good month after Ubuntu 22.04 also Ubuntu Core in the new version 22. It features a more up-to-date kernel and a retreaded base system, but also brings new features such as the option to force certain software versions on Ubuntu Core target devices. On top of that, Ubuntu Core devices can now be remotely restored to factory state more easily. Upgrading existing systems is possible, according to the vendor.
While Ubuntu Core doesn’t follow the release cycle of Ubuntu Linux and doesn’t use its versioning scheme, most of the components in Ubuntu Core 22 look familiar if you’re familiar with Ubuntu 22.04. Thus, the IoT operating system inherits its kernel with slight changes from its big brother; the changes are minor mainly because the standard kernel included in Ubuntu Linux 22.04 can also be used as a real-time kernel. On top of that, Ubuntu Core 22 updates the entire base system, which is known to come in several snap-format containers, and is largely on par with Ubuntu Linux 22.04.
Canonical makes use of the features of the modular base system in Ubuntu Core 22 in several ways. First, from the perspective of a company that runs many IoT devices with Ubuntu Core 22 in the wild, it will be easier to reset them to their original shipping state in the future. This will especially help if a remote device has not survived an update or configuration change and would otherwise be unrecoverable without local intervention. To prevent this from happening in the first place, Canonical also provides manufacturers of IoT devices with a new tool called Validation Sets: These determine that certain snaps must or must not be installed – even down to individual versions, if desired. The catch: So that the function can be used at all, a so-called Brand Store is necessary, over which own Snaps for Ubuntu Core can be distributed.
Many small changes
Quotas can be defined in Ubuntu Core 22 now for CPU and memory resources, and per defined group of services in Snap containers. On the one hand, this makes it possible to control that related components of an environment may only use a certain amount of CPU time and RAM; on the other hand, depending on the environment, individual applications can also be contained.
In addition, support for MicroK8s has recently become a permanent feature of Ubuntu Core 22. The idea of operating IoT devices as components of a Kubernetes fleet might not be the most obvious, but enough customers seem to have asked Canonical for the function. In any case, in the future, an Ubuntu Core 22 instance can be integrated into an existing fleet management with Kubernetes in just a few steps.
On top of that, as of Ubuntu Core 22, it is also possible to use at least basic functions of Canonical’s Metal as a Service (MAAS) lifecycle solution for Ubuntu Core. For this purpose, Ubuntu Core 22 contains a basic variant of cloud-init, which queries various configuration parameters from the MAAS server when starting a system and then converts them into local configuration.
IoT pioneer Canonical
Unlike the competition, whose micro-distributions are definitely also intended for use in the regular data center – such as RHEL CoreOS or SLE Micro – Ubuntu Core is traditionally aimed almost exclusively at manufacturers of IoT hardware. The manufacturer has offered ready-to-use images for several SoC boards and popular mini-computers like the Raspberry Pi for some time. Technically, Ubuntu Core differs from normal Ubuntu primarily through the consistent use of the Snap container format. Ubuntu Core not only uses additional software to be delivered by the manufacturer of an IoT product, but also the basic system itself. While Canonical expects more robust stability and higher security from this approach, some customers mainly criticize the closed nature of the approach. The installation of software that is not already available in Canonical’s Snap store Snapcraft, as well as the installation of specific configuration files, can practically only be solved sensibly with specially built Snap images. However, in order to deliver these to Ubuntu Core devices around the world, a so-called branded store in Snapcraft is necessary, which Canonical makes itself pay well for – annually. Although the manufacturer also offers the option of building your own base images of Ubuntu Core, the restrictions mentioned can hardly be circumvented even in these – and on top of that, some of the management tools for Ubuntu Core then lose their functionality.
For the vendors of existing IoT devices with Ubuntu Core 20 as well as for those companies that want to start a close partnership with Canonical for the production of IoT devices with Ubuntu Core, version 22 is a real change. It is available for download from the provider.