I have attended several IoT conferences, informal meetups, webinars, and podcasts. The most common questions during networking or Q&A sessions revolve around security and interoperability of IoT devices.
These concerns are valid, especially in light of recent Distributed Denial of Service (DDoS) attacks affecting Internet-connected devices.
To build consumer trust, companies in the IoT space—both hardware and software—are heavily investing in R&D to tackle these concerns sustainably.
In one such initiative, Canonical, the company behind Ubuntu, launched Ubuntu Core 16. Also known as Snappy, this is a minimal operating system designed for IoT devices. At its core are secure, remotely upgradeable Linux packages called 'snaps'.
Device Security
Ubuntu Core 16 secures IoT devices by delivering the entire operating system—including kernel, libraries, and applications—as snaps. The OS automatically updates to defend against new threats.
Snaps ensure security and reliability through the following features:
- Read-only
- Tamper-proof
- Digitally signed
- Stored as images
This architecture makes it very difficult to breach devices remotely without physical access.
Being transactional in nature, Ubuntu Core 16 automatically rolls back any failed updates, giving developers the freedom to innovate without compromising system stability.
The system retains multiple updates and selects the healthiest for installation. If an update fails, rollback ensures continuity.
Each Snap includes a meta/snap.yaml
file, where developers can define:
- Security requirements
- Integration details with the system
- Update schedules
This automates the update process, removing the need for human intervention.
Device Interoperability
Ubuntu Core 16 enables snaps to communicate and work together via:
- Interfaces: Bridges between snaps
- Plugs: Consumer snaps requesting services
- Slots: Producer snaps offering services
Snaps Interfaces Example
Plug (Consumer Snap)
name: consumer_snap_name plugs: db: interface: mysql
Slot (Producer Snap)
name: producer_snap_name slots: db: interface: mysql
This setup enables both snaps to share a database. Additionally, snaps can share files with:
- Other snaps from the same vendor
- Community-maintained shared snaps using content-sharing interfaces
Additional Features of Ubuntu Core 16
Compatible with desktops, servers, and devices like Intel Joule, Qualcomm Dragonboard, Samsung Artik, Raspberry Pi2 and Pi3.
- Keeps files compressed and signed using SquashFS blobs, avoiding file scattering across disks.
- Compact OS with an image size of only 350 MB.
- System and application updates use xdelta diffs—only changed code is updated.
- Separation of kernel/device drivers and OS/snaps allows parallel development by different teams.
The term "Ubuntu" originates from Southern Africa and stands for “the belief in a universal bond of sharing that connects all humanity.” While technology can simplify and connect, it must be rooted in ethical principles.
No advanced system can safeguard humanity unless guided by sensible and humane ideologies. Building smart systems begins with building a thoughtful ecosystem of responsible people.