Cross- platform ( cross-platform ) - softwares evne til at arbejde med flere hardwareplatforme eller operativsystemer . Det leveres gennem brugen af programmeringssprog på højt niveau , udviklings- og runtime-miljøer, der understøtter betinget kompilering, linkning og kodekørsel for forskellige platforme. Et typisk eksempel er software designet til at køre på Linux og Windows operativsystemer samtidigt.
De fleste moderne programmeringssprog på højt niveau kan kaldes på tværs af platforme . For eksempel er C , C ++ , Free Pascal , FreeBASIC , PureBasic sprog på tværs af platforme på kompileringsniveauet, det vil sige, at der er compilere til forskellige platforme til disse sprog. Dette gør det muligt - med den rette kvalitet af koden - ikke at omskrive programmets hovedmotor, kun specielle systemafhængige dele ændres.
Lige så vigtigt for brug på tværs af platforme er de standardiserede runtime-biblioteker . Især C-sprogbiblioteket ( POSIX ) er blevet en standard. Af de store biblioteker på tværs af platforme - Qt , GTK+ , FLTK , STL , Boost , OpenGL , SDL , OpenAL , OpenCL .
Der findes krydskompilere - compilere, der genererer eksekverbar kode til en anden platform end den, som selve compileren kører på.
PHP , Perl , Python , Tcl og Ruby er tværplatformsfortolkede sprog og deres tolke findes til mange platforme.
ActionScript Virtual Machine , Java Virtual Machine og .NET runtimes er også på tværs af platforme, men deres input er ikke kildekode , men mellemkode . Derfor kan programmer skrevet i ActionScript , Java og C# køres på forskellige operativsystemer uden genkompilering.
På forskellige operativsystemer og miljøer – uanset hvordan arbejdet i dem udføres teknisk – har standardgrænsefladeelementer forskellige størrelser. Derfor er simpel stiv placering af grænsefladeelementer umulig - i et andet operativsystem (miljø) kan de "kravle" oven på hinanden, "sløre", "fulde". Der er flere tilgange:
Under alle omstændigheder, i andre operativsystemer og miljøer, kræves der i det mindste minimal test, da koblingsfejl er mulige ...
Selvom der generelt er en bred standardisering af hardware og software, er programmøren ofte nødt til at forgrene sig til forskellige operativsystemer og miljøer, herunder det ene eller det andet gennem betinget kompilering .
For eksempel har Mozilla Firefox - browseren forskellige ikonsæt til forskellige operativsystemer.
Et stort antal applikationsprogrammer er også på tværs af platforme. Denne kvalitet er især udtalt i programmer, der oprindeligt er udviklet til Unix-lignende operativsystemer . En vigtig betingelse for deres portabilitet til andre platforme er platformenes kompatibilitet med POSIX -anbefalingerne samt eksistensen af en GCC-kompiler for den platform, som de bliver overført til.
Moderne operativsystemer er også ofte på tværs af platforme. For eksempel kan open source-operativsystemer (især: NetBSD , Linux , FreeBSD , AROS ) køre på flere forskellige hardwareplatforme. De mest almindelige er: x86 , m68k , PowerPC , Alpha , AMD64 , SPARC . (" Elbrus OS " er intet mere end en dybt modificeret til Elbrus -platformen . Men der er også et "Elbrus OS" tilgængeligt til Elbrus-SPARC-platformene, som er en implementering af SPARC -platformen fra MCST og x86-platformen. ) Første udgivelse Microsoft Windows NT 4 , udgivet i 1996, understøttede fire platforme (x86, Alpha, MIPS og PowerPC), senere versioner af Windows NT understøttede kun x86-platformen. Moderne Microsoft Windows kan køre på både Intel x86 og Intel Itanium platforme . (Mere præcist har Itanium kun versioner af Windows 2000/XP, Windows 2003 og Windows 2008, hvorefter understøttelsen af Itanium blev udfaset.) NetBSD -operativsystemet anses for at være det mest multi-platform [1] , der bliver porteret til de fleste eksisterende platforme.
En række IDE'er , herunder Free Pascal, Lazarus , Qt Creator , kører på forskellige operativsystemer: Linux, Windows og andre [2] .
Hvis programmet ikke er beregnet til at blive afviklet (lanceret) på en bestemt platform, men for denne platform er der en emulator af basisplatformen for dette program, så kan programmet køres i emulatormiljøet.
Typisk resulterer eksekvering af et program i et emulatormiljø i ydeevneforringelse sammenlignet med lignende programmer, som platformen er basen for, da en betydelig del af systemressourcerne bruges på emulatorfunktioner.