Laufzeitumgebung
Eine Laufzeitumgebung ist eine Softwareschicht, die sich zwischen der Applikationsschicht und der Betriebssystemschicht befindet. Sie stellt von Programmen benötigte Grundfunktionen zur Verfügung. Beispiele: Lesen und Schreiben von Dateien, Daten über Netzwerke transportieren, Ein- und Ausgabegeräte steuern, Daten verwalten, Sortieren oder Suchen und vieles mehr.
Eine Laufzeitumgebung ermöglicht, dass Anwendungsprogramme plattformunabhängig (das heißt, unabhängig von der Hardware und dem Betriebssystem) sein können. Steht eine Laufzeitumgebung auf mehreren Plattformen zur Verfügung, können Programme für diese Laufzeitumgebung auf all diesen Plattformen laufen. Eine Laufzeitumgebung stellt damit 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 oder C++ .Net geschrieben wurden.
Beispiele
Beispiele, in denen Laufzeitumgebungen Programmen Plattformunabhängigkeit ermöglichen, sind:
- Java-Applets, die von verschiedenen Web-Browsern auf verschiedenen Betriebssystemen in verschieden Implementierungen des Java Runtime Environments ausgeführt werden.
- Windows-Programme, die unter Wine auf x86-basierten Unix-Derivaten und Linux laufen.
- .NET-Programme, die in der .NET-Reimplementierung Mono unter Linux laufen
- Linux-Programme, die auf UNIX-Betriebssystemen wie BSD, Solaris und SCO-Unix in einer speziell angepassten Linux-Personality laufen.
- IBCS-Programme, die mittels der ibcs-Unterstützung (bestehend aus Kernel-Personality, angepassten Systemaufrufen und Laufzeitbibliotheken) unter Linux laufen.
- 32-Bit Linux-Programme, die zusammen mit den zugehörigen 32-Bit Libraries in der 32-Bit Personality 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-Support für diesen 32-Bit Modus, 32-Bit Betriebssystemaufrufen, einem 32-Bit dynamischen Linker und 32-Bit Softwarebibliotheken.
- DOS-Programme, die unter OS/2, UNIX, und im dosemu unter Linux laufen.
- 16-Bit Windows-Programme, die unter 32-Bit Windows, und 32-Bit Windows-Programme, die unter 64-bit Windows laufen.