Software -Portabilität

Videospiel auf verschiedenen Hardware -Plattformen.

A Computer Programm wird gesagt, dass tragbar Wenn es sehr niedrige Anstrengungen erfordert, damit es unterschiedlich läuft Plattformen. Die Voraussetzung für die Portabilität ist verallgemeinert Abstraktion zwischen der Anwendungslogik und Systemschnittstellen. Wenn für mehrere Software mit der gleichen Funktionalität erzeugt wird ComputerplattformenDie Portabilität ist das Hauptproblem für die Reduzierung der Entwicklungskosten.

Strategien für die Portabilität

Die Software -Portabilität kann:

  • Übertragung installierter Programmdateien auf einen anderen Computer mit derselben Architektur.
  • Neuinstallation eines Programms aus Verteilungsdateien auf einem anderen Computer mit derselben Architektur.
  • Gebäude ausführbar Programme für verschiedene Plattformen von Quellcode; Dies ist das, was normalerweise verstanden wird "Portierung".

Ähnliche Systeme

Wann Betriebssysteme der gleichen Familie werden auf zwei Computern mit installiert Prozessoren mit ähnlichem Anweisungssätze Es ist häufig möglich, die Dateien zu übertragen, die Programmdateien zwischen ihnen implementieren.

Im einfachsten Fall können die Datei oder Dateien einfach von einer Maschine zum anderen kopiert werden. In vielen Fällen ist die Software jedoch Eingerichtet auf einem Computer auf eine Weise, die von seiner detaillierten Hardware, Software und Setup mit Abhängigkeit abhängt, mit Gerätetreiber Für bestimmte Geräte, verwenden Sie installiertes Betriebssystem und unterstützende Softwarekomponenten und verwenden unterschiedliche fährt oder Verzeichnisse.

In einigen Fällen wird Software, die normalerweise als "beschrieben" beschrieben "Tragbare Software", ist speziell so konzipiert, dass sie auf verschiedenen Computern mit kompatiblen Betriebssystemen und -prozessoren ohne maschinenabhängige Installation ausgeführt werden. Die Portierung ist nicht mehr als die Übertragung bestimmter Verzeichnisse und deren Inhalt. Software installiert auf tragbar Massenspeicher Geräte wie USB -Sticks Kann auf jedem kompatiblen Computer verwendet werden, um das Speichergerät einfach einzuschließen, und speichert alle Konfigurationsinformationen auf dem abnehmbaren Gerät. Hardware- und softwarespezifische Informationen werden häufig in gespeichert Konfigurationsdateien an bestimmten Stellen (z. B. die Registrierung auf Maschinen laufen Microsoft Windows).

Software, die in diesem Sinne nicht tragbar ist, muss mit Änderungen übertragen werden, um die Umgebung auf der Zielmaschine zu unterstützen.

Verschiedene Prozessoren

Ab 2011 Der Großteil der verwendeten Desktop- und Laptop -Computer Mikroprozessoren kompatibel mit dem 32- und 64-Bit x86 Anweisungssätze. Kleinere tragbare Geräte verwenden Prozessoren mit unterschiedlichen und inkompatiblen Anweisungssätzen wie z. ARM. Der Unterschied zwischen größeren und kleineren Geräten ist so, dass der detaillierte Softwarebetrieb unterschiedlich ist. Eine Anwendung, die auf einem großen Bildschirm geeignet angezeigt wurde, kann nicht einfach auf ein Smartphone in Taschenformat mit einem winzigen Bildschirm portiert werden, selbst wenn die Funktionalität ähnlich ist.

Web Applikationen sind erforderlich, um prozessorunabhängig zu sein, sodass die Portabilität durch Verwendung von Webprogrammierungstechniken und Schreiben in der Verbreitung erreicht werden kann JavaScript. Ein solches Programm kann in einem gemeinsamen Webbrowser ausgeführt werden. Eine solche Web Applikationen Muss aus Sicherheitsgründen eine begrenzte Kontrolle über den Host -Computer haben, insbesondere in Bezug auf das Lesen und Schreiben von Dateien. Nicht-Web-Programme, die auf normale Weise auf einem Computer installiert sind, können mehr Kontrolle haben und dennoch die Systemportabilität erreichen, indem sie mit tragbaren Bibliotheken verknüpfen, die dieselbe Schnittstelle für verschiedene Systeme bereitstellen.

Quellcode -Portabilität

Software kann zusammengestellt werden und verknüpft Aus Quellcode für verschiedene Betriebssysteme und -prozessoren, wenn sie in eine Programmiersprache geschrieben wird, die die Kompilierung für die Plattformen unterstützt. Dies ist normalerweise eine Aufgabe für die Programmentwickler. Typische Benutzer haben weder Zugriff auf den Quellcode noch die erforderlichen Fähigkeiten.

Im Open Source Umgebungen wie Linux Der Quellcode steht allen zur Verfügung. In früheren Tagen wurde der Quellcode häufig in einem standardisierten Format verteilt und konnte in ausführbarer Code mit einem Standard integriert werden Werkzeug machen Für ein bestimmtes System durch mäßig sachkundige Benutzer, wenn während des Builds keine Fehler aufgetreten sind. Etwas Linux -Verteilungen Verteilen Sie Software an Benutzer in Quellform. In diesen Fällen besteht in der Regel keine detaillierte Anpassung der Software für das System. es ist auf eine Weise verteilt, die verändert den Kompilierungsprozess, um dem System entsprechen.

Anstrengung, Quellcode zu portieren

Auch mit scheinbar tragbaren Sprachen wie C und C ++Die Bemühungen, den Quellcode zu portieren, kann erheblich variieren. Die Autoren von UNIX/32V (1979) berichteten, dass "[t] er (Bourne) Shell [...] erfordert bei weitem die größte Konvertierungsanstrengung eines angeblich tragbaren Programms, aus dem einfachen Grund, dass es nicht tragbar ist. "[1]

Manchmal besteht der Aufwand darin, den Quellcode neu zu kompilieren, aber manchmal ist es erforderlich, wichtige Teile der Software neu zu schreiben. Viele Sprachspezifikationen beschreiben das definierte Verhalten von Implementierung (z. B. Rechtsverschiebung einer signierten Ganzzahl in C kann a logisch oder an Arithmetik Wechsel). Betriebssystemfunktionen oder Bibliotheken von Drittanbietern sind möglicherweise nicht im Zielsystem verfügbar. Einige Funktionen können in einem Zielsystem verfügbar sein, zeigen jedoch ein etwas anderes Verhalten (z. B.: Utime () fällt unter Windows mit EACCes fehl, wenn es ein Verzeichnis auffordert). Der Programmcode selbst kann auch unportierbare Dinge enthalten, wie die Wege von Einschlus von Dateien. Antriebsbriefe und der Backslash als Pfadtrennzeichen werden nicht auf allen Betriebssystemen akzeptiert. Implementierung definierte Dinge wie Bytebestellung und die Größe eines int kann auch die Portierungsanstrengungen erhöhen.In der Praxis der Anspruch von Sprachen wie C und C ++, um die WOCA zu haben (Schreiben Sie einmal, überall kompilieren) ist arg.

Siehe auch

Verweise

  1. ^ Thomas B. London und John F. Reiser (1978). Ein Unix-Betriebssystem für den DEC VAX-11/780-Computer. Bell Labs interne Memo 78-1353-4.

Quellen

  • Mooney (1997). "Die Portabilität in den Softwareprozess bringen" (PDF).West Virginia University.Abteilung für Statistik und Informatik.Archiviert von das Original (PDF) am 2008-07-25. Abgerufen 2008-03-17. {{}}: Journal zitieren erfordert |journal= (Hilfe)
  • Garen (2007). "Software -Portabilität: Waageoptionen, Entscheidungen treffen". Das CPA -Journal. 77 (11): 3.
  • Lehey (1995). "Porting Unix -Software: Vom Download zum Debuggen" (PDF). Abgerufen 2010-05-27. {{}}: Journal zitieren erfordert |journal= (Hilfe)