Cross-plattform

Cross- platform ( cross-platform ) - programvarans förmåga att arbeta med flera hårdvaruplattformar eller operativsystem . Det tillhandahålls genom användning av högnivåprogrammeringsspråk , utvecklings- och runtime-miljöer som stöder villkorlig kompilering, länkning och kodexekvering för olika plattformar. Ett typiskt exempel är programvara utformad för att köras på Linux och Windows operativsystem samtidigt.

Programmeringsspråk över plattformar

De flesta moderna högnivåprogrammeringsspråk kan kallas plattformsoberoende . Till exempel, C , C ++ , Free Pascal , FreeBASIC , PureBasic  är plattformsoberoende språk på kompileringsnivån, det vill säga det finns kompilatorer för olika plattformar för dessa språk. Detta tillåter - med rätt kvalitet på koden - att inte skriva om programmets huvudmotor, bara speciella systemberoende delar ändras.

Lika viktiga för plattformsoberoende användning är de standardiserade runtime-biblioteken . I synnerhet har C-språkbiblioteket ( POSIX ) blivit en standard. Av de stora plattformsoberoende biblioteken - Qt , GTK + , FLTK , STL , Boost , OpenGL , SDL , OpenAL , OpenCL .

Det finns korskompilatorer - kompilatorer som genererar körbar kod för en annan plattform än den som själva kompilatorn körs på.

Körtider över plattformar

PHP , Perl , Python , Tcl och Ruby  är plattformstolkade språk och deras tolkar finns för många plattformar.

ActionScript Virtual Machine , Java Virtual Machine och .NET körtider är också plattformsoberoende, men deras indata är inte källkod utan mellankod . Därför kan program skrivna i ActionScript , Java och C# köras på olika operativsystem utan omkompilering.

Användargränssnitt för flera plattformar

På olika operativsystem och miljöer – oavsett hur arbetet i dem utförs tekniskt – har standardgränssnittselement olika storlekar. Därför är enkel stel positionering av gränssnittselement omöjlig - i ett annat operativsystem (miljö) kan de "krypa" ovanpå varandra, "sudda", "berusade". Det finns flera tillvägagångssätt:

  1. En enda stil som är gemensam för alla operativsystem, program ser likadana ut under alla system. Så här fungerar Java -gränssnittsbibliotek som Swing .
    • Plus: du kan styvt arrangera kontroller på samma sätt som Delphi, den ursprungliga stilen.
    • Minus: systemet måste ha sina egna skärmteckensnitt, och stilen skiljer sig från stilen på operativsystemet.
  2. Självanpassande (adaptivt) gränssnitt som justerar rutnätet till den faktiska storleken på kontrollerna. Typiska exempel är Qt , wxWidgets , XUL .
    • Fördelar: standardoperativsystemstil, mycket snabb och hopfällbar under Windows XP , Vista och Windows 7 , och viss lokaliseringsautomatisering .
    • Nackdel: Självanpassande mesh kräver en skicklig programmerare för att montera, och snäv layout är svårt.
  3. En hybridmetod är implementerad i GTK+ .
    • Plus: teckensnitt kan tas från systemet, och inte "dras" dina egna, samt viss automatisering av lokalisering.
    • Minus: tar alla nackdelar från de två första tillvägagångssätten. Stilen skiljer sig från stilen på operativsystemet, tight layout är svårt.

I alla fall, i andra operativsystem och miljöer krävs åtminstone minimal testning, eftersom länkningsfel är möjliga ...

Villkorlig kompilering

Även om det generellt finns en bred standardisering av hårdvara och mjukvara, måste programmeraren ofta förgrena sig för olika operativsystem och miljöer, inklusive det ena eller det andra genom villkorlig kompilering .

Till exempel har webbläsaren Mozilla Firefox olika ikonuppsättningar för olika operativsystem.

Applikationsprogram

Ett stort antal applikationsprogram är också plattformsoberoende. Denna kvalitet är särskilt uttalad i program som ursprungligen utvecklades för Unix-liknande operativsystem . En viktig förutsättning för deras portabilitet till andra plattformar är plattformarnas kompatibilitet med POSIX- rekommendationerna , samt att det finns en GCC-kompilator för plattformen som de porteras till.

Operativsystem

Moderna operativsystem är också ofta plattformsoberoende. Till exempel kan operativsystem med öppen källkod (särskilt: NetBSD , Linux , FreeBSD , AROS ) köras på flera olika hårdvaruplattformar. De vanligaste är: x86 , m68k , PowerPC , Alpha , AMD64 , SPARC . (" Elbrus OS " är inget annat än ett djupt modifierat för Elbrus -plattformen . Men det finns ett "Elbrus OS" även tillgängligt för Elbrus-SPARC-plattformarna, vilket är en implementering av SPARC -plattformen från MCST och x86-plattformen. ) Första utgåvan Microsoft Windows NT 4 , släppt 1996, stödde fyra plattformar (x86, Alpha, MIPS och PowerPC), senare versioner av Windows NT stödde endast x86-plattformen. Moderna Microsoft Windows kan köras på både Intel x86 och Intel Itanium-plattformar . (Närmare bestämt har Itanium bara versioner av Windows 2000/XP, Windows 2003 och Windows 2008, varefter stödet för Itanium fasades ut.) Operativsystemet NetBSD anses vara det mest multi-plattforms [1] , som porteras till de flesta befintliga plattformar.

Utvecklingsmiljöer

Ett antal IDE:er , inklusive Free Pascal, Lazarus , Qt Creator , körs på olika operativsystem: Linux, Windows och andra [2] .

Emulering

Om programmet inte är avsett att köras (lanseras) på en specifik plattform, men för denna plattform finns en emulator av basplattformen för detta program, så kan programmet köras i emulatormiljön.

Vanligtvis resulterar körning av ett program i en emulatormiljö i prestandaförsämring jämfört med liknande program där plattformen är basen, eftersom en betydande del av systemresurserna spenderas på emulatorfunktioner.

Anteckningar

  1. ↑ Portabilitet och hårdvaruplattformar som stöds  . netbsd.org . Hämtad 31 oktober 2021. Arkiverad från originalet 22 december 2021.
  2. Lazarus IDE och Free Pascal (nedlänk) . Datum för åtkomst: 8 december 2013. Arkiverad från originalet den 26 november 2013. 

Länkar