Lably
Skip to content

Software portability

Ability of a program to run on different platforms with little alteration

  • 4 min read
  • 2 chapters
This is a photo I have taken of my public domain portable game MicroTD running on different hardware platforms (laptop, ESPBoy, Gamebuino META, Pokitto, Arduboy, Ringo, Nibble).
Drummyfish · CC0

Related on Lably

Through Abstraction (computer science), Compiler and Operating system

Strategies

Software portability may involve:

  • Transferring installed program files to another computer of basically the same architecture.
  • Reinstalling a program from distribution files on another computer of basically the same architecture.
  • Building executable programs for different platforms from source code; this is what is usually understood by "porting".

Similar systems

When operating systems of the same family are installed on two computers with processors with similar instruction sets it is often possible to transfer the files implementing program files between them.

In the simplest case, the file or files may simply be copied from one machine to the other. However, in many cases, the software is installed on a computer in a way which depends upon its detailed hardware, software, and setup, with device drivers for particular devices, using installed operating system and supporting software components, and using different drives or directories.

In some cases, software, usually described as "portable software", is specifically designed to run on different computers with compatible operating systems and processors, without any machine-dependent installation. Porting is no more than transferring specified directories and their contents. Software installed on portable mass storage devices such as USB sticks can be used on any compatible computer on simply plugging the storage device in, and stores all configuration information on the removable device. Hardware- and software-specific information is often stored in configuration files in specified locations such as the registry on Windows).

Software which is not portable in this sense must be modified much more to support the environment on the destination machine.

Different processors

As of 2011 the majority of desktop and laptop computers used microprocessors compatible with the 32- and 64-bit x86 instruction sets. Smaller portable devices use processors with different and incompatible instruction sets, such as ARM. The difference between larger and smaller devices is such that detailed software operation is different; an application designed to display suitably on a large screen cannot simply be ported to a pocket-sized smartphone with a tiny screen even if the functionality is similar.

Web applications are required to be processor independent, so portability can be achieved by using web programming techniques, writing in JavaScript. Such a program can run in a common web browser. Such web applications must, for security reasons, have limited control over the host computer, especially regarding reading and writing files. Non-web programs, installed upon a computer in the normal manner, can have more control, and yet achieve system portability by linking to portable libraries providing the same interface on different systems.

Sign in to keep reading

One more chapter is free with a Lably account.

More in Computing and communication