Last year, Canonical introduced Snappy Ubuntu Core, a slim-and-trim version of its flagship Linux distribution, for cloud services seeking a small-footprint way to run Docker and to keep their infrastructure current via Core's updating technology.
Canonical's next move with Core, though, doesn't involve servers or the cloud. Instead, it positions Core as a smart device OS -- a substrate for "internet things [sic], connected devices and intelligent objects," as Canonical puts it.
The plan is to make Ubuntu an OS that avoids a common problem associated with embedded systems: Once put into place, they are rarely upgraded, posing potential security risks. By offering a version of that substrate where updates are part of the plan, Ubuntu Core devices could avoid becoming the bad kind of "immortal" -- devices that are never updated and thus remain vulnerable indefinitely.
That said, the variety of hardware Canonical has in mind for Core reflects only one slice of the IoT world. Ubuntu Core's hardware requirements are billed as at least a 600MHz processor -- either ARMv7 or X86-64 -- 128MB of RAM (with the system itself using 40MB), and at least 4GB of flash storage for "factory reset and system rollback." For context, the second-generation Nest thermostat uses an ARM Cortex A8 processor, 512MB of DRAM, and 2GB of flash storage.
Maarten Ectors, VP of IoT, Proximity Cloud, and Next-Gen Networking for Canonical, further confirmed that "Ubuntu Core will not focus on MIPS or Power processors and neither sensors and [sic] tiny single-purpose devices. Special-purpose solutions will still be needed for them."
Canonical sees opportunities with Ubuntu Core in providing developers with an environment decoupled from the free-floating welter of standards springing up around IoT. "Snappy Ubuntu Core separates hardware from connectivity solutions from software," Ectors wrote in an email. "It is unclear which protocol (e.g. Thread, MQTT, AllJoyn, REST, CoAP, etc.) will become the next standard for IoT communication. Snappy Ubuntu Core makes using different options extremely easy for developers."
Oracle has likewise hyped Java as an IoT platform, largely to leverage the mass of Java developers in the wild for IoT, although it's up against the entrenched mass of C/C++ developers and tools. Canonical could in theory woo a broader developer base by way of Linux, but resolving the standards for interdevice communication and management is more of an immediate issue for developers than what underlying OS is in use. Oracle, ironically enough, seems to be twigging to this, seen in its latest effort to push a set of Java APIs for IoT networking and protocol creation.