Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What exactly is meant by the term "porting" and is it something that is very specific ?

For example :

If a piece of software is available for one OS, but not on another, a developer might "port" that piece of software so that it operates on the other OS.

share|improve this question
This lacks context; what do you mean with "something that is very specific"? – Renan Dec 4 '12 at 20:25
Specific as in used for a single purpose or reason ? – Simon Dec 4 '12 at 20:27
up vote 1 down vote accepted

Porting is the procedure of adapting software so that it runs on a new computer platform (e.g. different processor or different operating system).

An example case would be porting a Windows-only program to run on Linux or on a Mac. Most software today is designed to be easily portable between different platforms (e.g. use libraries that are available everywhere).

It can either be done by the software developer or by another developer, as long as they have the source code available (not counting questionable ways like reverse engineering - which might not be porting in the strict sense).

share|improve this answer
So the person who ports it to Mac, is a different person to whom developed the Windows version? – Simon Dec 4 '12 at 20:36
@Simon it might either be the original developer/development company or another developer with access to the source code. – Renan Dec 4 '12 at 20:36
If its another developer, does he have to ask the permission of the original developer? – Simon Dec 4 '12 at 20:37
Not that much; porting IS producing a version for the other OS (as opposed to emulation). – Renan Dec 4 '12 at 20:40
Yes you need permission; but in the vast majority of open source software, you don't need to actually "ask" for it - it was granted to you as part of the license. – ckhan Dec 5 '12 at 2:04

Usually it means "to make a program work in a different environment than it was originally written for" (sometimes even by rewriting it in a different language).


  • …port an iPhone app to Android;
  • …port a Java program to Python;
  • …port a Wii game to Xbox;
  • …port a Windows-only program to Linux;

Likely derived from "portable": a program that can be made to work on different systems without much effort; one that doesn't depend on OS-specific functions (or one that has the usage of such functions clearly separated). See Portability of C Programs and the UNIX System for an example of this term.

Related term "backport": to make a program or feature work in older systems than it was originally written for.

share|improve this answer
This was my understanding. I've only heard it in the context of a piece of Windows software being ported so that it works on an Apple Mac. – Simon Dec 4 '12 at 20:33

Porting is transferring or transitioning, generally. It could mean moving from one system to another or it could be taking an existing software (i.e.: Android App) and making that software work on a different platform (i.e.: making that Android App work on iOS.)

This answer your question?

share|improve this answer
Thankyou very much – Simon Dec 4 '12 at 20:42

It usually refers to making changes to the source code and make files for an existing piece of software that has been set up for one machine or operating system so that you can build a version for a different machine or operating system. It's usually more than just recompiling.

share|improve this answer
Is it done by someone other than the original developer? – Simon Dec 4 '12 at 20:34
Either. Sometimes it's done by the original developer (e.g., when I first ported my Hamilton C shell from OS/2 to Windows NT in 1992) and sometimes (especially in the open source world) by others. The quality of the result of any sort of porting activity generally depends on how closely the new machine or OS resembles the current and also, just how much work you're willing to do, including how much you're willing to change what the user experiences to fit the new environment. If you're willing to rewrite enough code, you can get anything you want. – Nicole Hamilton Dec 4 '12 at 21:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .