Seshan's Blog
keyboard_backspaceBack to PostsThe IoT Christmas Tree ft. Ubuntu Core
December 8, 2018
It’s that time of year… and so the Christmas Tree makes a return once again.

Notice anything interesting? Let’s take a closer look…

It’s a Raspberry Pi! Okay, I’ll just say it right now, the tree has nothing to do with the Raspberry Pi.
If we look under the tree:

This Raspberry Pi is running Ubuntu Core with the chromium-mir-kiosk
snap. What is Ubuntu Core you ask? It’s actually pretty neat.
Basically Ubuntu Core is a minimal version of Ubuntu designed for IoT
and Embedded applications. The whole system is based around
snaps (aka. Snappy). A snap is a little self contained application
bundle, that runs isolated (aka in a container) from the rest
of the system. If you use a recent version of Ubuntu, then some of your
applications are already bundled as snaps!
Unlike standard Ubuntu though, the whole system is snaps, including the
kernel. Also, the rootfs is read-only. All of this
makes Ubuntu Core really well suited for embedded applications. In my
case, I have Ubuntu Core running the web kiosk demo. Basically it’s
just Chromium running in a snap, displaying a countdown until Christmas.
Another interesting feature of snaps is interfaces.
Basically, by default a snap has no connections to the rest of the
system, and is completely isolated. Interfaces allow snaps to
communicate with each other using a concept of plugs and slots. For
example, the web kiosk demo has two main slots: a Wayland slot and
PulseAudio slot.
The Wayland slot is “plugged into” by the mir-kiosk snap, which is
running as a Wayland display server. The PulseAudio slot is plugged into
by, well, the
PulseAudio snap, providing audio.
So yea, Ubuntu Core and snaps, two pretty cool technologies. Ubuntu Core
seems to be a good fit for all sorts of IoT and Embedded applications
(much better than
say Windows :P).
Also! If you guys want a super-fancy (not really) interface for your own IoT Tree, you can check mine out here.
ID: 39