How are the various UBOS images different from each other?

/docs/gears/faq-howto-troubleshooting/faq-how-are-images-different/

UBOS images for containers are identical to those for physical machines, except that they do not run certain services by default which are usually provided by the host (such as for setting the system time).

UBOS images for VirtualBox by default run the VirtualBox client tools, which enables the virtual machine to integrate better with the host system.

The differences between the images on x86_64 are very small; one or two packages installed or not, and a handful of systemctl enable ... calls, so if you already have an image for x86_64, it should be straightforward to use it for physical machine, VirtualBox or containers without needing to download another image.

On ARM platforms, that’s a bit different: while the core code of the image is the same for each major ARM revision, the various ARM physical boards vary quite dramatically in terms of how they boot, or which peripherals they need to know about. So it would be unlikely that you would get an image for one physical ARM board to boot on another. However, the same image works for all virtualized ARM platforms.

The development images have extra packages installed that are useful during development but not in production, such as build tools. They have a preconfigured user account called ubosdev. They also relax security somewhat, such as permitting the installation of local, unsigned packages.