WikiDer > Software-Portabilität
Software-Portabilität bezieht sich auf die Wiederverwendbarkeit von Software beim Wechsel der Umgebung. Es ist ein Thema, das in der High-Level-Programmierung besonders wichtig ist.
Vorwort
Wenn das gleiche Anwendung auf mehreren Plattformen installiert werden muss, kann die Portabilität die Kosten erheblich senken. Die einzige Voraussetzung für die Portabilität ist, dass es eine gemeinsame Abstraktion zwischen der Logik der Anwendung und der Schnittstellen vom System.
Wenn die Software für ein anderes System optimiert ist, spricht man von portieren. Dadurch wird sichergestellt, dass ein Programm für ein bestimmtes System eine höhere Portabilität erhält.
Verschiedene Methoden
Es gibt drei Möglichkeiten, eine gewisse Portabilität zu erreichen:
- Das Quelldaten wieder sein zusammengestellt für ein neues System.
- Das Programm wird (mit den gleichen verteilten Dateien) auf einem neuen System neu installiert.
- Die installierten Programmdateien werden auf einem neuen System abgelegt.
Die Methoden werden von am wenigsten benutzerfreundlich bis am benutzerfreundlichsten und von höchster Systemqualität bis niedrigster Systemqualität geordnet.
Es hängt von der Gleichheit zwischen zwei Systemen ab, welche der oben genannten Methoden die beste ist. Hier gibt es zwei wichtige Faktoren: Betriebssystem und der Prozessorarchitektur.
Systeme mit dem gleichen Betriebssystem
Wenn wir Systeme haben, auf denen dasselbe Betriebssystem läuft, ist es oft möglich, Programme zwischen diesen Systemen zu verschieben. Weil ein Programm verwendet Bibliotheken dies muss berücksichtigt werden. Die notwendigen Bibliotheken müssen mit dem Programm bereitgestellt werden oder es wird davon ausgegangen, dass die Bibliotheken bereits auf dem zweiten System vorhanden sind. Es ist wichtig, dass bei der Entwicklung des Programms eine richtige Entscheidung darüber getroffen wird.
Ideale Portabilität würde erreicht, wenn sich das Programm auf einem tragbaren, beschreibbaren . befindet Mittel platziert wird (zum Beispiel a USB Stick) enthält sowohl das Programm als auch die Bibliotheken. Dieses tragbare Medium enthält dann die gesamte Software, die zum Ausführen des Programms erforderlich ist.
Systeme mit unterschiedlichem Betriebssystem
Bei einem anderen Betriebssystem ist es meist nicht mehr möglich, die benötigten Dateien und ggf. Bibliotheken einfach zu verschieben.
Die folgende Liste zeigt einige mögliche Unterschiede zwischen UnixBetriebssysteme aufgeführt.
- Die Länge der Dateinamen
- Unterstützung für symbolische Links
- Vorhandensein von select() Systemaufruf
- Funktioniert select() auf a work seriell Gerät?
- Läuft ab seriell Ein- und Ausgabe über System V oder Berkeley ioctl() Semantik?
- Sein Unix-DomainSteckdosen verfügbar?
- Ist Jobkontrolle verfügbar?
- Kann das Betriebssystem einer Datei im Speicher zugeordnet werden?
- Können Shell-Skripte setuid() ausführen?
- Kann ein Benutzer mit chown() eine Datei verschenken?
- Einbiegen in Faden unterstützt? Wenn ja, mit oder ohne Semantik?
Um dieses Problem zu lösen, werden neue Betriebssysteme der Unix-Familie, einschließlich Linux, BSD, Solaris und Mac OS X, in der Lage, die POSIX-Standard zu verwenden für Systemaufrufe und damit die Portabilität deutlich erhöhen. unten Microsoft Windows kann das POSIX-Standard auch durch Schnittstellensoftware (beispielsweise Cygwin).
Wenn es um Portabilität zwischen einem Unix- und einem Microsoft Windows-System geht, gibt es noch mehr zu beachten. Diese Systeme haben grundlegend unterschiedliche Herangehensweisen an Dinge wie Zaken Prozessmanagement und Interprozesskommunikation.
In den neuesten Versionen von Microsoft Windows-Betriebssystemen ist es möglich, Programme auszuführen, als würde ein Benutzer auf einem anderen Betriebssystem arbeiten. Dies ist eine große Verbesserung der Portabilität von Programmen zwischen verschiedenen Versionen von Microsoft Windows-Betriebssystemen für Microsoft Windows-Benutzer.
Systeme mit unterschiedlichen Prozessorarchitekturen
Für Systeme mit unterschiedlichen Prozessorarchitektur Die meisten Portabilitätsprobleme entstehen, weil die Low-Level-Anleitung finden hier anders statt.
Eine Prozessorarchitektur zeichnet sich durch die Wortbreite, Reihenfolge der Wörter und Ausrichtung werden. Das Wortbreite' beträgt typischerweise 16, 32 oder 64 Bit. Das Reihenfolge der Wörter ist Big-Endian oder kleiner endian. Das Ausrichtung werden bezieht sich auf die Ausrichtung der Wörter laut der Speicheradressen.
Eine mögliche Lösung für das Portabilitätsproblem ist die Verwendung von a Webbrowser. Das ist doch prozessorunabhängig. Dies beinhaltet jedoch einiges. So geht's Programmiersprache so geändert werden, dass das Programm über einen Webbrowser ausgeführt werden kann. Das Programm sollte auch nicht zu schwer sein. Es gibt auch Sicherheits- und Autorisierungsprobleme. Die Verbindung zum Webbrowser muss stabil und sicher sein und das Programm muss aus Sicherheitsgründen über eingeschränkte Berechtigungen verfügen. Dieser Ansatz, der normalerweise verwendet Java, kann ohne Webbrowser ausgeführt werden. Es besteht eine Verbindung zwischen dem Programm und Java.
Letztere Lösung ist oft weit hergeholt. Normalerweise wird der Softwarehersteller kompilieren für verschiedene Betriebssysteme und verschiedene Prozessorarchitekturen, was eine Neuinstallation der Software durch den Benutzer erfordert.
Neukompilieren
Um die Software neu zu kompilieren, Quellcode notwendig. Die Codierung wird also in der Regel von den Erstellern der Software und nicht vom Benutzer selbst vorgenommen. Eine Ausnahme hiervon ist Quelloffene Software, wo der Quellcode dem Benutzer zur Verfügung steht.
Der Quellcode wird am besten in a Programmiersprache geschrieben für die es kompatibel sind Compiler gibt es für die verschiedenen gewünschten Plattformen.
Die beste Methode, um eine gute Portabilität zu erreichen, besteht darin, die Software mehrmals zu portieren und nach Fehlern zu suchen, die immer wieder auftreten. Werden diese Fehler behoben und das Programm anschließend neu kompiliert, ist eine gute Portabilität erreicht.
Quellen, Anmerkungen und/oder Verweise
|