Jump to content

Portable application

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 203.36.107.146 (talk) at 21:41, 26 January 2010 (completely irrelevant to the topic). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A USB drive can carry portable applications, and they can run directly from it

A portable application (portable app) is a computer software program that is able to run independently without the need to install files to the system it is run upon. They are commonly used on a removable storage device such as a CD, USB flash drive, flash card, or floppy disk. Portable apps should not be confused with software portability where software allows its source code to be compiled for different computing platforms. Portable applications can be run on any computer system with which they are compatible but typically require a specific operating system such as Microsoft Windows XP or above, certain version of a Linux distro, etc.

Portable software is typically designed to be able to store its configuration information and data on the storage media containing its program files.

To certain operating systems such as AmigaOS, the concept of portable application has no use at all because all applications are portable by definition. Depending on the operating system, portability is more or less complex to implement.

Portable Windows applications

A portable application does not leave its files or settings on the host computer. Typically this means that the application does not write to the Windows registry or store its configuration files (such as an INI file) in the user's profile; instead, it stores its configuration files in the program's directory. Another requirement is that file paths can change on changing computers, at least drive letter is different for most of systems, this means that application should store file paths in relative format. While some applications have options to support this behaviour, many programs are not designed to do this. A common technique for such programs is the use of a launcher program to copy necessary settings and files to the host computer when the application starts and move them back to the application's directory when it closes.

An alternative strategy for achieving application portability within Windows, without requiring application source code changes, is application virtualization: An application is "sequenced" or "packaged" against a runtime layer that transparently intercepts its file system and registry calls, then redirects these to other persistent storage without the application's knowledge. This approach leaves the application itself unchanged, yet portable.


The same approach [1] is used for individual application components: run-time libraries, COM components or ActiveX, not only for the entire application. As a result, when individual components are ported in such manner they are able to be: integrated into original portable applications, repeatedly instantiated (virtually installed) with different configurations/settings on the same operating system (OS) without mutual conflicts. As the ported components do not affect the OS-protected related entities (registry and files), the components will not require administrative privileges for installation and management.

Microsoft saw the need for an application-specific registry [2] for its Windows operating system as far back as 2005. It eventually incorporated some of this technology, using the techniques mentioned above, via its Application Compatibility Database [3] using its Detours [4] code library, into Windows XP. It did not, however, make any of this technology available via one of its system APIs.

See also

References