Im wesentlichen bietet die PowerUP System Software drei Schnittstellen,
zum einen den HAL (Hardware Abstraction Layer), das ABI (Application Binary
Interface) und das API (Application Programming Interface). Der HAL ist
grundsätzlich immer hardwareabhängig; es ist eine Low Level-Software,
die üblicherweise vom Entwickler der Hardware gestellt wird, da sie
direkt mit der Hardware kommuniziert und zur Erstellung eines alle Funktionen
der Hardware optimal nutzenden HAL die vollständige Kenntnis der Hardware-Funktionalität
notwendig ist. Dies gilt für diese Hardware, aber auch jede beliebige
andere Prozessor-Hardware, die möglicherweise entwickelt wird.
Das ABI setzt auf dem HAL auf und stellt eine "physikalische"
Definition der Schnittstelle (z.B. Registerlayout etc.) dar, d.h im ABI
werden die Konventionen für Funktionsaufrufe innerhalb eines Betriebssystems
festgelegt. Unterschiedliche Hardware-Produkte mit einem kompatiblen HAL
können ein und dasselbe ABI verwenden. Das ABI von phase 5 entspricht im übrigen
dem Standard EABI für PowerPC von Motorola, in dem die Registerlayouts
und Calling Conventions für PowerPC-basierte Systeme plattformübergreifend
festgelegt sind. Durch die konsequente Verwendung des standadisierten Motorola
PowerPC-EABI innerhalb des HAL wird z.B. die Verwendung
von Software-Entwicklungssystemen auf anderen Plattformen oder standardisierten
Libraries für andere PowerPC-Systeme ermöcht (beispielsweise kann die von Motorola
entwickelte LIBMOTO-Library für MkLinux, welche die Floating Point-Routinen
erheblich beschleunigt, aufgrund dieser ABI-Kompatibilität bei Entwicklungen
unter der PowerUP System Software direkt verwendet werden; diese Library
wird auf der PowerUP CD-ROM mitgeliefert).
Das API (Application Programming Interface) ist die auf dem ABI basierende,
logisch definierte Schnittstelle zu den Software-Anwendungen. In wesentlichen
ist dies die Definition der Library-Funktionen der PowerUP System-Libraries.
Diese Funktionen sind durch die mitgelieferten oder bei phase 5 verfügbaren
Entwicklerunterlagen definiert und über alle Produkte der PowerUP-Familie
einheitlich. Zukünftige Erweiterungen des Funktionsumfangs werden selbstverständlich
kompatibel zu den bereits existierenden System-Libraries erfolgen. Selbst
bei massiven Änderungen der Hardware, wie zum Beispiel Cluster-basierende
Mehrprozessor-Systeme, können bestehende Software-Produkte ohne Anpassung
weiterverwendet werden und die Fähigkeiten der Hardware nutzen. Dementsprechend
ist eine zu unserer PowerUP System Software kompatible ABI und API, die
volle übergreifende Softwarekompatibilität zwischen unterschiedlichen
Systemen gewährleistet, von jedem anderen Hardware-Hersteller ohne
Probleme implementierbar, unabhängig von der individuellen funktionellen
Konzeption der Hardware.
Bitte beachten Sie zu diesem Thema auch die von phase 5 vorgeschlagenen
Richtlinien zur PowerUP-Programmierung.
Zusammenfassend kann festgestellt werden, daß der konzeptionelle Aufbau
der PowerUP System Software sämtliche Erfordernisse erfüllt,
um eine einheitliche Softwareschnittstelle für beliebige Hardwareplattformen
(inklusive Mehrprozessorsysteme) bereitzustellen, und damit eine optimale
Hardwareunabhängigkeit gewährleistet. Die eigens gebotenen Möglichkeiten
bauen darüber hinaus auf allgemeinen und verbreiteten Standards auf,
wovon Anwender und Entwickler bereits heute nutzbare Vorteile haben (siehe
LIBMOTO-Beispiel).
|