Convergence is the term used by Ubuntu developers to refer to the concept of having a single computer operating system running everywhere, across the spectrum from embedded IOT controllers through mobile devices and desktops into the server room to include cloud instances and racktop switches.
Desktop convergence refers to the effort by Ubuntu developers to converge the graphical and underlying systems software used on mobile devices (phones and tablets) and desktops (including laptops).
Properly convergent software has the following properties.
- Built from a single codebase for all target systems and architectures.
Provides a single set of binary packages across systems, per architecture, or a fat package with binaries for all architectures.
- Dynamically adapts to the presents or absence of input and output hardware, including but not limited to physical keyboards, mouses, touchscreens, and external displays such as monitors or projectors.
- Is designed to be sensitive to dynamic constraints caused by situations such as low memory and reduced power supply. This usually means the application needs to be designed with the idea that it could be killed or suspended at any time.