Eine
Computerplattform
(auch
-schicht
oder
-ebene
, kurz
Plattform
) bezeichnet in der
Informatik
eine einheitliche Grundlage, auf der
Computerprogramme
ausgefuhrt und entwickelt werden konnen.
Eine Plattform ist eine Komponente eines
Rechnersystems
und befindet sich im Verbund mit weiteren Komponenten. Dabei kann es sich um die
Hardware
oder das
Betriebssystem
(OS), sogar um einen
Webbrowser
und die zugehorigen
Programmierschnittstellen
oder andere zugrunde liegende Software handeln, solange das Computerprogramm damit ausgefuhrt wird.
Fur die betrachtete Plattform selbst sind die weiteren Komponenten des Rechnersystems, in dem sie arbeitet,
nicht sichtbar
.
Eine Plattform kann aufgrund dieser
Abstraktion
auf unterschiedliche Rechnersysteme ubertragen werden und arbeiten (siehe grafische Darstellung). Die interne
Komplexitat
des Computersystems wird hierbei mit Hilfe von
Softwaretechnik
erhoht, was
vereinfachte
Nutzung durch menschliche Anwender zur Folge hat.
Bestandteile bzw. Abstraktionsebenen einer typischen Plattform sind:
Rechnerarchitektur
,
Softwarestack
,
Laufzeitumgebung
,
Programmiersprache
.
Die Idee hinter einer Plattform ist
Abstraktion
und
Vereinfachung
.
Erreicht werden kann diese Vereinfachung dadurch, dass dem Anwendungsentwickler ein abstrakteres Funktionsmodell von konkreter Funktionalitat zur Verfugung gestellt wird, typischerweise in Form einer
Programmierschnittstelle
(eng. API), welche darunter liegende Funktionalitat
einhullt
. Fur die resultierende Anwendung geschieht das typischerweise in Form einer dynamisch interpretierten
Laufzeitumgebung
(z. B.
JRE
,
Browser
) oder einer binaren
ABI
zu bekannten
Softwarefunktionen
.
Eine Qualitat, die diese Abstraktionsschichten bieten konnen, ist Allgemeingultigkeit, ublicherweise als
Kompatibilitat
bezeichnet. Das kann sich auf die
Breite
, also die Menge der verschiedenartigen, abstrahierten Details beziehen, wie auch auf die Stabilitat der Plattform uber die Zeit. Bei der Kompatibilitat uber die Zeit kann die Sicherstellung der
Abwartskompatibilitat
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 (
Aufwartskompatibilitat
).
Bei Plattformen kann zwischen Soft- und Hardwareplattformen unterschieden werden.
Eine Hardwareplattform, auch
Maschinenebene
genannt, bezeichnet eine bestimmte
Rechner
art oder eine
[Prozessor]-Familie
. Die Maschinenebene ist hauptsachlich durch eine bestimmte
Rechner-
oder
Prozessorarchitektur
gegeben und liegt logisch betrachtet ganz unten ? unter der
Anwendungsebene
.
Eine Prozessorarchitektur-Plattform verwendet eine einheitliche
Maschinensprache
,
Datenwort
große,
Byte-Reihenfolge
usw. Ein Beispiel dafur 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 konnen grob in
CISC
- und
RISC
-
Architekturen
eingeteilt werden. Bei aktuellen Prozessorarchitekturen verwischen sich aber die Grenzen zwischen diesen beiden Architekturtypen zusehends.
Die sogenannten
Software
-Plattformen
, auch
Anwendungsebene
genannt, werden wie folgt unterschieden.
Kompatibilitat
uber die Zeit lasst sich beispielsweise uber stabilgehaltene
Binarschnittstellen
von
Funktionsbibliotheken
erreichen, mit denen auf die Plattform zugegriffen wird. Bei einer Weiterentwicklung der Plattform muss ausschließlich der Plattformanbieter dafur Sorge tragen, dass die Kompatibilitat erhalten bleibt. Dieser muss dann die neue Version seiner Plattformbibliothek verbreiten, Anderungen am
Anwendungsprogramm
(Neu
kompilierung
oder Anpassung) durch Anwendungsentwickler oder Konfigurationsanderungen durch Anwender sind nicht notwendig.
Neben dem obigen Konzept einer auf Binarkompatibilitat basierenden Plattform, welches eine weitergehende Lauffahigkeit von einmal erstellter Software ermoglicht, existiert noch das Konzept der Kompatibilitat uber die
Portierbarkeit
des
Quellcodes
eines Anwendungsprogramms. Hier wird keine langfristige oder breite Lauffahigkeit der Anwendungsprogramm-
Kompilate
garantiert,
[1]
sondern eine Kompilierbarkeit mit einer weiten Palette an unterliegender Hardware,
Programmbibliotheken
und Software-APIs, auch
Plattformunabhangigkeit
genannt. Nachteile sind, dass der Vorgang des Kompilierens dann haufiger und vor allem durch den Anwender oder Anwendungsentwickler durchgefuhrt werden muss, ein manchmal komplexer und fehlertrachtiger Vorgang. Auch die Erstellung
portabler Software
fur eine solche Plattform ist ein Problem.
[2]
Ebenso kann die Notwendigkeit, dass der Quellcode beim Anwender vorliegen muss, ein Hindernis sein, da beispielsweise bei
proprietarer Software
eine Offenlegung von diesem unublich ist. Deshalb ist dieses Konzept der Quellcode-basierenden Kompatibilitat vor allem im
Open-Source
-Bereich und bei
unixahnlichen Betriebssystemen
dominierend, die Binarkompatibilitat dagegen beispielsweise bei
Windows
[3]
[4]
oder den
Mac-Betriebssystemen
.
[5]
Beispielsweise ermoglicht es eine Softwareplattform ? wie die
Win32
-API und andere ahnliche in Betriebssysteme integrierte Schnittstellen ?
Softwareentwicklern
,
Anwendungen
zu schreiben, die auf veranderlicher
Hardware
, wie
Prozessoren
unterschiedlicher Hersteller, verschiedenen
Grafikkarten
, verschiedenen
Peripheriegeraten
usw. funktionsfahig sind. Typischerweise werden solche Anwendungen jedoch zu
binaren
Programmen, bestehend aus
Maschinenbefehlen
,
kompiliert
, sind also nur auf einer spezifischen Hardware funktionsfahig, setzen also auf diese Hardwareplattform auf. Dieses Vorgehen kann als Kompromiss aus
Effizienz
und Abstraktionsgrad betrachtet werden, da dadurch aufwandige Konvertierung zur
Laufzeit
eingespart wird.
Bei dynamisch interpretierten Laufzeitumgebungen wird die Anwendung von der Hardware noch weitergehend abstrahiert. Das bedeutet, dass Befehle und Daten einer Laufzeitumgebung oder einem
Dienst
ubergeben werden und dort erst zur Laufzeit
interpretiert
oder in die entsprechende Maschinensprache ubersetzt werden. Weitergehend konnen mit einer Laufzeitumgebung (z. B.
JRE
oder
Webbrowser
) auch verschiedene unterliegende
Betriebssysteme
, also andere Softwareplattformen, wegabstrahiert werden.
Fur die Werbung werden oft Markennamen in vereinfachender Weise, als technisch betrachtet eigentlich zu differenzierende Plattformen, zusammengefasst. Ein bekanntes Beispiel dafur ist die ?
Macintosh
-Plattform“, deren technische Plattformen sich je nach Generation grundlegend unterscheiden konnen. Diese vereinfachende Sicht ist teilweise in den Sprachgebrauch und die offentliche Wahrnehmung ubergegangen.
So wirbt z. B. die Firma
Apple
mit der ?Macintosh“- bzw. ?Mac“-Plattform, obwohl uber die gesamte Zeit des Bestehens praktisch alle Plattformen, die Macintosh ausmachen, (teilweise mehrfach) ausgetauscht wurden. Aus technischer Sicht besteht und bestand Macintosh aus sehr unterschiedlichen und teilweise inkompatiblen Hard- und Softwareplattformen. (Im Laufe seiner Geschichte nutzte bzw. nutzt der ?Macintosh“ aus Sicht der Prozessorarchitektur
680x0
,
PowerPC
,
IA-32
bzw.
x64
und
ARM64
. Von Apple-Betriebssystemen verwendete Softwareschnittstellen und Standards sind bzw. waren
Carbon
,
Cocoa
,
POSIX
,
SUS
,
GNU-Software-Umgebung
,
JRE
etc.) Um den Nutzern einen reibungslosen Wechsel dieser Architekturen zu gewahrleisten verwendete Apple ubergangsweise Ansatze wie
Fat Binarys
oder
Universal Binaries
und (transparente)
Emulatoren
. Dadurch wurde die ganze Produktfamilie in der Offentlichkeit weiter als eine einheitliche Plattform wahrgenommen.
Ahnliches gilt auch fur die von der Firma
Microsoft
beworbene Marke ?
Windows
“. Obwohl die Anderungen nie so umfassend waren wie bei Macintosh, ist auch Windows keine einheitliche Plattform. (Es nutzt die Plattformen
x86
?
IA-32
und
x64
? sowie
ARM
, in der Vergangenheit auch
MIPS
,
POWER
bzw.
PowerPC
,
Alpha
sowie
Itanium
und stellte oder stellt die Plattformen
DOS
,
Win16
,
Win32
,
Win64
,
Native API
,
Windows CE
,
.NET
,
POSIX
,
OS/2
und andere Anwendungen zur Verfugung.) So sind z. B. die Win32- und die Windows-CE-API nur sehr bedingt kompatibel. Alle auf den DOS- oder
Windows-NT
-
Kernel
aufbauenden Windows-Produkte enthalten mehrere Plattformen, wodurch fur Anwendungen eine Ruckwarts-Kompatibilitat von teilweise bis zu 30 Jahre (im Fall von Win16) erreicht wurde.
Hersteller von Plattformen haben verschiedene Vorgehensweisen bezuglich der Offenheit bzw. Geschlossenheit ihrer Plattformen.
Dies betrifft z. B. das Entwicklungsmodell, Kostenmodell oder den Grad der Offenheit bzw. Freiheit die bei der Verwendung auf verschiedenen Ebenen gewahrt wird.
In der Industrie bilden Plattformen die Infrastruktur fur Geschaftsmodelle der Digitalisierung.
[6]
Die digitale Plattform dient hier als IT-Architektur fur ?Datengenerierungen, Datenstrukturierungen und Datenaustauschformate auf Basis technischer Standards“.
[7]
Es entsteht ein ?digitaler Backbone“, der in digitaler Kontinuitat alle Akteure und Aktionen verbindet, die an der Wertschopfung mitwirken.
Als Anwendungsschnittstelle kann im Wesentlichen eine durch das
Betriebssystem
eingefuhrte oder inkludierte
Programmierschnittstelle
(
englisch
Application Programming Interface
, kurz API) bezeichnet werden. Es gibt jedoch auch plattformubergreifende APIs, die auf mehreren Betriebssystemen als Laufzeitumgebung verfugbar sind und oft nachtraglich installiert werden mussen.
- AmigaOS
(
AROS
,
MorphOS
)
- Android Runtime
- Bada
- Blackberry
- Carbon
(
klassisches Mac OS
,
macOS
)
- Cocoa
(macOS,
GNUstep
,
iOS
, …)
- GNU
-Software-Umgebung,
GNU-Projekt
(
Unix
/
BSD
,
Linux
,
Fink
,
Cygwin
…)
- Linux Standard Base
, LSB
- Native API
(
Windows NT
)
- OpenVMS
- OS/2
- OS/400
- Palm OS
- Portable Operating System Interface
, POSIX (Unix/BSD einschl. macOS, Linux, Windows NT, …)
- Single UNIX Specification
, SUS (
Unix
, macOS)
- Symbian
- Windows Application Programming Interface
: Win16, Win32, Win64 (
Windows
,
Windows CE
,
WinOS/2
,
ReactOS
,
Wine
, …)
- z/OS
- z/VM
- AMD
Am29000
- ARM
- Atmel
AVR
- DEC
Alpha
(64-Bit)
- IBM
801
- IBM
System/360
und
System/370
(24-Bit-
Adressierung
, 1964 und 1970)
- IBM
System/390
(31-Bit-Adressierung, 1990)
- IBM
System z
(64-Bit-Adressierung, abwartskompatibel zu System/390, /370 und /360, 2000)
- Intel
4004
(4-Bit-
Datenbreite
mit 4-Bit-
Datenbus
, 12-Bit-
Adressraum
mit 4-Bit-
Adressbus
, 1971)
- Intel
4040
(4-Bit-Datenbreite mit 4-Bit-Datenbus, 13-Bit-Adressraum mit 4-Bit-Adressbus, 1974)
- Intel
8008
(8-Bit-Datenbreite mit 8-Bit-Datenbus, 14-Bit-Adressraum mit 8-Bit-Adressbus, 1972)
- Intel
8080
(8-Bit-Datenbreite mit 8-Bit-Datenbus, 16-Bit-Adressraum mit 16-Bit-Adressbus, 1974)
- Intel
x86
(Intel 80x86 und kompatible Prozessoren)
- 8086
/
8088
,
80186
/
80188
,
Z80
und
V20
(16-Bit-Datenbreite mit 16-Bit-Datenbus, 20-Bit-Adressraum mit 20-Bit-Adressbus, 1979)
- 80286
(16-Bit-Datenbreite mit 16-Bit-Datenbus, 24-Bit-Adressraum mit 24-Bit-Adressbus, 1982)
- 80386
(32-Bit-Datenbreite mit 32-Bit-Datenbus, 32-Bit-Adressraum mit 24-Bit-Adressbus, 1985)
- IA-32
bzw. i386 (retronym auch x86-32) bezeichnet den zum 80386 kompatiblen
Befehlssatz
zahlreicher Nachfolger, wie dem
Am386
oder dem
80486
- x64
bzw. x86-64 oder AMD64 bezeichnet den zum
Opteron
kompatiblen Befehlssatz (64-Bit-Datenbreite, 64-Bit-Adressraum; implementiert durch
AMD64
bei Prozessoren von AMD und
Intel 64
bei Prozessoren von Intel)
- zahlreiche Befehlssatzerweiterungen fur IA-32 und x64, wie
AVX
,
FMA
,
MMX
,
PAE
,
SSE
, uvm.
- Intel
i960
- Intel Itanium bzw.
IA-64
(64-Bit-Datenbreite, 64-Bit-Adressraum, nicht kompatibel zu IA-32 und 16-Bit x86)
- MIPS
- Motorola
680x0
(ab 2004
Freescale
, ab 2015
NXP
)
- 6800
und
6809
(Motorola, 8-Bit-Datenbus, 8-Bit-Adressbus, 1974)
- 68000
und
68010
(Motorola, 16-Bit-Datenbus, 24-Bit-Adressbus, 1979)
- 68008
(Motorola, 8-Bit-Datenbus, 20-Bit-Adressbus)
- 68012
(Motorola, 16-Bit-Datenbus, 31-Bit-Adressbus)
- 68020
und
68330
(Motorola, 32-Bit-Datenbus, 32-Bit-Adressbus, 1984)
- 68030
,
68040
und
68060
(Motorola, 32-Bit-Datenbus, 32-Bit-Adressbus, ab 1987)
- ColdFire
(Freescale, 68060-Design, ab 2004)
- Dragonball
(Freescale, vormals MC68328 von Motorola, ab 1995)
- Motorola
88000
- OpenRISC
- PDP-1
,
PDP-4
,
PDP-7
, PDP-9 und PDP-15 (18-Bit)
- PDP-5,
PDP-8
, PDP-12, PDP-14 und PDP-16 (12-Bit)
- PDP-6 und
PDP-10
(36-Bit)
- PDP-11
(16-Bit)
- PA-RISC
- Power
- SPARC
- SuperH
- VAX
(32-Bit)
Plattformen fur
Personal Computer
sind eng mit jenen fur
Anwendungsschnittstellen und Betriebssysteme
verknupft, gehen aber u. U. uber Betriebssystemgrenzen hinweg. PCs (im Allgemeinen Sinn von ?personlicher Computer“) und
Heimcomputer
sind nicht nur Plattformen fur Arbeitscomputer, meist sind sie gleichzeitig auch
Spieleplattformen
.
- ↑
Michael Simms:
Handling misbehaving libraries in binary products.
Linux Game Publishing
, 18. August 2009, archiviert vom
Original
am
22. Februar 2014
;
abgerufen am 15. Januar 2012
(englisch): ?It is a bit of an arcane artform, making a game that runs on all Linux versions. […] [libraries] will load their own dependencies in a way we cannot control.The biggest problem is that OpenAL and SDL try to dlopen libasound, and on some machines, libasound doesn’t work with our binaries. On others, it can actually crash the whole game due to incompatibilities. This is a common issue when dealing with unknown system configurations when sending out a binary-only product into the world.“
- ↑
Troy Hepfner:
Linux Game Development Part 2 ? Distributable Binaries.
gamedev.net, 1. Oktober 2007, archiviert vom
Original
am
13. Oktober 2007
;
abgerufen am 19. Dezember 2011
(englisch): ?
Creating an executable that works on almost all Linux distributions is a challenge. There are a number of factors that contribute to the problem […]
“
- ↑
Ian Murdock
:
On the importance of backward compatibility.
17. Januar 2007, archiviert vom
Original
am
14. Januar 2012
;
abgerufen am 4. Januar 2012
(englisch).
- ↑
Raymond Chen
:
What about BOZOSLIVEHERE and TABTHETEXTOUTFORWIMPS?
In:
The Old New Thing.
15. Oktober 2003, archiviert vom
Original
am
3. Juli 2004
;
abgerufen am 4. Januar 2012
(englisch).
- ↑
Simon Peter:
AppImageKit Documentation 1.0.
(PDF; 38 kB) PortableLinuxApps.org, 2010,
S. 2?3
, archiviert vom
Original
am
29. November 2010
;
abgerufen am 29. Juli 2011
(englisch): ?
A critical distinction between the approach known from Windows and the Mac and the one known from UNIX and Linux is the ?platform“: While Windows and the Mac are seen as platforms to run software on, most Linux distributions see themselves as the system that includes the applications.
“
- ↑
Welche digitale Plattform braucht mein Unternehmen?
, auf cenit.com
- ↑
Studie ? Plattformen ? Infrastruktur der Digitalisierung
, auf vbw-bayern.de