Szoftver portolás
Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. december 3-án felülvizsgált
verziótól ; az ellenőrzések 2 szerkesztést igényelnek .
Portolás ( angolul porting [1] ) - a programozásban a portolás alatt valamilyen program vagy annak egy részének adaptálását értjük, hogy az más környezetben működjön, amely különbözik attól a környezettől, amelyre eredetileg írták, a felhasználó maximális megőrzésével tulajdonságait. Ez a fő különbség a port és a fork fogalma között - az első esetben a csomag összes felhasználói tulajdonságát igyekeznek megőrizni, a másodikban pedig egy közös alapon, önálló fejlesztésről van szó, új hasznos tulajdonságokkal.
A portolás folyamatát portolásnak is nevezik , az eredményt pedig portnak is nevezik . De mindenesetre a portolás során a fő feladat az ismerős felhasználói felület és a csomaggal és tulajdonságaival való munkavégzés módszereinek megőrzése. Új tulajdonságok hozzáadása vagy egyes meglévő tulajdonságok törlése szoftvertermékek hordozásakor nem megengedett.
A hordozhatóság (hordozhatóság, angol hordozhatóság ) általában két dolog egyikére utal:
- Hordozhatóság - kód összeállítása (általában valamilyen köztes kódba , amelyet aztán futás közben értelmeznek vagy lefordítanak , "on the fly", eng. Just-In-Time [2] ), majd változtatások nélkül futtatják több platformon.
- A hordozhatóság a szoftver olyan tulajdonsága, amely leírja, hogy a szoftver milyen könnyen hordozható. Az operációs rendszerek, nyelvek és programozási technikák fejlődésével egyre könnyebbé válik a programok különböző platformok közötti portolása. A C nyelv és a szabványos könyvtár létrehozásának egyik eredeti célja az volt, hogy könnyen lehessen portolni a programokat nem kompatibilis hardverplatformok között. A hordozhatóság szempontjából további előnyökkel járhatnak olyan programok, amelyek megfelelnek az írásra vonatkozó speciális szabványoknak és szabályoknak (lásd például: Smart Package Manager ).
A portolás szükségessége általában a processzor utasításkészletének különbségei, az operációs rendszer és a programok interakcióinak ( API - Application Program Interface) közötti eltérések, a számítástechnikai rendszerek architektúrájának alapvető különbségei, illetve egyes inkompatibilitások, ill. akár a használt programozási nyelv teljes hiánya is.a célkörnyezetben.
A nemzetközi szabványok (különösen az ISO által támogatottak ) jelentősen megkönnyítik a portolást [3] azáltal, hogy a programok végrehajtási környezetét úgy írják le, hogy a platformok közötti különbségek minimálisak legyenek. A programok ugyanazt a szabványt megvalósító platformok (például POSIX .1 ) közötti portolása gyakran a program újrafordítását jelenti az új platformon.
A portolás megkönnyítésére folyamatosan bővülő eszközkészlet is létezik, mint például a GCC , amely konzisztens programozási nyelvet biztosít a platformok között.
Egyes magas szintű programozási nyelvek ( Eiffel [4] , Esterel ) úgy érik el a hordozhatóságot, hogy a forráskódot olyan köztes nyelvre fordítják , amely számos processzorhoz és operációs rendszerhez
rendelkezik fordítókkal .
A portolás kifejezést gyakran használják számítógépes játékokra , nevezetesen arra a folyamatra, amikor egy számítógépes játékot az eredeti célplatformról ( személyi számítógép vagy játékkonzol ) átvisznek egy másik platformra. A korai videojáték-portok alapvetően jelentősebb vagy teljes szoftver-újraírások eredményeként születtek, de egyre több modern játékot fejlesztenek olyan szoftverek segítségével, amelyek képesek kódot generálni számítógépekhez és egy vagy több videojáték-konzolhoz is.
A videojátékok tekintetében a portot továbbfejlesztett modernizált motornak is nevezhetjük, amely lecseréli a játék futtatható fájljait, és működéséhez az eredeti játékerőforrás-fájlokra van szükség. Az ilyen portok nem feltétlenül szoftver- és hardverkompatibilitásra készültek – gyakran a játék lehetőségeinek bővítése a cél, amit egy elavult primitív motor hátráltat.
Attól függően, hogy ezt vagy azt a szoftvert eredetileg mire fejlesztették ki , natívnak vagy portáltnak nevezik. A natív ( angol nyelvű [5] ) szoftvert azonnal fejlesztik a kérdéses platformra ( hardverre és/vagy operációs rendszerre). A portolt ( eng. ported ) szoftvert egyes platformokra fejlesztik, majd áthelyezik más platformokon való munkára.
Példák
- OS Linux 1.2 GNU környezettel , Solaris 2.4, HPUX 9, SGI IRIX , A GIMP grafikus szerkesztő natív [6] , és például Windows , Mac OS X [7] , a BSD UNIX család operációs rendszere – FreeBSD/OpenBSD /NetBSD, DEC UNIX (DEC Ultrix , DEC OSF/1 )/Tru64UNIX és számos más UNIX rendszer, az egyéni tulajdonságainak megőrzése mellett lett áthelyezve. A portolás során kifejlesztették a GTK (GIMP Toolkit) és a gdk (GIMP Drawing Kit) grafikus könyvtárakat, amelyek lehetővé tették a GIMP használatát a Motif könyvtár jelenlététől függetlenül . [nyolc]
- Magát a Linux operációs rendszert rengeteg hardverplatformra portolták . [9]
- A World of Goo logikai játékot először Wii -re és Windowsra adták ki, majd áthelyezték Mac OS X -re és Linuxra.
- A Quake 2 jól működik a Windows modern verziói alatt, de vannak hozzá portok, amelyek az eredeti motort egy fejlettebbre cserélik.
- A Max Payne , a GTA 3 , a GTA Vice City és a GTA: San Andreas mobilplatformokra ( Android , iOS ) került portolásra. Ráadásul a teljes Grand Theft Auto sorozatot eredetileg konzolokra hozták létre, majd (javított grafikával) Windows PC-re portolták át.
- Hasonló a helyzet az olyan kultikus játékokkal, mint a Half-Life és a Counter-Strike : számukra megjelent a Xash3D motor mobil verziója (az eredeti Half-Life motorral kompatibilis ), amely lehetővé teszi a játékok futtatását bármilyen Android-eszközön. . Ezek a kikötők azonban nem hivatalosak.
- Jelenleg is van tendencia az ún. Régi játékok „ újrakészítései ”, amelyeket eredetileg külön eszközökön adtak ki, modern okostelefonokra és táblagépekre. Ilyen játékok például a „ Snake ”, „ Tetris ”, „ Electronics ”, „ Pac-Man ” stb.
Lásd még
Jegyzetek
- ↑ port - a port definíciója angolul az Oxford szótárból . Letöltve: 2016. július 14. Az eredetiből archiválva : 2016. július 25. (határozatlan)
- ↑ Az intelligens tervezés és információs technológia felé Archiválva : 2013. március 21., a Wayback Machine 6.3. fejezete Java: "A bájtkód használatának egyik fő előnye a portolás... A JIT fordítás és a dinamikus újrafordítás lehetővé teszi a Java programok számára, hogy megközelítsék a natív kód sebességét a hordozhatóság elvesztése nélkül"
- ↑ Donald A. Levine. POSIX programozói útmutató. Hordozható UNIX programok írása a POSIX.1 szabvánnyal Archiválva : 2013. március 21. a Wayback Machine -nél // O'Reilly, 1991-1994 "IEEE Std 1003.1-1988, közismert nevén POSIX... Ha az alkalmazások követik a POSIX szabályokat, könnyebb áthelyezni a programokat egyik POSIX-kompatibilis operációs rendszerről a másikra"
- ↑ Bertrand Meyer. A hordozhatóság megközelítései Archiválva : 2012. április 26. a Wayback Machine -nél // JOOP (Journal of Object-Oriented Programming), vol. 11, sz. 6, 1998. július-augusztus, 93-95. „Az összes jelenlegi Eiffel fordító egy kivételével… a C-t használja köztes nyelvként. … Bebizonyosodott, hogy ez a technika kulcsfontosságú előnyöket kínál: Garancia a hordozhatóságra” és azon túl
- ↑ natív szoftver archiválva : 2012. május 7., a Wayback Machine A Dictionary of Computing, 2004
- ↑ Spencer Kimball és Peter Mattis. Readme (txt) (downlink) (1996. február 11.). Letöltve: 2008. március 23. Az eredetiből archiválva : 2011. február 17. (határozatlan) GIMP 0.54 csomag 2006-tól, lásd README: "A GIMP-et a következő operációs rendszereken tesztelték (és fejlesztették): Linux 1.2.13, Solaris 2.4, HPUX 9.05, SGI IRIX"
- ↑ William von Hagen. Ubuntu Linux Biblia: Ubuntu 10.04 LTS -t tartalmaz. Archiválva : 2013. március 21. a Wayback Machine -nél . fejezet „A GIMP használata” 14-35. oldal
- ↑ GNU Image Manipulation Program. Használati utasítás. A. függelék. A GIMP története 2. A GIMP korai napjai Archiválva 2012. február 2. a Wayback Machine -nél "A fő programozási előnyök az új eszközkészletek, a GTK (GIMP Toolkit) és a gdk (GIMP Drawing Kit) voltak, amelyek megszüntették a motívumra támaszkodást"
- ↑ A Linux kernel archívuma archiválva : 2011. augusztus 21. : Bár a Linuxot eredetileg 32 bites x86 -os PC -kre fejlesztették ( 386-tól), mára (legalább) a következő architektúrákon is fut: 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 és Analog Devices Blackfin; sok közülük 32 bites és 64 bites változatban is. (Bár eredetileg 32 bites x86-alapú PC-kre fejlesztették ki (386 vagy újabb), ma már a Linux (legalább) 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 és Analog Devices Blackfin architektúrák; sok ilyen architektúrához mindkettőben 32 és 64 bites változatok)
Irodalom
- Andrew S. Tanenbaum (1984): Strukturált számítógépes szervezet 10. nyomtatvány. ISBN 0-13-854605-3 .
- Brian Hook. Hordozható kód írása: bevezető a szoftverfejlesztésbe több platformra – No Starch Press, 2005; ISBN 1-59327-056-9