Main Page | See live article

Porting

In computer programming, porting is a translation of a piece of software to a particular API, operating system, hardware, or generally any other computing environment than that for which it was originally written.

To port software is to edit it so that it can be compiled or otherwise run on that platform. This process may be extremely easy, requiring few (if any) tweaks to the code, or it may involve a lengthy and extensive rewrite.

Among common obstructs in porting are difference in endian and lack of particular hardware features such as floating-point number operation.

Portability describes the relative ease of porting process, which is one important goal in software engineering. It is dependent on the way a program is written, as well as the programming language used. The data compression programs zip and unzip are often held to be amongst the most portable and most ported, due to being a simple front end to a mathematical algorithm. Another more complicated but highly portable program is VIM, or Vi IMproved: available in MS-DOS, Win16, Win32 (in graphical and text-only modes), MacOS 7/8/9.x and Mac OS X, BeOS and pretty much any flavour of Unix.

There are many tools and schemes to ease porting, particularly in UNIX community (called package management systems). Among them are GNU autoconf with automake, ports of NetBSD, RPM of Red Hat and Fink of MacOS X.