Plattformunabhängigkeit
aus Wikipedia, der freien Enzyklopädie
Plattformunabhängigkeit ist die Eigenschaft eines Programms, auf verschiedenen Computersystemen mit Unterschieden in Architektur, Prozessor, Compiler, Betriebssystem und weiteren Dienstprogrammen, die zur Übersetzung notwendig sind usw. lauffähig zu sein.
Es gibt verschiedene Formen von Plattformunabhängigkeit:
- In Zwischencode vorliegende Software: Programme, die entweder in Form von Bytecode, wie hauptsächlich Java-Programme, oder eines portablen, interpretierbaren Quellcodes (Python, Perl und andere) vorliegen.
- Fat Binaries: Programmpakete, die mehrere lauffähige Versionen enthalten. Das Betriebssystem startet ohne Zutun des Anwenders die richtige Version. Beispiele für „fat binaries“ sind das OpenStep-Programmformat und die „fat binaries“ unter Mac OS, die sowohl auf Motorola 680x0-basierten Apple-Rechnern als auch auf PowerPC-Macs ausführbar sind oder auch Universal Binaries unter Mac OS X, die sowohl auf PowerPC, also auch auf x86 laufen. Voraussetzung dafür, dass eine „fat binary“ überhaupt erstellt werden kann, ist die Portabilität des Quellcodes.
- Quellcode-Portabilität: Diese Form der Plattformunabhängigkeit ist häufig bei C-Programmen für UNIX anzutreffen: Der Quellcode enthält Anweisungen, die es erlauben, die Betriebssystemunterschiede auszugleichen. Es existieren reichlich Hilfsmittel zu diesem Zweck, wie zum Beispiel GNU autoconf. Viele im Quellcode portable Programme stehen bereits in vorgefertigten Versionen für mehrere Plattformen bereit. Beispiele hierfür sind der Internetbrowser Mozilla, das Grafikprogramm GIMP, das Office-Paket OpenOffice.org und die GNU Compiler Collection.
- Eingeschränkte Plattformunabhängigkeit ist gegeben, wenn zum Beispiel das Programm nur auf einem bestimmten Prozessor-Typ lauffähig ist, aber auf ansonsten verschiedenen Hardware-Architekturen. Dies ist häufig bei in Assemblersprachen geschriebenen Programmen der Fall, wie man sie in den frühen Zeiten der Microcomputer unter CP/M oft antraf; heute wird Assemblersprache meist nur noch für besonders zeitkritische Programmstellen verwendet, und zwecks Plattformunabhängigkeit ist meist noch eine hochsprachliche Version der gleichen Programmfunktionen beigegeben. Auch Programme, die unabhängig vom CPU-Typ nur auf einer bestimmten Betriebssystem-Familie funktionieren sind eingeschränkt Plattformunabhängig.
Heutzutage wird Plattformunabhängigkeit am häufigsten durch die Verwendung von Java oder .NET erzielt.
Hierzu ist zu ergänzen, dass gerade im Server-Bereich, wo schon sehr früh mit virtuellen Maschinen und virtuellen CPUs gearbeitet wurde (z. B. von IBM) Plattformunabhängigkeit ein anderes Gesicht hat, als man es von klassischen Unix-/Linux-Portierungen her kennt – letztere fassen zwar zunehmend im Desktop-Bereich Fuß, verursachen durch die starke Ausrichtung auf x86-PCs in Sachen Plattformunabhängigkeit allerdings oftmals eher mehr Kopfzerbrechen als klassische Unix-Anwendungen.