IoT Graphics: Mir Release 1.0
by Alan Griffiths on 21 September 2018
The Mir team is pleased to announce the milestone release of Mir 1.0.0. This is the first major release targeted at IoT device makers and enthusiasts looking to build the next-generation of graphical solutions.
Mir is a display server and is used by other projects to draw graphics on the screen. The Mir team have created mir-kiosk, a fully functional kiosk implementation that satisfies many IoT-related use cases: Running a kiosk on Ubuntu Core showcases a set of Qt applications as examples apps you could run on a kiosk.
The fast, open and secure display server
Whether for building a device or for writing a shell for the desktop, Mir can give you a graphics stack that is fast, light, and secure. The Mir graphical stack works across different graphics platforms and driver models and is easy to integrate into your kiosk, digital signage, or purpose built graphical solution. It was first conceived over 6 years ago as part of an initiative by Canonical to unify the graphical environment across all devices, including desktop, TV, and mobile devices and continues to be developed with new features and modern standards.
Applying Mir to the Internet of Things
Many types of device need to provide some sort of graphical output or display to the user. Some examples include digital signage, interactive kiosks, automotive in-car entertainment gateways, smart meters, and the screens seen on everything from washing machines to smart thermostats. All of these need to output graphics to a display but that it is not always easy in an embedded environment.
Linux is one of the most popular OS choices for manufacturers and solution providers to use in IoT devices and with it there are a few options available for graphical environments. From custom software to drive the display, through direct frame buffer access with toolkits such as Qt, to a full X windowing server.
Mir allows device makers to use a well-defined, efficient, flexible, and secure platform for their graphical environment.
Wayland is intended as a simpler replacement for X, easier to develop and maintain…
…Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol.
Historically, graphical user interfaces on the Linux platform have been powered by the X windowing system. X has a long and successful history and it has served the purposes of both system level and application level UI well for more than three decades. However, users nowadays expect a more consistent, integrated and secure user experience than is possible to offer on top of the X windowing system.
The X11 protocol (used by X) was not designed with security in mind and a malicious application can obtain information from other running X11 applications. For instance X11 servers do not protect sensitive information like keystrokes between applications using them.
Mir has been designed from the ground-up with security in mind. To meet the needs of today’s users, Mir avoids the X11 protocol and uses Wayland. Each application talks exclusively to the Mir server through its own connection that is both secure and robust against attack. Wayland is the de facto successor to X11 and is designed to address the problems that have proved intractable with the X windowing system.
Applications that can use Wayland directly and will work with Mir include those built with GTK3/4, Qt5 and SDL2.
For more about developing graphical snaps for IoT applications, including tutorials for creating your own snaps, see: mir-kiosk: a project that uses Mir
Developers using Mir will find it packaged and available on Ubuntu, Fedora, Arch and (soon) Debian. The latest Mir release is available for all supported Ubuntu series from the Mir team’s “release PPA”:
sudo apt-add-repository --update ppa:mir-team/release
Mir’s website is: https://mir-server.io/