Plattformsoberoende

Den plattform självständighet - mer exakt än plattformsoberoende och mer allmänt portabel - kallas i informationsteknologi egenskapen att ett program kan köras på olika plattformar . Från engelska här egenskapen lånas som en cross -plattform kallas.

begränsningar

Som regel ett program behöver alltid en så kallad runtime miljö där den kan verkställas (eller startas) och kan köras stabilt under hela exekveringstiden. Med fastighetsplattformsoberoende eller, närmare bestämt, plattformsoberoende , är program beskrivs mer i detalj som körs på olika plattformar - dvs. datorsystem med skillnader i arkitektur , processor , översättare , operativsystem (i detta fall även kallad kors operativsystem ) och andra verktygsprogram som är nödvändiga för översättning eller körning är - är körbara. Graden av plattformsoberoende är också känd som portabilitet refererar (på engelska portabilitet ). Detta inkluderar inte bara befintlig plattformsoberoende, utan också den beräknade mängden arbete som krävs för att konvertera ett program till ett plattformsplattform. Denna process är också känd som porting eller migration .

att forma

Det finns olika former av plattformsoberoende:

Webbapplikationer som körs av webbläsaren.
Operativsystemet spelar ingen roll här, det behöver bara ha en webbläsare som uppfyller vissa krav .
Hybridappar
Applikationer som kan köras på olika operativsystem och olika mobila enheter oavsett plattform.
Flerkanaliga appar
Program som kan köras oberoende av enhet och operativsystem. Dessa enheter kan vara både mobila och, till skillnad från hybridapparna, stillastående.
Programvara som finns i mellanliggande kod
Program som antingen är i form av bytecode , till exempel huvudsakligen Java- program, eller en bärbar, tolkbar källkod ( Python , Perl , PHP och andra).
Fat Binaries och Universal Binaries
Programpaket som innehåller flera körbara versioner. Operativsystemet startar rätt version utan att användaren behöver göra någonting. Exempel på "fett binärer" är OpenStep programformat och "fett binärer" under Mac OS , som kan köras på både Motorola 680x0- baserade Macintosh- datorer och PowerPC Mac-datorer. Universella binärer under macOS körs på PowerPC såväl som på x86 -32-bit eller x86-64- bit. Förutsättningen för att alls kunna skapa en "fett binär" är källkodens portabilitet, särskilt med avseende på byteordning ( ändlighet ) och längden på en pekervariabel.
Källkod portabilitet
Denna form av plattformsoberoende finns ofta i C- program för Unix : Källkoden innehåller instruktioner som gör det möjligt att kompensera för skillnader i operativsystem. Massor av verktyg finns för detta ändamål, till exempel GNU Autoconf . Ett annat alternativ är att använda systemoberoende bibliotek som Qt och GTK + . Många program som är bärbara i källkoden finns redan i färdiga versioner på olika plattformar.
Begränsad plattformsoberoende
ges om programmet till exempel bara kan köras på en viss typ av processor, men på annars olika hårdvaruarkitekturer. Detta är ofta fallet med program skrivna på monteringsspråk , vilket ofta hittades i de första dagarna av mikrodatorer under CP / M ; Idag används monteringsspråk oftast bara för särskilt tidskritiska programavsnitt, och för plattformsoberoende ingår vanligtvis en högnivå språkversion av samma programfunktioner. Även program som bara fungerar i en viss operativsystemfamilj , oavsett CPU- typ, är plattformsoberoende i begränsad omfattning.

I serverutbudet där mycket tidigt med virtuella maskiner fungerade och virtuella processorer ser det ut när det gäller plattformsoberoende något annat än vad du förväntar dig av klassiska Unix / Linux vet -Portierungen sedan - den senare grepp Arbetar allt mer skrivbordsutrymme , på grund av det starka fokuset på x86-datorer när det gäller plattformsoberoende orsakar dock ofta mer huvudvärk än klassiska Unix- applikationer .

Idag uppnås relativ plattformsoberoende oftast genom användning av runtime-miljöer på språk som Java eller .NET . Detta uppenbara oberoende köps dock i sin tur på bekostnad av ett beroende av runtime-miljön, som nu är kärnan i plattformen .

Uttrycket "portabilitet" kommer dock inte riktigt in i kärnan i båda fallen, eftersom de inblandade begreppen var plattformsoberoende från början - det vill säga alla API: er på varje målsystem måste simuleras i förväg så att programvara är oundvikligen körbar. Annars skulle en Java-VM till exempel inte vara certifierbar. Körtidsmiljöerna själva är inte heller tillgängliga på alla plattformar, vilket i fallet .NET till exempel har lett till utveckling som Mono-projektet . Porting är vanligtvis inte möjligt av licens- eller patentskäl , så man kan bara tala om en form av begränsad plattformsoberoende.

Portabilitetsstatistik

Bärbarheten kan uppskattas till exempel via: P = 1−(Ü+A)/E

Ü Överföringsinsats (särskilt rekompilering)
En justeringsinsats (ändra källkoden, t.ex. när du byter operativsystems gränssnitt)
E Utvecklingsarbete för ny utveckling

En portabilitet på 1 motsvarar kompatibiliteten , så programmet kan köras på målsystemet utan några ändringar; om källkoden är bärbar kan ett resultat på> 90% vanligtvis förväntas; medan en portabilitet nära 0 antyder en ny utveckling av programmet. Portabilitet är inte ett mått på ett programs förmåga att köra på målplattformen; H. Även en portabilitet på 99% betyder inte nödvändigtvis att programmet kan användas, det betyder bara att portning kräver betydligt mindre ansträngning jämfört med en ny utveckling.

webb-länkar

Wiktionary: plattformsoberoende  - förklaringar av betydelser, ordets ursprung, synonymer, översättningar

Individuella bevis

  1. bärbar. I: Digital ordbok för det tyska språket . Hämtad September 20, 2018 - i samband substantiv portabilitet ; enbart på programvara är denna funktion baserad ( ibland som en snävare term ) som en bärbar programvara kallas
  2. plattform - mer sällan skrivs plattform (och är ibland troligen bara i fraser som "Cross platform application", "cross-platform application language" och "Cross platform development" att hitta) - från engelska plattform eller plattforms lånat ; bokstavligen "cross platform " eller förmodligen också "crossing platform ", se även:
    • Korsa . I: Duden , bland andra. med ”Kreuz (ung)”; nås den 20 september 2018
    • Korsa . I: i Wissen.de , bland andra. med "kors"; nås den 20 september 2018
  3. Ün Günter Rothhardt: Software Engineering Practice . 2. oförändrad. Utgåva. VEB Verlag Technik Berlin, 1988, kapitel 2, s.139