Mea culpa! When I first saw that Canonical was coming out with its own combination of Docker containers and a lightweight Linux distribution in Ubuntu Core, I presumed it was a pure server play. I was wrong. Canonical, Ubuntu Linux's parent company, also wants to turn Ubuntu Core into the operating system for the Internet of Things.
As Mark Shuttleworth, Ubuntu and Canonical's founder, wrote on his blog:
'Smart, connected things' are redefining our home, work and play, with brilliant innovation built on standard processors that have shrunk in power and price to the point where it makes sense to turn almost every 'thing' into a smart thing. ... Ubuntu is already pervasive on devices ... from self-driving cars to space programs and robots and the occasional airport display. I'm excited that we can help underpin the next wave of innovation while also thoughtful about the responsibility that entails. So today we're launching snappy Ubuntu Core on a wide range of boards, chips and chip-sets, because the snappy system and Ubuntu Core are perfect for distributed, connected devices that need security updates for the OS and applications but also need to be completely reliable and self-healing.
Ubuntu One self-heals because unlike most operating systems, when a change needs to be made, instead of patching the operating system or the application, the entire lightweight containerized stack is replaced. In addition, because in Ubuntu Core the separate operating system and application files are read-only images, it's much harder to infect either with malware.
To make Ubuntu Core work more efficiently with devices rather than the clouds it was first meant for, Canonical has added a hardware abstraction level to this new Ubuntu variant. In this first beta release, Ubuntu Core on Internet Things, both ARMv7 and x86-64 architectures are supported.
Regardless of the architecture, Ubuntu Core presents a single identical platform from cloud to device with the exact same application programming interfaces (APIs) and security updates. "It has never been easier to develop for embedded devices," said Alexander Sack, who leads device engineering at Canonical in a statement. "Ubuntu Core on the cloud is a perfect platform for test and dev; I can simulate my device online and launch thousands of simulated devices on demand."
If you want to try it on x86, "A spare laptop or PC becomes your initial development board," claimed Victor Palau, Canonical's VP of Device Engineering, in a statement "Turn an old PC into a home storage server or prototype your robot app on a spare laptop or virtual machine."
On the ARMv7 side, Ubuntu works across a wide range of ARM boards. Ubuntu Core requires a 600MHz processor with 128 MBs of RAM. Devices also require 4GB flash for factory reset and system rollback. Ubuntu Core itself only uses 40MB RAM leaving the rest for applications. Canonical recommends the $55 Beaglebone Black and $35 Odroid-C1 for ARM developers. Canonical provides detailed instructions on how to set Ubuntu Core up on a Beaglebone.
"The app store for Internet things is now open on Ubuntu," says Maarten Ectors, VP of Internet Things at Canonical. "Ubuntu makes it easy to develop amazing apps for incredible devices on your laptop, test on the cloud and publish straight to a global market of diverse devices."