Porting

Porting

In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed (e.g. different CPU, operating system, or third party library). The term is also used in a general way to refer to the changing of software/hardware to make them usable in different environments.

Software is portable when the cost of porting it to a new platform is less than the cost of writing it from scratch. The lower the cost of porting software, relative to its implementation cost, the more portable it is said to be.

Etymology

The term is not generally applied to the process of adapting software to run with less memory on the same CPU and operating system, nor is it applied to the rewriting of source code in a different language (i.e. language conversion or translation).

Software developers often claim that the software they write is "portable", meaning that little effort is needed to adapt it to a new environment. The amount of effort actually needed depends on several factors, including the extent to which the original environment (the "source platform") differs from the new environment (the "target platform"), the experience of the original authors in knowing which programming language constructs and third party library calls are unlikely to be portable, and the amount of effort invested by the original authors in only using portable constructs (platform specific constructs often provide a cheaper solution).

Alternate version: The term 'Port' actually came from "Portage", as in 'to carry a canoe' thereby avoiding an obstacle. Usually the code, like the canoe, would carry the users. When the code is unable to do so, the programmer must carry the code over the obstacle, so that the code can once again carry the users.

History

The number of significantly different CPUs and operating systems used on the desktop today is much smaller than in the past. The dominance of the x86 architecture means that most desktop software is never ported to a different CPU. In that same market, the choice of operating systems has effectively been reduced to three: Microsoft Windows, Mac OS/Mac OS X, and Unix/Linux. However, in the embedded systems market, portability remains a significant issue.

International standards, such as those promulgated by the ISO, greatly facilitate porting by specifying details of the computing environment in a way that helps reduce differences between different standards-conforming platforms. Writing software that stays within the bounds specified by these standards represents a practical although nontrivial effort. Porting such a program between two standards-compliant platforms (such as POSIX.1) can be just a matter of loading the source code and recompiling it on the new platform. However, practitioners often find that various minor corrections are required, due to subtle platform differences. Most standards suffer from "gray areas" where differences in interpretation lead to small variations from platform to platform.

There also exist an ever-increasing number of tools to facilitate porting, such as the GNU Compiler Collection, which provides consistent programming languages on different platforms, and Autotools, which automates the detection of minor variations in the environment and adapts the software accordingly before compilation.

The compilers for some high-level programming languages (e.g. Eiffel, Esterel) gain portability by outputting source code in a high level intermediate language (such as C) for which compilers for many platforms are generally available.

Two activities related to (but distinct from) porting are emulating and cross-compiling.

Porting in gaming

Porting is also the term used when a computer game designed to run on one platform, be it a personal computer or a video game console, is converted to run on a different platform. Earlier video game "ports" were often not true ports, but rather reworked versions of the games. However, more and more video games are now being developed using software that can output code for PCs as well as for one or more consoles. Many early ports suffered significant gameplay quality issues because the hardware of PCs and consoles differed so dramatically.

"Arcade perfect" is a term used to describe video games which have been ported from an arcade version to another platform, such as a console, without any alterations to the game's workings. This means that graphics, sound and gameplay, along with the game's other characteristics, are identical to the arcade version.

ee also

* Console emulator
* List of System Quality Attributes
* Source port
* Write once, compile anywhere
* Poshlib
* Cross-platform


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Porting — Port Port, v. t. [imp. & p. p. {Ported}; p. pr. & vb. n. {Porting}.] [F. porter, L. portare to carry. See {Port} demeanor.] 1. To carry; to bear; to transport. [Obs.] [1913 Webster] They are easily ported by boat into other shires. Fuller. [1913… …   The Collaborative International Dictionary of English

  • porting — /pawr ting, pohr /, n. Auto., Mach. the changing of the size, shape, or location of the intake and exhaust ports in an internal combustion engine, generally to improve performance. [1955 60; PORT4 + ING1] * * * …   Universalium

  • porting — pÉ”rt /pɔːt n. entry point for goods or passengers; city with a port; left hand side (in ships or airplanes); interface for connecting external devices to a computer (Computers); transfer of a program from one platform to another (Computers) n …   English contemporary dictionary

  • porting — /ˈpɔtɪŋ/ (say pawting) noun the ports of a machine collectively. See port4 (def. 3) …   Australian English dictionary

  • porting — noun ( s) Etymology: port (III) + ing : the provision or arrangement of intake or exhaust openings or other ports on an engine …   Useful english dictionary

  • Porting Authorisation Code — (PAC) is a unique identifier (normally 9 characters long and in the format ABC123456 ) used by some mobile network operators to facilitate mobile number portability (MNP). This allows users to retain their mobile telephone number when switching… …   Wikipedia

  • Cylinder head porting — refers to the process of modifying the intake and exhaust ports of an internal combustion engine to improve the quality and quantity of the air flow. Cylinder heads, as manufactured, are usually suboptimal due to design and manufacturing… …   Wikipedia

  • Code porting — means to port computer program written in one programming language to another language. For example, if an original program is written in Visual C under Windows,and if it needs to run in another operating system such as Linux, a code port from… …   Wikipedia

  • Schneurle porting — is a system to improve efficiency on a two stroke engine. The intake and exhaust ports are cut in the cylinder to make the most efficient exchange of intake and exhaust gases during running.Non Schneurle ported engines had a baffle on the top of… …   Wikipedia

  • OpenTV Hardware Porting Kit — Hardware Porting Kit (HPK) is a solution provided by OpenTV to develop Hardware Independent interactive applications for digital Set top Box. This article about television technology is a stub. You can help Wikipedia by expanding it …   Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.