So much for the theory. In the last two sections of this chapter I want to demonstrate the principles I have talked about so far with examples of software update working in practice. As the basis of the example I will be using Mender. Mender uses a symmetric A/B image update mechanism, with fall-back in the case of a failed update. It can operate in a standalone mode for local updates, or in managed mode for OTA updates. I will begin with the standalone mode.
Mender is written and supported by mender.io (https://mender.io). There is much more information about the software in the documentation section of the web site. I will not delve deeply into the configuration of the software here, since my aim is to illustrate the principles of software update.