Portování softwaru

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 3. prosince 2021; kontroly vyžadují 2 úpravy .

Portování ( anglicky  porting [1] ) - v programování se portováním rozumí přizpůsobení nějakého programu nebo jeho části tak, aby fungoval v jiném prostředí , odlišném od prostředí, pro které byl původně napsán s maximálním zachováním jeho uživatele. vlastnosti. To je hlavní rozdíl mezi koncepty port a fork  – v prvním případě se snaží zachovat všechny uživatelské vlastnosti balíčku a ve druhém jde o nezávislý vývoj založený na společném základě s novými užitnými vlastnostmi.

Proces portování se také nazývá portování a výsledek se také nazývá port . Ale v každém případě je hlavním úkolem při portování zachovat známé uživatelské rozhraní a způsoby práce s balíčkem a jeho vlastnostmi. Přidání nových nebo odstranění některých existujících vlastností při portování softwarových produktů není povoleno.

Přenositelnost (přenositelnost, angl.  portability ) obvykle označuje jednu ze dvou věcí:

  1. Přenositelnost - kompilace kódu (obvykle do nějakého mezikódu , který je pak interpretován nebo zkompilován za běhu , "za běhu", angl.  Just-In-Time [2] ), poté jej spouštět na více platformách bez jakýchkoliv změn.
  2. Přenositelnost je vlastnost softwaru, která popisuje, jak snadno lze tento software přenést. Jak se operační systémy, jazyky a programovací techniky vyvíjejí, je snazší přenášet programy mezi různé platformy. Jedním z původních cílů vytvoření jazyka C a standardní knihovny tohoto jazyka byla možnost snadného portování programů mezi nekompatibilními hardwarovými platformami. Další výhody z hlediska přenositelnosti mohou mít programy, které splňují speciální standardy a pravidla pro zápis (viz například: Smart Package Manager ).

Potřeba portování obvykle vzniká kvůli rozdílům v instrukční sadě procesoru , rozdílům mezi způsoby interakce operačního systému a programů ( API  - Application Program Interface), zásadním rozdílům v architektuře výpočetních systémů nebo kvůli některým nekompatibilitám popř. i úplná absence použitého programovacího jazyka.v cílovém prostředí.

Mezinárodní standardy (zejména ty propagované ISO ) značně usnadňují portování [3] tím, že popisují prostředí provádění programů takovým způsobem, že rozdíly mezi platformami jsou minimální. Portování programů mezi platformami, které implementují stejný standard (jako je POSIX .1 ), často spočívá v rekompilaci programu na nové platformě.

Existuje také stále se rozšiřující sada nástrojů pro usnadnění portování, jako je GCC , který poskytuje konzistentní programovací jazyk napříč platformami.

Některé programovací jazyky na vysoké úrovni ( Eiffel [4] , Esterel ) dosahují přenositelnosti překladem zdrojového kódu do středního jazyka , který má kompilátory pro mnoho procesorů a operačních systémů.

Termín porting je často aplikován na počítačové hry , jmenovitě proces portování počítačové hry z její původní cílové platformy ( osobní počítač nebo herní konzole ) na jinou platformu. Rané porty videoher byly v podstatě výsledkem velkých nebo úplných přepisů softwaru, ale stále více moderních her se vyvíjí pomocí softwaru, který dokáže generovat kód jak pro počítače, tak pro jednu nebo více videoherních konzolí.

Pokud jde o videohry, port lze také nazvat vylepšeným modernizovaným enginem, který nahrazuje spustitelné soubory hry a pro svůj provoz vyžaduje původní zdrojové soubory hry. Takové porty nejsou nutně vyrobeny pro softwarovou a hardwarovou kompatibilitu – často je cílem rozšířit možnosti hry, brzděné zastaralým primitivním enginem.

V závislosti na tom, k čemu byl ten či onen software původně vyvinut , se nazývá nativní nebo portovaný. Nativní ( anglicky  native [5] ) software je vyvíjen okamžitě pro příslušnou platformu ( hardware a/nebo operační systém). Portovaný ( eng.  ported ) software je vyvinut pro některé platformy a poté převeden do práce na jiných platformách.

Příklady

Viz také

Poznámky

  1. port - definice portu v angličtině z Oxfordského slovníku . Získáno 14. července 2016. Archivováno z originálu 25. července 2016.
  2. Towards Intelligent Engineering and Information Technology Archived 21. března 2013 na Wayback Machine Kapitola 6.3 Java: „Hlavní výhodou použití bajtového kódu je portování… JIT kompilace a dynamická rekompilace umožňují programům Java přiblížit se rychlosti nativního kódu bez ztráty přenositelnosti“
  3. Donald A. Levine. POSIX Programmer's Guide. Psaní přenosných unixových programů pomocí standardu POSIX.1 Archivováno 21. března 2013 na Wayback Machine // O'Reilly, 1991-1994 "IEEE Std 1003.1-1988, běžně známé jako POSIX... Když aplikace dodržují pravidla POSIX, je snazší přesun programů z jednoho operačního systému vyhovujícího POSIXu do druhého"
  4. Bertrand Meyer. Přístupy k přenositelnosti Archivováno 26. dubna 2012 na Wayback Machine // JOOP (Journal of Object-Oriented Programming), sv. 11, č. 6, červenec-srpen 1998, strany 93-95. „Všechny současné Eiffelovy kompilátory kromě jednoho… používají C jako svůj prostřední jazyk. … Ukázalo se, že tato technika nabízí klíčové výhody: Záruka přenositelnosti“ a další
  5. nativní software Archivováno 7. května 2012 na Wayback Machine A Dictionary of Computing, 2004
  6. Spencer Kimball a Peter Mattis. Readme (txt)  (downlink) (11. února 1996). Získáno 23. března 2008. Archivováno z originálu 17. února 2011. Balíček GIMP 0.54 z roku 2006, viz README: "GIMP byl testován (a vyvinut) na následujících operačních systémech: Linux 1.2.13, Solaris 2.4, HPUX 9.05, SGI IRIX"
  7. William von Hagen. Ubuntu Linux Bible: Featuring Ubuntu 10.04 LTS Archivováno 21. března 2013 v kapitole Wayback Machine "Použití GIMPu" na straně 14-35
  8. Program pro manipulaci s obrázky GNU. Uživatelský manuál. Příloha A. Historie GIMPu 2. Rané dny GIMPu Archivováno 2. února 2012 na Wayback Machine „Hlavními výhodami programování byly nové sady nástrojů GTK (GIMP Toolkit) a gdk (GIMP Drawing Kit), které eliminovaly spoléhání se na Motif“
  9. Archiv jádra Linuxu byl archivován 21. srpna 2011. : Ačkoli byl Linux původně vyvinut pro 32bitové x86 PC ( od 386), dnes také běží na (alespoň) následujících architekturách: Alpha AXP, Sun SPARC, Motorola 68000, PowerPC, ARM, Hitachi SuperH, IBM S/ 390 , MIPS, HP PA-RISC, Intel IA-64, AMD x86-64, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa a Analog Devices Blackfin; pro mnoho z nich v 32bitové i 64bitové verzi. (Ačkoli byl původně vyvinut nejprve pro 32bitové počítače s procesorem x86 (386 nebo vyšší), dnes Linux také běží na (alespoň) Alpha AXP, Sun SPARC, Motorola 68000, PowerPC, ARM, Hitachi SuperH, IBM S/390, Architektury MIPS, HP PA-RISC, Intel IA-64, AMD x86-64, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa a Analog Devices Blackfin; pro mnoho z těchto architektur v obou 32bitové a 64bitové varianty)

Literatura