BOOPSI (Basic Object Oriented Programming System for Intuition) ist ein objektorientiertesFramework innerhalb des AmigaOS-Betriebssystems.
Es wurde 1990 mit AmigaOS 2.0 eingeführt und erweitert die Intuition.library um eine objektorientierte Architektur für grafische Benutzeroberflächen (GUI).
BOOPSI bildet die technische Grundlage für spätere GUI-Toolkits wie MUI und ReAction.
Überblick
BOOPSI ermöglicht es, GUI-Elemente (z. B. Gadgets, Bilder, Listen) als Objekte zu behandeln, die über gemeinsame Methoden angesprochen und erweitert werden können. Obwohl AmigaOS in der ProgrammierspracheCimplementiert ist, stellt BOOPSI eine Form von Objektorientierung durch C-Datenstrukturen, Funktionszeiger und polymorphe Tag-Listen bereit.
Dadurch können neue Klassen entwickelt werden, ohne bestehende Systemfunktionen zu verändern. Das System ist Bestandteil der Intuition.library und stellt folgende Kernfunktionen bereit:
Veröffentlichung des BOOPSI-basierten GUI-Toolkits ClassAct (u. a. window.class, layout.gadget, button.gadget); diente später als Grundlage für ReAction.
1999 – AmigaOS 3.5
Übernahme/Weiterentwicklung von ClassAct unter dem Namen ReAction durch Haage und Partner; Integration als offizielles GUI-Toolkit des Systems.
2000 – AmigaOS 3.9
AmigaOS 3.9 erweitert das BOOPSI-basierte ReAction-System um zusätzliche Gadget- und Image-Klassen, darunter page.gadget, penmap.image und getfile.gadget. Diese Erweiterungen verbesserten die Gestaltungsmöglichkeiten und Integration von Benutzeroberflächen erheblich.
2004 – AmigaOS 4.0
Mit AmigaOS 4.0 wurde das BOOPSI-System auf die PowerPC-Plattform portiert. Dabei wurden die ReAction-Klassen an die neue Systemarchitektur angepasst und um zusätzliche GUI-Elemente ergänzt. Die grundlegende BOOPSI-Struktur blieb jedoch unverändert.
2019 – Vollständige Übernahme durch Hyperion
Hyperion Entertainment gibt die vollständige Übernahme von ReAction bekannt („has acquired full ownership of ReAction“); bestätigt ReAction als offizielles AmigaOS-GUI seit 3.5 und dessen Weiterentwicklung.
2025 – AmigaOS 3.2.3
ReAction-Klassen erhalten zahlreiche Aktualisierungen im Rahmen von AmigaOS 3.2 Update 3 (68k).
Technische Funktionsweise
BOOPSI definiert eine hierarchische Struktur von Klassen und Objekten, die über ein gemeinsames Nachrichtenmodell kommunizieren.
Jede Klasse wird durch eine C-Struktur vom Typ struct IClass beschrieben, die einen Dispatcher-Funktionszeiger enthält:
Objekte werden typischerweise über NewObjectA() erzeugt und mit DisposeObject() freigegeben.
Methodenaufrufe erfolgen über DoMethod() oder DoSuperMethod(), Parameter werden in Tag-Listen (struct TagItem) übergeben.
BOOPSI stellt objektorientierte Konzepte in C bereit:
Vererbung: Unterklassen erweitern Superklassen.
Kapselung: Zugriff auf Objektattribute über standardisierte Get/Set-Methoden.
Modularität: Eigene BOOPSI-Klassen können hinzugefügt oder ersetzt werden.
Bedeutung und Nachfolger
BOOPSI bildete die technische Grundlage für mehrere GUI-Frameworks unter AmigaOS:
Magic User Interface (MUI)
Entwickelt ab 1992 von Stefan Stuntz, erweitert BOOPSI um automatische Layoutsysteme, Stilverwaltung und komplexe Klassenhierarchien.
ReAction
Von ClassAct abgeleitetes GUI-System, zunächst von Haage & Partner (1999), seit 2019 im vollständigen Eigentum von Hyperion Entertainment.
ReAction bildet das standardisierte, BOOPSI-basierte GUI-Toolkit unter AmigaOS 3.x und 4.x; es wird aktiv weitergepflegt (z. B. durch Aktualisierungen der ReAction-Klassen in AmigaOS 3.2.3 im Jahr 2025).
Auch spätere Komponenten wie die DataTypes-Architektur profitierten von BOOPSI-Konzepten (Tag-Listen, objektähnliche Schnittstellen).
Merkmale und Vorteile
Modularität: GUI-Elemente als wiederverwendbare Klassen.
Erweiterbarkeit: Eigene Klassen können bestehende erweitern oder ersetzen.
Konsistenz: Einheitliche Schnittstellen für alle GUI-Objekte.
Effizienz: Geringer Speicherbedarf, geeignet für Systeme ohne Speicherverwaltung.
Reentrancy: BOOPSI-Objekte sind task-sicher innerhalb der Intuition-Architektur.
Nutzung und Verbreitung
BOOPSI fand breite Anwendung in vielen AmigaOS-Anwendungen. Entwickler schätzten die Flexibilität und die Möglichkeit, komplexe Benutzeroberflächen mit minimalem Aufwand zu erstellen. Hier sind einige Beispiele für die Nutzung von BOOPSI:
Magic User Interface (MUI): Ein flexibles und weit verbreitetes Toolkit, das die Erstellung und Anpassung von GUI-Elementen erleichtert.
ReAction (ehemals ClassAct): Ein weiteres beliebtes Toolkit, das speziell für die Nutzung von BOOPSI entwickelt wurde und in vielen AmigaOS-Anwendungen verwendet wird.
Dopus (Directory Opus): Ein leistungsfähiger Dateimanager, der BOOPSI für die Erstellung seiner benutzerdefinierten Oberfläche nutzt.
AmigaAMP: Ein beliebter Musik-Player, der BOOPSI verwendet, um seine Benutzeroberfläche zu gestalten.
IBrowse: Ein Webbrowser, der BOOPSI für die Erstellung seiner GUI-Elemente verwendet.
AWeb: Ein weiterer Webbrowser, der BOOPSI nutzt, um eine benutzerfreundliche Oberfläche bereitzustellen.
BeeBase (ehemals MUIbase): Ein Datenbankmanagementsystem, das BOOPSI für seine grafische Benutzeroberfläche verwendet.
YAM (Yet Another Mailer): Ein E-Mail-Client, der BOOPSI verwendet, um seine Benutzeroberfläche zu gestalten.
Diese Beispiele zeigen, dass BOOPSI in einer Vielzahl von Anwendungen eingesetzt wurde, von Dateimanagern über Musik-Player bis hin zu Webbrowsern und E-Mail-Clients. Die breite Anwendung von BOOPSI unterstreicht seine Bedeutung und Flexibilität für die Entwicklung von grafischen Benutzeroberflächen im AmigaOS.
Literatur
Commodore-Amiga Inc.:Amiga ROM Kernel Reference Manual: Libraries. 1992 (englisch, google.com).
Olaf Barthel, Thomas Richter: Amiga ROM Kernel Reference Manual – AmigaDOS, 2024.
Commodore-Amiga Inc.: Amiga User Interface Style Guide, 1991.
Stefan Stuntz u. a.: MUI Developer Documentation, 1992–2021.