Portable application

From Wikipedia, the free encyclopedia

A USB drive, shown with a 24 mm US quarter coin for scale.
A USB drive, shown with a 24 mm US quarter coin for scale.

A portable application, or portable app for short, is a software program that does not require any kind of formal installation onto a computer's permanent storage device to be executed, and can be stored on a removable storage device such as a CD-ROM, USB flash drive, flash card, or even a floppy disk, enabling it to be used on multiple computers. This does not mean that it can be taken and used on a different operating system, processing platform, or another computer with completely different hardware (i.e., those that are not compatible with the software as stated by its requirements), so it is not to be confused with the concept of software portability, which is the ability for software to be run or compiled with little modification on diverse computing platforms. Ideally it can be configured to read its configuration files from the same storage location as the software program files.

Another term sometimes used for portable applications is standalone.

Contents

[edit] Portable Macintosh applications

Many programs for the Macintosh OS X have an inherent degree of portability as they are packaged as "drag-install" application bundles, rather than as Installer packages. However, many applications bundles are not truly portable as they store their preferences in files on the local disc where the OS is installed. Macintosh applications in the below list (and others designed to be portable) store their preferences in the drive they are being run from.

[edit] Portable Windows applications

Most software for Microsoft Windows is not designed to be portable. The Windows registry, the way that .dll libraries are managed, and the structure of the Windows Installer all tend to make application installation a one-way event. Mainstream applications like Adobe Photoshop and Microsoft Word, for example, use the registry intensely, and store state information all over the file system, although software authoring guidelines suggest using the registry for settings and the user's profile (in the "My Documents" or "Documents and Settings" folders) for larger files dependent on a specific installation or the user's habits.

In order to make portable applications, software developers must make their software applications leave the computer they run on completely "clean". This means that the application cannot use the registry, nor store its files anywhere on the machine other than in the application's installation directory. It would obviously be very difficult to change an existing Windows application to use this approach (and moreover, doing so would be against Microsoft's application certification requirements).

A technical strategy does exist for achieving application portability within Windows, without requiring application source code changes. By using virtualization, an application can be "buffered" with DLLs that would intercept all file system and registry calls. This virtualization layer would intercept all non-portable calls, and would direct output to files located in the application's installation directory. This approach would leave the application unchanged, yet portable. It is believed that this technique has been used by Windows software vendors making their own products portable. It is unclear whether a general solution is or will be available for making a third-party vendor's software portable.[citation needed]

[edit] Double portability

There is a very restricted category of software that can support a sort of double portability, being both stand alone and cross-platform compatible, able to run on different hardware with little or no modifications, perhaps with minor restrictions. One such software is SymbOS, whose main modules can in their present form be executed on both Amstrad CPC and MSX machines without modification. Only some of its bundled applications are hardware-dependent. To a much lesser extent, Macintosh fat binary applications could be considered as cross-platform, but not always truly portable.

[edit] Property, or feature?

For certain classes of software tools and utilities, being fully portable is not only a convenient feature as much as a vital property, such as in the case of e.g. system/data recovery or diagnostic utilities, which have to be entirely stand-alone and self-sufficient when executed.

In the earlier days of home and personal computing, where software typically resided on and was executed from a single floppy disk (usually with only one program per disk) the concept of "portable application" was an inherent property of the software itself, not something requiring specific engineering.

While entirely portable programs can still be designed today regardless of their size or complexity (with extreme cases being the so-called LiveDistros containing whole operating systems such as Suse Linux), user demand for features such as easy uninstallation and integration with other programs' menus made some kind of installation or at least "registering" with the operating system a necessity.

Many older Windows 3.1 applications, as well as some poorly designed MS-DOS ones, fell somewhere halfway between the portable and unportable category, as "installation" was usually little more than a file copying operation in a specific directory (or even a floppy disk), but certain data was implicitly stored in the user's Windows directory or another arbitrary hardcoded directory, thus rendering the user settings non-portable, or at least not readily portable with the rest of the program.

[edit] See also

[edit] External links

  • Portable Freeware - Also lists applications that are not portable, but can be made portable.
  • TinyApps - Specializes in small applications. Portable applications are marked with a "+".
  • featherOffice - Softwares for your USB key (English, Spanish and French)