Plattform (Computer)
(Weitergeleitet von Hardware-Plattform) Grundkonzept einer Plattform; oben eine beliebige Plattform (blau) und darunter die Schnittstellen zu anderen Plattformen
Eine Plattform, gelegentlich auch Schicht oder Ebene genannt, bezeichnet in der Informatik eine einheitliche Basis, auf der Anwendungsprogramme ausgeführt und entwickelt werden können. Sie befindet sich zwischen zwei Komponenten eines Rechnersystems. Für die Komponente, welche die Plattform nutzt, ist die Komponente darunter nicht sichtbar. Daher kann dieselbe Komponente über eine Plattform auf verschiedenen „Untergründen“ betrieben werden. Es gibt eine Vielzahl von Plattformen und Plattformkonzepten im Informatikbereich.
1 Zielsetzung und Methoden
2 Plattformarten
2.1 Hardwareplattform
2.2 Softwareplattform
2.2.1 Binärschnittstellen-basierte Plattform
2.2.2 Quellcode-basierende Plattform
2.2.3 Betriebssystem als Plattform
2.2.4 Laufzeitumgebung als Plattform
3 Nichttechnische Aspekte von Plattformen
3.1 Marketing
3.2 Offenheit
4.1 Anwendungsschnittstellen und Betriebssysteme
4.2 Laufzeitumgebungen
4.3 Server-Plattformen
Zielsetzung und Methoden[Bearbeiten]
Die Idee hinter einer Plattform ist die Abstraktion von komplizierten Details für eine Anwendungssoftware bzw. deren Entwickler.
Einerseits können diese Details unbekannte Eigenschaften der Ausführungsumgebung sein, in der eine Anwendungssoftware zukünftig verwendet wird, die zum Entwicklungszeitpunkt der Anwendung nicht bekannt sind oder sein können. Diese Eigenschaften der Ausführungsumgebung können beispielsweise der genaue Typ und Leistungsfähigkeit der Hardwarekomponenten sein oder mit welchem unterliegendem Betriebssystem die Anwendung irgendwann einmal vom Anwender betrieben wird.
Andererseits kann die Motivation für eine Abstraktion auch bekannte Komplexität sein (z. B. unstandardisierte Hardware, konkurrierende Hersteller-APIs), die reduziert werden soll, um Entwicklern eine schnellere, günstigere oder einfachere Entwicklung von Anwendungen zu ermöglichen.
Erreicht werden kann diese Vereinfachung dadurch, dass dem Anwendungsentwickler ein abstrakteres Funktionsmodell von konkreter Funktionalität zur Verfügung gestellt wird, typischwerweise in Form einer Programmierschnittstelle (eng. API), welche darunterliegende Funktionalität einhüllt. Für die resultierende Anwendung geschieht das typischerweise in Form einer dynamisch interpretierten Laufzeitumgebung (z. B. JRE, Browser) oder einer binären ABI zu bekannten Softwarefunktionen (z. B. Win32, DirectX).
Eine Qualität, die diese Abstraktionsschichten bieten können, ist Allgemeingültigkeit, üblicherweise als Kompatibilität bezeichnet. Das kann sich auf die Breite, also die Menge der verschiedenartigen, abstrahierten Details beziehen, wie auch auf die Stabilität der Plattform über die Zeit. Bei der Kompatibilität über die Zeit kann die Sicherstellung der Abwärtskompatiblität bei einer Weiterentwicklung einer Plattform gemeint sein oder auch die Zusicherung des Herstellers, dass mit dem Aufkommen neuer abstrahierbarer „Details“ (z. B. neue Betriebssysteme, neue Hardware) diese in die Plattform integriert werden (Aufwärtskompatibilität).
Plattformarten[Bearbeiten]
Mögliche Bestandteile einer Plattform sind eine Rechnerarchitektur, Programmiersprache, Bibliotheken und Laufzeitumgebungen.
Hardwareplattform[Bearbeiten]
Bei Plattformen kann zwischen Soft- und Hardwareplattformen unterschieden werden. Eine Hardwareplattform bezeichnet einen bestimmten Computertyp oder eine Familie von Computertypen. Sie ist hauptsächlich durch eine bestimmte Computer- bzw. Prozessorarchitektur gegeben.
Eine Prozessorarchitektur-Plattform verwendet eine einheitliche Maschinensprache, Datenwortgröße, Byte-Reihenfolge usw. Ein Beispiel dafür ist die weitverbreitete x86-Architektur.
Wie die einzelnen Befehle dieser Maschinensprache intern im Mikroprozessor verarbeitet werden (z. B. mit Micro-ops), kann sich aber innerhalb der gleichen Plattform stark unterscheiden. Nur die Endergebnisse, welche die Befehle liefern, bleiben dieselben.
Hardwareplattformen können grob in CISC- und RISC-Architekturen eingeteilt werden. Bei aktuellen Prozessorarchitekturen verwischen sich aber die Grenzen zwischen diesen beiden Architekturtypen zusehends.
Softwareplattform[Bearbeiten]
Binärschnittstellen-basierte Plattform[Bearbeiten]
Kompatibilität über die Zeit lässt sich beispielsweise über stabilgehaltene Binärschnittstellen von Funktionsbibliotheken erreichen, mit denen auf die Plattform zugegriffen wird. Bei einer Weiterentwicklung der Plattform muss ausschließlich der Plattformanbieter dafür Sorge tragen, dass die Kompatibilität erhalten bleibt. Dieser muss dann die neue Version seiner Plattformbibliothek verbreiten, Änderunge