Embedded Linux devices are very fragmented in their design and implementation. At the basic level, they all have the following components:
Applications implement the primary functions of a device; they are ultimately what makes the end user benefit from using the device. Therefore, they are the most frequently updated software stack to fix bugs and to add new features. They could also be updated as part of the root filesystem, also referred to as system updates, but it is preferred to be placed in a separate filesystem. This enables targeted application-level updates, which can be just a few kilobytes in size (compared to potentially hundreds of megabytes for root filesystem-level updates), with much lower bandwidth usage, faster updates and more frequent deployments.
Mender uses a framework called Update Modules to enable application-based updates and comes with support for these types of updates out-of-the-box:
Today Debian is one of the most popular operating systems for connected devices. For users who don’t want the extra overhead and complexity associated with containers, updating Debian based systems often is as simple as updating a new version of a software package, or simply copy over new versions of specific files.
Learn more in this tutorial on how to use Deb Update Module in Mender to update a Debian package using a Raspberry Pi 3.