Canonical released a “Snappy” version of its lightweight, Ubuntu Core OS for IoT, featuring an app store, hacker-proof updates, and a 128MB RAM footprint.
Canonical’s delayed Ubuntu Touch phones are apparently still on track for Mobile World Congress, March 2-5, but now the company is on to something based on it that’s potentially much bigger.
Today, Ubuntu founder Mark Shuttleworth announced a new embedded version of the lightweight Core version of Ubuntu. It’s called “Snappy,” and it’s aimed at Internet of Things devices, starting with a focus on robots, drones, and home automation equipment. Shuttleworth briefly introduced Snappy in a blog post last month, describing it as a distribution for Docker containers running on cloud platforms, starting with Microsoft Windows Azure. Both the cloud and embedded versions draw upon code developed for Ubuntu Touch.
“This is the smallest, safest Ubuntu ever, on devices and on the cloud,” writes Shuttleworth. The IoT version of Snappy requires a 600MHz CPU and 128MB RAM, only 40MB of which is directly used by the system, while the rest is available for apps. The system also needs 4GB of flash “for factory reset and system rollback,” says Canonical.
(click image to enlarge)
Aside from its lightweight footprint, Snappy’s key innovations include a cloud interface and the implementation of a common app store for Snappy-based devices. The platform also provides automatic smartphone-like software updates, including security safeguards that are said to block unauthorized software updates (see farther below). “We’re working commercially with the major silicon providers to guarantee free updates to every device built on their chips and boards,” writes Shuttleworth.
The embedded version of Snappy, which is also referred to as “Ubuntu for Devices” and “Ubuntu Core on Internet Things,” is available in a frequently updated development release. It will be released in a more stable device-ready version in the coming months before being baked into the upcoming Ubuntu 15.04 in April.
Snappy supports ARMv7 and x86-64 platforms. Recommended development environments include the BeagleBone Black and Odroid-C1 open spec boards. The Raspberry Pi is disqualified due to its ARM11 processor, which doesn’t run ARMv7.
BeagleBone Black (left) and Odroid-C1
Higher end ARM hacker boards work fine, too, says Canonical, which gives a shout-out to the octa-core Odroid-XU3. The company adds that “For x86, any spare laptop, PC or virtual machine will also serve as a development platform.”
The first products to ship with Snappy include Ninja Blocks’s gesture-controlled Ninja Sphere home automation hub. It also runs on Erle Robotics’s Erle-brain and Erle-Copter which are the first autopilot and drone, respectively, to run APM (ArduPilot) directly on Linux.
Snappy is coming to Ninja Sphere (left) and Erle-Copter
All told, Canonical announced 21 partners, including open-spec SBC projects like Udoo, PCDuino, Parallella, and LeMaker’s Banana Pro. The only listed chip partner is Allwinner, whose processors run on the Banana Pro and PCDuino boards. Also supporting Snappy is the Open Source Robotics Foundation (OSRF), which oversees Robot Operating System (ROS), a popular open source robotics middleware platform that recently announced ARM Linux support.
Additional Snappy for IoT partners include the open source OpenHab home automation framework, as well as IoT frameworks and solutions like Kaa, DeviceHive, IoTSys, Resin.io, and OpenSensors.io. Meanwhile Snappy is said to be interoperable with microcontroller operating systems like Riot-OS. Other associations include “IoT narrow band networking like Nwave; App stores on mobile base stations with Fairwaves; IoT meets Docker with Weave; and environmental tracking robot boats like the Trasibot,” says Canonical.
Snappy app store and other details
The Snappy version of Ubuntu adds a hardware abstraction layer designed to host platform-specific Linux kernels, as well as a web device manager called “WebDM” for consistent booting and app-store access across devices. Snappy is said to be compatible with the cloud versions of Ubuntu Core, which has been around for years, but has seen limited uptake. As a result of this compatibility, “you can start your Kickstarter project with a VM on your favourite cloud and pick your processor when you’re ready to finalise the device,” writes Shuttleworth.
Snappy app store running on a BeagleBone Black
(click image to enlarge; source: Canonical)
Ubuntu Core on the cloud and on devices “present the exact same APIs and receive identical security updates,” claims Canonical. Meanwhile, OwnCloud has published a Snappy version of the OwnCloud app in the Snappy app store, “so any spare PC can be turned into a personal, private and secure file sync and share with Ubuntu Core,” says the company.
WebDM replaces the normal Ubuntu package manager and lets web-based apps run on the device. The technology provides an interface for first-boot, initial set-up, and access and configuration for installed apps from the Snappy app store. It also supplies system and app configuration facilities. Branding and customization features are available to device manufacturers.
If your Snappy device is connected to a cloud based version of Ubuntu Core running as a virtual machine, you can install it using cloud-init, says Canonical. Otherwise, you can use a terminal or SSH session.
The WebDM update mechanism is designed to make updates more convenient while blocking unauthorized updates. “When we update a snappy application we backup all your data before the update and rollback if the update fails for any reason, so your system is never in an incomplete state,” says Canonical. “Updates are guaranteed to succeed every time, and users can rollback to previous versions just as efficiently.”
Snappy’s OS and application files are kept separate as a set of distinct read-only images. They’re also read-only, thereby blocking tampering, says Canonical. Developers can also ensure against tampering with the help of “signatures and fingerprints.” Snappy apps are “confined” by Canonical’s AppArmor kernel security system, “which delivers rigorous MAC-based isolation and human-friendly security profiles,” says the Ubuntu backer.
In an interview with TheNextWeb, Shuttleworth explains how the update mechanism provides the convenience of a smartphone platform while also offering an additional layer of security.
“Every change to the system either succeeds or doesn’t happen — we call that a transactional systems management approach,” Shuttleworth is quoted as saying. “The way we lay the files down on the image is very different and allows us to essentially guarantee that upgrades either succeed or never happen.”
The update mechanism was borrowed almost entirely from Ubuntu Touch, Shuttleworth told TheNextWeb. “The software update mechanism that we built here is entirely a product of the mobile development,” he is quoted as saying. “All of that R&D has happened as part of the mobile effort; what we’ve done here is generalize this to devices that you control through the Web rather than a touchscreen on it.”
The app store adds a new twist that has so far been largely missing from the IoT world. “Ubuntu Core enables our new app store for open robots,” stated Brian Gerkey, CEO of the Open Source Robotics Foundation, in a testimonial quote. “That creates a market for innovation and competition in smart robotics, with apps and updates delivered straight from developers to a new class of open, intelligent robots powered by open platforms and open protocols.”
Shuttleworth introduces Ubuntu Core and Snappy in the video below.
Mark Shuttleworth introduces Ubuntu Core and Snappy
Mobile Linux projects morph from phones to gizmos
Despite its relatively large footprint, Ubuntu has been one of the most commonly used desktop distros on embedded devices even before Ubuntu Core and the subsequent push toward convergence with Ubuntu Touch.
“You’ve probably seen lots of ‘Ubuntu in the wild’ stories, from self-driving cars to space programs and robots and the occasional airport display,” writes Shuttleworth. (Note: links to LinuxGizmos stories are ours.) “I’m excited that we can help underpin the next wave of innovation while also thoughtful about the responsibility that entails.”
In other words, Canonical and its Ubuntu project have never had much control over the way Ubuntu has been used in the embedded devices, even less so than Google has over third-party embedded Android gizmos. Now, it’s aiming to build an ecosystem. After noting that most IoT and embedded devices already run on Linux, Shuttleworth adds that “It’s a hugely fragmented and insecure kind of Linux. Every device has custom ‘firmware’ that lumps together the OS and drivers and devices-specific software, and that firmware is almost never updated. So let’s fix that!” Shuttleworth goes on to write: “Snappy is much better than package dependencies for robust, distributed devices.”
Snappy’s footprint is tidy indeed for a system that can run Ubuntu apps. However, it still leaves room for others, such as Intel (Quark) and Imagination Technologies (MIPS with OpenWRT) to take on the even more resource constrained Linux IoT applications. Below that, of course, there’s a potentially even larger market for RTOS-based IoT endpoints based on ARM microcontrollers.
Direct competitors, meanwhile, include Samsung’s Tizen devices, LG’s WebOS, and even Firefox OS, which is being prepped for IoT duty. Other platforms targeting the same space include Intel’s Yocto Linux on Intel Atom projects. Just as Samsung as refocused Tizen on IoT gizmos more than phones, Ubuntu for Devices (Snappy) may end up having more success as a generic embedded platform.
The other major player is Android, which is a hog on embedded, relatively speaking. Nevertheless, developers continue to squeeze it onto embedded platforms just as they have been doing with Ubuntu for years.
Android Wear reduces the footprint, but is more exclusively focused on smartwatches and wearables than the more advanced robots and automation hubs targeted by Snappy. Is it only a matter of time before Google releases a lightweight version of Android, integrating technology from Android Wear and the Linux-based Nest?
“The open Ninja Sphere controller based on Ubuntu Core is a perfect base for building apps that interact with devices and sensors in your home,” stated Daniel Friedman, CEO of Ninja Blocks.
“Experts and developers often ask me how they can normalize their application environment and have confidence in the security of the system,” stated Jason Kridner, co-founder of BeagleBoard.org. “With a reference design of Snappy on BeagleBone Black, Canonical and BeagleBoard.org have partnered to ensure anyone can build an IoT prototype quickly and affordable, without any barriers to taking their designs to production.”
Snappy is now available as a development release, and will be fully enabled this April in Ubuntu 15.04. More information may be found in the Mark Shuttleworth blog announcement, the Ubuntu Core on Internet Things page, which includes installation procedures for the BeagleBone Black, and the Snappy Ubuntu page, which also covers the cloud version of Snappy.