Loading AI tools
Van Wikipedia, de vrije encyclopedie
Softwareportabiliteit heeft betrekking op de herbruikbaarheid van software bij het veranderen van omgeving. Het is een onderwerp dat vooral bij highlevelprogrammeren belangrijk is.
Wanneer dezelfde applicatie op meerdere platformen geïnstalleerd moet worden, kunnen met behulp van portabiliteit de kosten aanzienlijk worden verminderd. De enige voorwaarde voor portabiliteit is dat er een algemene abstractie bestaat tussen de logica van de applicatie en de interfaces van het systeem.
Wanneer de software geoptimaliseerd wordt voor een ander systeem, spreekt men van porteren. Hierbij wordt ervoor gezorgd dat een programma een hogere portabiliteit krijgt voor een bepaald systeem.
Er zijn drie manieren waarmee een zekere portabiliteit bereikt kan worden:
De methoden zijn geordend van minst gebruiksvriendelijk naar meest gebruiksvriendelijk en van hoogste systeemkwaliteit naar laagste systeemkwaliteit.
Het hangt af van de gelijkheid tussen twee systemen welke keuze uit bovenstaande manieren de beste is. Hierbij zijn er twee belangrijke factoren: het besturingssysteem en de processorarchitectuur.
Wanneer we systemen met hetzelfde besturingssysteem hebben, is het vaak mogelijk om programma's tussen deze systemen te verplaatsen. Omdat een programma gebruikmaakt van bibliotheken moet hiermee rekening worden gehouden. De nodige bibliotheken moeten worden meegegeven met het programma of men gaat ervan uit dat de bibliotheken reeds aanwezig zijn op het tweede systeem. Het is belangrijk dat hierover bij de ontwikkeling van het programma een correcte beslissing wordt genomen.
Ideale portabiliteit zou worden bereikt wanneer het programma op een draagbaar, beschrijfbaar medium wordt geplaatst (bijvoorbeeld een USB-stick) waarop zowel het programma als de bibliotheken staan. Dit draagbare medium omvat dan alle software die nodig is om het programma te kunnen draaien.
Als het besturingssysteem verschilt, is het meestal niet meer mogelijk om simpelweg de nodige bestanden en eventueel bibliotheken te verplaatsen.
In onderstaande lijst zijn enkele mogelijke verschillen tussen Unix-besturingssystemen vermeld.
Als oplossing voor dit probleem zijn nieuwe besturingssystemen van de Unix-familie, waaronder Linux, BSD, Solaris en MacOS X, in staat om de POSIX-standaard te gebruiken voor system calls en zo de portabiliteit aanzienlijk te vergroten. Onder Microsoft Windows kan de POSIX-standaard ook worden gebruikt door middel van interfacesoftware (bijvoorbeeld Cygwin).
Wanneer er portabiliteit moet zijn tussen een Unix en een Microsoft Windows-systeem komt er nog meer bij kijken. Deze systemen hebben fundamenteel verschillende manieren van aanpak van zaken zoals procesmanagement en interprocescommunicatie.
In de laatste versies van Microsoft Windows-besturingssystemen is het mogelijk om programma's uit te voeren alsof een gebruiker op een ander besturingssysteem werkt. Dit is voor Microsoft Windows-gebruikers een goede verbetering van de portabiliteit van programma's tussen de verschillende versies van Microsoft Windows-besturingssystemen.
Bij systemen met een verschillende processorarchitectuur treden de meeste problemen op wat betreft portabiliteit, doordat de lowlevelinstructies hier op een andere manier plaatsvinden.
Een processorarchitectuur wordt gekenmerkt door de woordbreedte, woordvolgorde en word alignment. De woordbreedte' is typisch 16, 32 of 64 bits. De woordvolgorde is big-endian of little-endian. De word alignment heeft betrekking op de uitlijning van de woorden in functie van de geheugenadressen.
Een mogelijke oplossing voor het portabiliteitsprobleem is gebruikmaken van een webbrowser. Deze is immers processoronafhankelijk. Hierbij komt echter veel kijken. Zo moet de programmeertaal worden aangepast zodat het programma via een webbrowser kan worden uitgevoerd. Het programma zal ook niet te zwaar mogen zijn. Daarnaast zijn er nog veiligheids- en machtigingsproblemen. De verbinding met de webbrowser moet stabiel en veilig zijn en het programma mag uit veiligheidsoverwegingen slechts beperkte machtigingen hebben. Deze aanpak, waarbij meestal gebruikgemaakt wordt van Java, kan zonder webbrowser worden uitgevoerd. Hierbij is er een link tussen het programma en Java.
De laatste oplossing is vaak vergezocht. Meestal zal de softwarefabrikant de software compileren voor verschillende besturingssystemen en verschillende processorarchitecturen, waardoor de gebruiker de software opnieuw zal moeten installeren.
Om de software opnieuw te kunnen compileren is de broncode vereist. Compileren wordt dus meestal door de makers van de software gedaan en niet door de gebruiker zelf. Een uitzondering hierop is openbronsoftware, waarbij de broncode wel beschikbaar is voor de gebruiker.
De broncode wordt het best in een programmeertaal geschreven waarvoor er compatibele compilers bestaan voor de verschillende gewenste platformen.
De beste methode om een goede portabiliteit te bekomen is door de software meerdere malen te porteren en te zoeken naar fouten die steeds terugkomen. Als deze fouten worden opgelost en het programma daarna opnieuw gecompileerd wordt, is een goede portabiliteit bereikt.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.