Plattform (Computer)

aus Wikipedia, der freien Enzyklopadie
Zur Navigation springen Zur Suche springen
Grafische Darstellung des Grundkonzepts einer Computerplattform: oben drei identische Komponenten (blau) innerhalb dreier unterschiedlicher Umgebungen von weiteren Komponenten, die unten auf drei unterschiedlichen Rechnersystemen aufgesetzt werden konnen

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 .

Zielsetzung und Methoden

[ Bearbeiten | Quelltext bearbeiten ]

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.

Hardwareplattform

[ Bearbeiten | Quelltext bearbeiten ]

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.

Softwareplattform

[ Bearbeiten | Quelltext bearbeiten ]

Die sogenannten Software -Plattformen , auch Anwendungsebene genannt, werden wie folgt unterschieden.

Binarschnittstellen-basierte Plattform

[ Bearbeiten | Quelltext bearbeiten ]

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.

Quellcode-basierende Plattform

[ Bearbeiten | Quelltext bearbeiten ]

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]

Betriebssystem als Plattform

[ Bearbeiten | Quelltext bearbeiten ]

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.

Laufzeitumgebung als Plattform

[ Bearbeiten | Quelltext bearbeiten ]

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.

Nichttechnische Aspekte von Plattformen

[ Bearbeiten | Quelltext bearbeiten ]

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.

Anwendungsschnittstellen und Betriebssysteme

[ Bearbeiten | Quelltext bearbeiten ]

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.

Laufzeitumgebungen

[ Bearbeiten | Quelltext bearbeiten ]
Ein PC-Logo, wie auf zahlreichen Medien-Hullen zu finden, steht fur den Nachfolger der ? IBM-Kompatiblen “ DOS- oder Windows-PCs.

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 .

Server-Plattformen

[ Bearbeiten | Quelltext bearbeiten ]

Einzelnachweise

[ Bearbeiten | Quelltext bearbeiten ]
  1. 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.“
  2. 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 […]
  3. Ian Murdock : On the importance of backward compatibility. 17. Januar 2007, archiviert vom Original am 14. Januar 2012 ; abgerufen am 4. Januar 2012 (englisch).
  4. 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).
  5. 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.
  6. Welche digitale Plattform braucht mein Unternehmen? , auf cenit.com
  7. Studie ? Plattformen ? Infrastruktur der Digitalisierung , auf vbw-bayern.de