Port - wersja
programu komputerowego na inną
platformę sprzętową badź programistyczną, zazwyczaj na inną
architekturę procesora lub
system operacyjny. Port powstaje w wyniku przeniesienia już istniejącego
kodu, ogólniej można mówić o
implementacji danego programu na inną platformę.
Porty na różne platformy sprzętowe
Portowanie wiąże się ściśle z przenośnością kodu: im bardziej kod jest niezależny od konkretnej platformy tym łatwiej stworzyć kolejne jego porty. Na przykład
Linux powstał z początku dla procesorów rodziny
x86, ale ponieważ
Linus Torvalds wykorzystał w praktyce fakt, że zasadnicze koncepcje w innych architekturach sprzętowych są dosyć podobne, to do danego typu sprzętu wystarczy dostosowywać tylko niewielką część kodu. Stąd też porty tego systemu można znaleźć dla wielu różnych procesorów (np.
IA-64,
PowerPC czy
MIPS).
Porty aplikacji
Przykładem portu
aplikacji na inny system operacyjny może być pakiet biurowy
OpenOffice.org czy pakiet internetowy
Mozilla, które są dostępne między innymi dla
Microsoft Windows, Linuksa i
Mac OS X.
Porty to także nazwa mechanizmu zarządzania programami w systemach z rodziny
BSD, gdzie system operacyjny jest koncepcyjnie wyraźnie oddzielony od aplikacji.
Pozostałe rodzaje portów
Porty programu do innego
języka programowania zwykle są po prostu osobnymi implementacjami danego programu, choć teoretycznie jeśli dwa języki są do siebie podobne (np.
C i
C++) to można dokonać dostosowania kodu zamiast pisania go od nowa.
Platformą portowania mogą być np.
wirtualne maszyny oraz dowolne kombinacje wymienionych wyżej elementów. Ilustracją tego jest
Python, którego główna implementacja jest napisana w języku C, ale powstały także wersje na
wirtualną maszynę Javy (Jython) oraz na środowisko
.NET, a dokładniej
Common Language Runtime (
IronPython).
Port może polegać także na dostosowaniu do danego środowiska graficznego, jak choćby przeportowanie Mozilli do
KDE, które polegało na wykorzystaniu mechanizmów tego środowiska, między innymi
widgetów.
Portuje się czasem także części z nowszej do starszych serii programu, np.
sterowniki sprzętu pod Linuksem. Są to tzw. backporty, czyli porty wsteczne. Dzięki temu niektóre możliwości nowych wersji można wykorzystać w starszych, ale nadal używanych wersjach programu.