After enjoying the fortunate release schedule of Ubuntu Core, which coincided with industry-wide enthusiasm for container-based cloud installations, Canonical has announced the launch of an IoT focused flavor of Ubuntu Core – aimed directly at the devices that will coordinate local IoT communications.
In these deployments, Snappy Ubuntu Core will act as the OS for the IoT hubs that route and backhaul data from the smallest devices to the largest cloud-instances. Thanks to the design of Ubuntu Core, the OS can be continuously updated in the field, so that security vulnerabilities can be patched and mitigated as they are discovered; a very important requirement for high-value deployments in businesses or people’s private homes.
The new strategy sees the lightweight Ubuntu Core installed on customer premises equipment and larger appliances. Ubuntu is then able to install the necessary software libraries, on an as-needed basis, so that any device in the home can talk to another via the Ubuntu-powered device – be it a set top, router, or even an old PC tucked away in a closet.
In this implementation, Ubuntu is effectively acting as a universal translator that can download any language it needs to translate the messages that a lightbulb might be sending to a set of automated window blinds. As long as the device developers can write a software library and/or application framework for the individual radios or radio protocols, the coordinating Ubuntu device can route the data.
Canonical’s founder, Mark Shuttleworth, told us that the process of creating these libraries is not daunting as Ubuntu is one of the most familiar development platforms used by the industry. In addition, due to the aforementioned, unplanned, and serendipitous release of Ubuntu Core for the cloud-layer of server racks; a common programming environment is available to developers at all levels of IoT devices, from the lightbulb all the way up to the central cloud instance.
Another benefit of this architecture is that the lightbulb developer, in this example, can transfer the hardware functionality found in the lightbulb’s companion hub into the central Ubuntu device. This means that manufacturer’s like Philips and its Hue range can focus squarely on the bulbs and trust that a central hub will be able to download the Hue framework to coordinate the bulbs in a smart home, business or industrial installation.
Eliminating these translating controllers, which take a radio protocol and allow it to talk to a smartphone in most cases, will go a long way towards reducing the cost of an IoT device – a major benefit to consumer adoption of smart home tech, as well as businesses looking to improve efficiency and profit margins via automation.
Another advantage of this library and framework approach is that the battle-lines being drawn by the likes of Qualcomm’s AllSeen Alliance, the IIC, the OIC and Google’s Thread suddenly look less like the beginning of a protracted war of attrition. With a platform such as Ubuntu Core, a coordinating hub just has to ensure it has downloaded the necessary library (ZigBee, Z-Wave, Thread, AllJoyn, IoTivity, etc.) to counter the issue of incompatible device communication protocols.
To go into more detail, Snappy Ubuntu Core is a container-based version of the regular Ubuntu Linux distribution. It can be thought of as a stripped-down version that contains only the required software libraries to operate on servers. Additional libraries are added as needed, but the software is geared towards running applications on masses of cloud servers in a container-based environment – which keeps the core OS separate from the applications it is running without having to run multiple virtual machines on the server, which benefits run-time efficiency and security.
The term snappy describes the fundamental difference between this one and the PC flavor of Ubuntu. Snappy describes how apps can be snapped into place on the read-only OS without interfering with other systems. They can just as easily be snapped out of place when they are no longer needed, without compromising the system’s integrity – as each app runs independently of the others and can’t interfere with the OS. The approach arose from Ubuntu’s ongoing mobile phone endeavors, which have yet to bear fruit in the form of an Ubuntu Touch handset.
Thanks to Ubuntu Core’s background in the mobile world, where it was being geared towards updating the firmware and operating systems of mobile devices over the air (OTA), Core utilizes transactional updates. This is the term used to describe an update that writes the required data to a temporary location and checks its integrity before overwriting data on the target device – so that an errant character or dropped connection does not brick the device in the field. That’s rather important for the IoT and the potential billions of devices that comprise it.
Transactional updates are something of an industry standard in the mobile world, so bringing that functionality to the IoT is an absolute requirement – which Canonical hopes to offer to those who opt for Ubuntu. The other benefit of the transactional update process when it is applied to containers is that an incorrect update might brick the application running in the container, but won’t kill the central server that is running multiple containers’ worth of application. Transactional updates can also have the benefit of only having to send the bits of data that are different from old to new. Rather than having to resend an entire software package, you can just send the new bits and tell the target what to delete.
In addition, according to Shuttleworth, “you can coordinate updates with very high precision across thousands of instances in the cloud. You can run systems as canaries, getting updates ahead of other systems to see if they encounter unexpected problems. You can also roll updates back, because each version is a complete, independent image.”
In terms of the hardware requirements of the Ubuntu hub device, Canonical is confident that a 600MHz ARMv7 or x86 processor will be sufficient, with 128MB of RAM and 4GB of flash storage – not particularly strenuous or uncommon specifications for the kinds of chipsets that are used in set tops or home routers. Core only requires 40MB of RAM to run, allocating the remainder to its applications.
Canonical also points to the Odroid and Beaglebone developer boards as examples of devices that enable Core adoption. Unfortunately, the Raspberry Pi doesn’t support the newer ARMv7 architecture, as it has stuck with ARMv5 for legacy compatibility among its different versions. Nonetheless, Canonical claims that Core “supports the widest range of ARM boards, helping you develop your application secure in the knowledge that you can select the right silicon at the point of manufacture.” The upcoming Raspberry Pi may also make the leap to ARMv7, increasing the number of potential developers who opt for a refresh of the most popular development board in the world.
Core also includes an app store for both developers and consumers, and allows devices to pick and choose programs accordingly, with consumers adding new functionality to their devices over time and developers generating new revenue streams among an installed base of products. The snappy architecture allows developers to compete without fear of bricking entire ecosystems too – perhaps leading to faster deployment times, but hopefully not sloppier works thanks to the roll-back functionality of transactional updates.
Robots:
Ubuntu Core has already chalked up a number of early adopters in the IoT space, with the Open Source Robotics Foundation (OSRF) being perhaps the most interesting. OSRF member Erle Robotics has selected Core to power its Erle-Copter – an educational drone that is due to ship in February, and the first Ubuntu-powered drone.
Brian Gerkey, CEO of the OSRF, adds “Core enables our new app store for open robots. That creates a market for innovation and competition in robotics, with apps and updates delivered straight from developers to a new class of open, intelligent robots powered by open platforms and open protocols.”
In the smart home, NinjaBlocks has installed Core in its new Ninja Sphere home controller, and is looking to launch an app store for its smart home platform. With both robotics and startup smart home developers frequently using the new generation of small development boards, which meet the hardware requirements of Core, Ubuntu is no doubt hoping that its easy to use ecosystem snares the ever-growing number of IoT developers (both amateur and professional) that are embracing new technologies.