Laufzeitsystem und kompatible Schicht

443
Tim
  1. Ich habe mich gefragt, ob Laufzeitsystem und kompatible Schicht dasselbe sind? Beide scheinen eine Software zu sein, auf deren Ausführung andere Software laufen kann. Links zu Wikipedia für die beiden Konzepte wurden oben bereitgestellt.
  2. Sind beide virtuelle Maschinen ? Der Wikipedia-Artikel für virtuelle Maschinen erwähnt, dass das Laufzeitsystem eine Art virtueller Maschine ist.
  3. Warum wird Cygwin in seinem Wikipedia-Artikel als kompatibler Layer bezeichnet ? Ist es ein Emulator von Linux-Betriebssystemen und / oder ein Laufzeitsystem?
1
Randolf Richardson behandelt die allgemeinen Bedingungen ziemlich gut, aber um Ihre spezifischen Fragen zu beantworten (und unter Berücksichtigung der Tatsache, dass die Wikipedia-Artikel einige sehr unterschiedliche Technologien zusammenfassen), erfordern einige Laufzeitebenen VMs (und andere nicht). Cygwin ist eine Kompatibilitätsschicht, die WINE weitgehend ähnelt, da sie die Kompatibilität auf Quellebene mit Linux-Anwendungen ermöglicht, jedoch keine Emulation, sondern lediglich eine API. user55325 vor 12 Jahren 1
@ user55325: Danke! Können Sie genau angeben, welche Wikipedia-Artikel einige sehr unterschiedliche Technologien zusammenfassen und wie? Tim vor 12 Jahren 1
@ user55325: Ich stimme dir zu, dass Cygwin und WINE Kompatibilitätsebenen sind. Ich bin absichtlich allgemeiner geblieben, weil ich glaube, dass die Unterscheidung zwischen diesen beiden Bereichen aufgrund der Virtualisierung teilweise (aber auf eine kleine Weise) verwischt wird, hauptsächlich dank der Vermarkter, die manchmal technische Terminologie missbrauchen. Randolf Richardson vor 12 Jahren 0

1 Antwort auf die Frage

3
Randolf Richardson

Obwohl es scheinbar viele Ähnlichkeiten gibt, gibt es einige wesentliche Unterschiede:

Ein gutes Beispiel für ein Laufzeitsystem wäre die Java Virtual Machine, die eine konsistente, plattformübergreifende Umgebung für [kompilierten] Java-Bytecode bietet.

Ein gutes Beispiel für eine Kompatibilitätsebene wäre WINE, mit der Benutzer unveränderte Windows-Anwendungen direkt unter Linux und Unix ausführen können. Verglichen mit WINE können die Kompatibilitätsschichten auch recht klein sein, z. B. eine einzige Bibliothek, die die Hauptcodebasis für den Zugriff auf betriebssystemspezifische Funktionen verwendet (z. B. Öffnen einer Datei, Kommunizieren über das Internet usw.), die eine konsistente API bereitstellen für die Anwendung, um alle hässlichen OS-spezifischen Unterschiede effektiv zu verbergen.

Der Nachteil einer Laufzeitumgebung besteht darin, dass die gesamte Umgebung für den jeweils ausgeführten Code verfügbar sein muss, was einen erheblichen Entwicklungsaufwand erfordern kann.

Der Nachteil einer Kompatibilitätsebene ist, dass sie nicht unbedingt Konsistenz bietet und schwieriger zu debuggen ist.

Der Vorteil einer Laufzeitumgebung besteht darin, dass die Anwendungen nach der Portierung auf eine neue Plattform ohne Änderungen ausgeführt werden.

Der Vorteil einer Kompatibilitätsebene besteht darin, dass zur Unterstützung einer neuen Plattform nur eine neue Ebene (oder ein neuer Satz von Ebenen) erstellt werden muss und die Hauptanwendung für die neue Zielplattform mit minimalen Änderungen kompiliert werden kann.

Virtualisierung ist wie eine extrem umfangreiche Laufzeitumgebung, der Unterschied besteht jedoch darin, dass ein CPU-Befehlssatz (und alle erforderlichen Geräte) sehr gut virtualisiert oder emuliert werden.

Vielen Dank! Gibt es Hinweise auf die in diesem Beitrag genannten Konzepte? Bücher, Webseiten, ... Tim vor 12 Jahren 1
@ Tim: Es basiert alles auf meiner eigenen Erfahrung (ich habe meine Antwort ** von Herzen ** geschrieben), als ich mit diesen Technologien im Laufe der Jahre gearbeitet habe. Was mir dabei einfällt, ist, dass ich einiges von verschiedenen hilfsbereiten Leuten in Freenode.Net (IRC) gelernt habe, indem ich die Dokumentation für die von mir genannten Produkte (und andere) gelesen habe und auch mit ihnen zusammengearbeitet habe, um sie zu verwenden. meine eigenen technischen Kenntnisse (wenn jemand meine Antwort hier in den Kommentaren hinzufügen möchte, freue ich mich auf jeden Fall). Randolf Richardson vor 12 Jahren 0