Ausführungsschicht

Eine Laufzeitumgebung (von englisch: „runtime environment“; kurz: „RTE“ oder seltener auch „RE“; auch Ausführungsumgebung oder seltener Ablaufumgebung genannt) ist eine Softwareschicht, die sich zwischen der Anwendungs- und der Betriebssystem-Schicht befindet. Sie stellt von Programmen benötigte Basis-Funktionen zur Verfügung.

Details

Eine Laufzeitumgebung lässt Anwendungsprogramme plattformunabhängig ablaufen, das heißt, unabhängig von der verwendeten Hardware und dem Betriebssystem. Steht eine Laufzeitumgebung auf mehreren Plattformen zur Verfügung, können Programme für diese Laufzeitumgebung auf all diesen Plattformen ausgeführt werden. Eine Laufzeitumgebung stellt damit bereits selbst eine „Plattform“ dar, auf der Programme aufsetzen können.

In manchen Fällen ist eine portable virtuelle Maschine Bestandteil einer Laufzeitumgebung. Ein bekanntes Beispiel hierfür ist die Programmiersprache Java. Die Laufzeitumgebung eines Java-Programms wird Java Runtime Environment genannt und vereinigt die Java-Klassenbibliotheken, die z. B. für Ein- und Ausgabe verwendet werden, und die Java Virtual Machine, die für die Ausführung des Java-Bytecodes verantwortlich ist.

Ein anderes Beispiel ist Microsofts .NET-Plattform. Die .NET Common Language Runtime (CLR) ist (bei neueren Windows-Betriebssystemen) die Laufzeitumgebung für Programme, die in C#, Visual Basic .NET, J#, JScript .NET und C++/CLI geschrieben wurden.

Ferner werden Programme, die in Objective-C geschrieben wurden in der entsprechenden Laufzeitumgebung ausgeführt. Diese sorgt unter anderem für das dynamische Dispatching von Nachrichten auf Methoden.

Basis-Funktionen

Beispiele für die Basis- oder Grund-Funktionen einer Laufzeitumgebung sind:

  • Lesen und Schreiben von Dateien
  • Daten über Netzwerke transportieren
  • Ein- und Ausgabegeräte steuern
  • Daten verwalten
  • Sortieren und Suchen

Plattformunabhängigkeit

Beispiele, in denen Laufzeitumgebungen Programmen Plattformunabhängigkeit ermöglichen, sind:

  • Java-Applets, die von verschiedenen Web-Browsern auf verschiedenen Betriebssystemen in verschiedenen Implementierungen der Java-Laufzeitumgebungen ausgeführt werden
  • Windows-Programme, die mit Wine auf x86-basierten Unix- und Linux-Umgebungen laufen
  • .NET-Programme, die in der .NET-Reimplementierung Mono unter Linux laufen
  • XUL-Programme, die mit der XULRunner-Laufzeitumgebung ausgeführt werden
  • Linux-Programme, die auf UNIX-Betriebssystemen wie BSD, Solaris und SCO-Unix in einer speziell angepassten Linux-Umgebung laufen
  • IBCS-Programme, die mittels der IBCS-Unterstützung (bestehend aus Kernel-Umgebung, angepassten Systemaufrufen und Laufzeitbibliotheken) unter Linux laufen
  • 32-Bit-Linux-Programme, die zusammen mit den zugehörigen 32-Bit-Bibliotheken in der 32-Bit-Umgebung von 64-Bit-Linux-Kerneln laufen. Die 32-Bit-Laufzeitumgebung besteht dabei aus der Unterstützung der 64-Bit-CPUs von Intel für 32-Bit-Code, Kernel-Unterstützung für diesen 32-Bit-Modus, 32-Bit-Betriebssystemaufrufen und einem 32-Bit-dynamischen Linker.
  • DOS-Programme, die unter OS/2, UNIX und Linux im DOSEMU laufen
  • 16-Bit-Windows-Programme, die unter 32-Bit-Windows, und 32-Bit-Windows-Programme, die unter 64-Bit-Windows laufen

Wikimedia Foundation.

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”