Software distribution is the process of delivering software to the end user.
A distro is a collection of software components built, assembled and configured so that it can essentially be used "as is". It is often the closest thing to turnkey form of free software. A distro may take the form of a binary distribution, with an executable installer which can be downloaded from the Internet. Examples range from whole operating system distributions to server and interpreter distributions (for example WAMP installers). Software distribution can also refer to careware and donateware.
In recent years, the term has come to refer to nearly any "finished" software (i.e. something that is more or less ready for its intended use, whether as a complete system or a component of a larger system) that is assembled primarily from open source components.
Examples of software distributions include BSD-based distros (such as FreeBSD, NetBSD, OpenBSD, and DragonflyBSD) and Linux-based distros (such as openSUSE, Ubuntu, and Fedora).
Technical support is a key issue for end-users of distributions, since the distribution itself is typically free and may not be "owned" in a commercial sense by a vendor. Depending on the distribution, support may be provided by a commercial support vendor, the developers who created the distribution or by the user community itself.
GNU Autotools are widely used for which consist of source files written in C++ and the C programming language, but are not limited to these.
Distribution of software to small mobile devices such as phones, PDAs and other hand-held terminals is a particular challenge due to their inconsistent connection to the Internet. Some tools that cater to this category of devices are: