0

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.

2
  • This lacks context; what do you mean with "something that is very specific"?
    – Renan
    Dec 4, 2012 at 20:25
  • Specific as in used for a single purpose or reason ?
    – Simon
    Dec 4, 2012 at 20:27

4 Answers 4

1

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).

8
  • So the person who ports it to Mac, is a different person to whom developed the Windows version?
    – Simon
    Dec 4, 2012 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, 2012 at 20:36
  • If its another developer, does he have to ask the permission of the original developer?
    – Simon
    Dec 4, 2012 at 20:37
  • 1
    Not that much; porting IS producing a version for the other OS (as opposed to emulation).
    – Renan
    Dec 4, 2012 at 20:40
  • 1
    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, 2012 at 2:04
4

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).

Examples:

  • …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.

1
  • 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, 2012 at 20:33
1

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?

0
1

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.

2
  • Is it done by someone other than the original developer?
    – Simon
    Dec 4, 2012 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. Dec 4, 2012 at 21:06

You must log in to answer this question.

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