Robots embrace Ubuntu as it invades the internet of things

Canonical has revealed what I reckon is its biggest announcement in years: Ubuntu is about to invade the internet of things with a minimal version of the Linux distribution that it hopes will provide a standardized platform for connected devices from drones to home hubs.

“Snappy” Ubuntu Core came out of [company]Canonical[/company]’s mobile efforts (which are yet to go anywhere) and was made available on [company]Amazon[/company] Web Services, [company]Microsoft[/company] Azure and the [company]Google[/company] Cloud Platform at the end of 2014. Now it’s available for smart devices, and Canonical has already got players such as the Open Source Robotics Foundation (OSRF), drone outfit Erle Robotics and connected hub maker NinjaBlocks on board.

From mobile to IoT, via the cloud

Unlike traditional, package-based Ubuntu for servers and desktops, the extensible Core keeps apps and each part of the OS securely isolated from one another, and it allows for “transactional updates” — they only need to include the difference between the old and new version, allowing for easy upgrading and rolling-back if needed. In the cloud, Canonical is pushing Ubuntu Core as ideal for Docker and other containerized apps.

Mark Shuttleworth

Mark Shuttleworth

However, Core’s suitability for the container trend was more or less an accidental bonus while the technology was quietly making its way from Ubuntu Touch to the internet of things, Canonical founder Mark Shuttleworth told me in an interview. According to Shuttleworth, Core’s development began as Canonical grappled with carriers’ annoyance at existing mobile firmware update mechanisms, and as cheap development systems such as Raspberry Pi and Arduino started to take off.

[pullquote person=”Mark Shuttleworth” attribution=”Mark Shuttleworth, Canonical founder” id=”907873″]Let us deliver those updates to your device with the same efficiency as with a phone[/pullquote]”Two years ago we started seeing a lot of what I’d call alpha developers starting to tinker with what at the time people called embedded development,” Shuttleworth said. “We realized there was a very interesting commonality between the work we were doing for mobile — specifically this update mechanism work – and the things you’d want if you were to build a product around one of these boards.”

Canonical had “invested in the container capabilities of the Linux kernel as it happened for the mobile story,” Shuttleworth said, as it was needed to fix security issues on the phone, such as isolating untrusted apps from the address book. “Docker is based on those primitives that we built,” he noted.

Developer push

For makers of connected devices, the same technology means being able to concentrate on the connected app and keeping the device more secure. “[Currently] if you’re going to get an update for that firmware, what you’re getting is a whole blog of kernel and OS and app, and the net effect is you rarely get them, so a lot of devices are vulnerable,” Shuttleworth said. “With Core, you can let us worry about Heartbleed and so on, and let us deliver those updates to your device with the same efficiency as with a phone.”

What’s more, Core for smart devices comes with an app store (that can be white-labeled for brands) that provides developers with a distribution mechanism, and also opens up the possibility of running different apps from different vendors on connected devices.

Shuttleworth gave the example of a smart lawnmower that could take an add-on spectral camera from a different manufacturer and run that manufacturer’s app:

It’s going from a single-device stodgy world to more cross-pollination between devices from different vendors. Because you have a store, you can see more innovation where people concentrate on the software – they don’t have to build a whole device. Because it’s a common platform, they can deliver that app to many devices.

One of the key benefits of Core is its flexibility. The base Ubuntu Core code is identical across the cloud, connected devices and even the desktop – it supports both ARM and x86. This means device makers can prototype their “Snappy” apps on a PC before running thousands of simulations in the cloud, and it also means old PCs can be easily repurposed as a home storage server or photo booth or what have you.

Early adopters

The OSRF is going to use Ubuntu Core for its new app store, so developers can push updates to their open robots. Erle Robotics is using Core to power its new Erle-Copter open educational drone (pictured above), which will ship in February.

NinjaBlocks' Ninja Sphere smart home controller

NinjaBlocks’ Ninja Sphere smart home controller

NinjaBlocks’ is using Core and its app store as the basis for its new Ninja Sphere smart home controller (pictured right).

Shuttleworth said he was intrigued by the possibilities of hubs: “They may be routers or set-top boxes [but] you really want to think of them as extensible. Why can’t a NAS also have facial recognition capabilities; why can’t your Wi-Fi base station also run a more sophisticated firewall?”

The current Raspberry Pi won’t run Ubuntu Core as it uses the older ARMv6 architecture – Core requires ARMv7, though the ODroid-C1 provides a cheap ($35) option in that department. “We decided we wouldn’t go to lower specifications because our Core story is the next generation of devices,” Shuttleworth said.

Speaking of hardware, the Ubuntu founder also hinted that there might be further announcements in connection with the big silicon vendors, with which Canonical already has extensive relationships – “At the silicon level we’re a unifying factor” — though he didn’t want to go into detail just yet. The likes of Intel and Samsung and Qualcomm are all trying to develop their own (infuriatingly disparate) standards for the internet of things, and it would be interesting to see how Canonical can insert itself into this chaotic land-grab, if indeed it can.

Ubuntu’s future

For those wishing to repurpose old PCs, the private cloud storage outfit OwnCloud (already available in the Core app store) provides an interesting test case for the difference between Ubuntu Core and the full-fat Ubuntu. As Shuttleworth tells it, OwnCloud “got bitten” by the traditional package management system on Ubuntu, because that involves different packages for different versions of the OS.

“It came to the question of who’s responsible for an out-of-date, insecure version of OwnCloud,” he said. “We can’t usually give [developers] access rights to the archive to push updates – if something malicious is in there… it can go anywhere. [Now] we can say: ‘OK, there’s just one place you push the latest version of OwnCloud and it goes directly to every device with Snappy.’ If they were to do something malicious, we’d confine that to just the data you’ve already given to OwnCloud.”

So, is Core Ubuntu’s WinCE or the future of the venerable Linux distro? Shuttleworth was adamant that the Debian-package version of Ubuntu “will never go away because it’s the mechanism with which we collaborate amongst ourselves and with Debian” and would be of continued relevance for developers:

The question comes when you look to shipping the software to a device or user – folks are increasingly comfortable with the idea that a more bundled, precise and predictable delivery mechanism is attractive for that. I think there will be millions of people using Snappy, but I don’t think the package-based version will go away. It’s so useful for developers and in many cases for production, but in cases where you have a particular property of very high cost to go fix something if it breaks, the Snappy system is very attractive.

For any given application, it’s clear which would be better.