| • Science | • People | • Locations | • Timeline |
Porting is usually required because of differences in the central processing unit, operating system interfaces, different hardware, or because of subtle incompatibilities in—or even complete absence of—the programming language used on the target environment.
Portability is a property of software that is easy to port. As operating systems, languages, and programming techniques evolve, software becomes increasingly simple to port between environments. One of the original objectives of the C programming language and the standard C library, for instance, was to ease porting of software by providing a common API to different and otherwise incompatible computing hardware.
International standards, such as those promulgated by ISO, greatly facilitate porting because they specify the details of the computing environment in a way that vary very little among platforms. Often, porting software between two platforms that implement the same standard (such as, for instance, POSIX.1), is simply a matter of recompiling the program on the new platform.
There also exists an increasing number of tools to facilitate porting, such as GCC which provides consistent programing languages on different platforms, and autoconf which automates the detection of minor variations in the environment and adapts the software accordingly before compilation.
Two activities related to, but distinct from, porting are emulating and cross-compiling .
Porting is also the term used when a computer gameA computer game is any sort of game that is played using a computer. General Although often associated, computer games are not necessarily video games although all but the earliest video games (such as Pong, which used dedicated analogue circuitry) are co designed to run on one platform, be it a personal computerThe term personal computer or PC has three meanings: IBM's range of PCs that led to the use of the term see IBM PC. A generic term used to describe all microcomputers (mentioned here). A generic term sometimes used to describe a computer based on IBM's or or video game consoleA video game console is a dedicated electronic device designed to play video games. Often the output device is a separate television or a computer monitor. Once, video game consoles were easily distinguishable from personal computers: consoles used a stan, is converted to run on another platform. Earlier video gamescreenshot of Tetris for the Nintendo Game BoyA video game is a game played using an electronic device with a visual display. Overview Often "video game" is taken in a narrow sense to mean those games played on consoles for television and similar handheld ports were not true ports but rather complete rewrites, but more and more video games are developed using editing software which can output code for PCs as well as one or more consoles. Many early ports suffered from bad quality because the hardware of PCs and consoles differed greatly.
See also: LinuxismA Linuxism is a term used colloquially in software development circles when considering porting software from the Linux operating system to other Unix or Unix-like operating systems. Generally it refers to software patterns or practices that depend on idi