Több platform ( cross-platform ) – a szoftver azon képessége , hogy több hardverplatformmal vagy operációs rendszerrel működjön együtt . Ezt magas szintű programozási nyelvek , fejlesztői és futási környezetek használatával biztosítják, amelyek támogatják a feltételes fordítást, linkelést és kódvégrehajtást különböző platformokon. Tipikus példa a Linux és a Windows operációs rendszereken egyidejű futtatásra tervezett szoftver.
A legtöbb modern magas szintű programozási nyelvet keresztplatformosnak nevezhetjük . Például a C , C ++ , Free Pascal , FreeBASIC , PureBasic többplatformos nyelvek fordítási szinten, vagyis ezekhez a nyelvekhez léteznek fordítóprogramok különféle platformokhoz. Ez lehetővé teszi, hogy - megfelelő kódminőség mellett - ne írják át a program fő motorját, csak speciális rendszerfüggő részek változnak.
Ugyanilyen fontosak a többplatformos használathoz a szabványos futásidejű könyvtárak . Különösen a C nyelvi könyvtár ( POSIX ) vált szabványossá. A nagy platformfüggetlen könyvtárak közül - Qt , GTK + , FLTK , STL , Boost , OpenGL , SDL , OpenAL , OpenCL .
Léteznek keresztfordítók – olyan fordítók, amelyek végrehajtható kódot generálnak más platformhoz, mint amelyen maga a fordító fut.
A PHP , a Perl , a Python , a Tcl és a Ruby több platformon értelmezett nyelvek, és számos platformon léteznek tolmácsaik.
Az ActionScript Virtual Machine , Java Virtual Machine és .NET futtatókörnyezet is többplatformos, de bemenetük nem forráskód , hanem köztes kód . Ezért az ActionScript , Java és C# nyelven írt programok újrafordítás nélkül futtathatók különböző operációs rendszereken.
Különböző operációs rendszereken és környezetekben - függetlenül attól, hogy az azokban végzett munka technikailag hogyan történik - a szabványos interfész elemek eltérő méretűek. Ezért az interfészelemek egyszerű merev elhelyezése lehetetlen - egy másik operációs rendszerben (környezetben) „mászhatnak” egymáson, „elmosódnak”, „részegek”. Számos megközelítés létezik:
Mindenesetre más operációs rendszerekben és környezetekben legalább minimális tesztelésre van szükség, mivel linkelési hibák előfordulhatnak ...
Annak ellenére, hogy általában a hardver és a szoftver széles körű szabványosítása létezik, a programozónak gyakran különböző operációs rendszerekhez és környezetekhez kell elágaznia, beleértve az egyiket vagy a másikat feltételes fordításon keresztül .
Például a Mozilla Firefox böngésző különböző ikonkészletekkel rendelkezik a különböző operációs rendszerekhez.
Számos alkalmazási program is többplatformos. Ez a minőség különösen szembetűnő az eredetileg Unix-szerű operációs rendszerekhez kifejlesztett programokban . Más platformokra való hordozhatóságuk fontos feltétele a platformok kompatibilitása a POSIX ajánlásokkal , valamint a GCC fordító megléte ahhoz a platformhoz, amelyre portolják.
A modern operációs rendszerek gyakran többplatformosak is. Például a nyílt forráskódú operációs rendszerek (különösen: NetBSD , Linux , FreeBSD , AROS ) többféle hardverplatformon futhatnak. A leggyakoribbak: x86 , m68k , PowerPC , Alpha , AMD64 , SPARC . (Az „ Elbrus OS ” nem más, mint egy mélyen módosított Elbrus platformra . De van egy „Elbrus OS” az Elbrus-SPARC platformokhoz is, amely az MCST SPARC platformjának és az x86 platformnak a megvalósítása. ) Első kiadás Az 1996-ban megjelent Microsoft Windows NT 4 négy platformot (x86, Alpha, MIPS és PowerPC) támogatott, a Windows NT későbbi verziói csak az x86 platformot támogatták. A modern Microsoft Windows Intel x86 és Intel Itanium platformokon is futhat . (Pontosabban az Itaniumnak csak Windows 2000/XP, Windows 2003 és Windows 2008 verziói vannak, ami után az Itanium támogatását fokozatosan megszüntették.) A NetBSD operációs rendszert tartják a leginkább többplatformosnak [1] , a legtöbbre portolják. meglévő platformok.
Számos IDE , köztük a Free Pascal, a Lazarus , a Qt Creator , különböző operációs rendszereken fut: Linux, Windows és mások [2] .
Ha a programot nem egy adott platformon kívánjuk végrehajtani (indítani), de ehhez a platformhoz létezik az alapplatform emulátora ehhez a programhoz, akkor a program az emulátor környezetben is végrehajtható.
Jellemzően egy program emulátorkörnyezetben történő végrehajtása teljesítményromlást eredményez a hasonló programokhoz képest, amelyeknek a platform az alapja, mivel a rendszer erőforrásainak jelentős részét emulátor funkciókra fordítják.