Top-Fragen
Zeitleiste
Chat
Kontext
BOOPSI
Aus Wikipedia, der freien Enzyklopädie
Remove ads
BOOPSI (Basic Object Oriented Programming System for Intuition) ist ein objektorientiertes Framework 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.[1]
Ü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 Programmiersprache C implementiert 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.[1] Das System ist Bestandteil der Intuition.library und stellt folgende Kernfunktionen bereit:
- Klassendefinitionen (
MakeClass(),AddClass()) - Objekterzeugung (
NewObjectA()) - Nachrichtenverarbeitung (
DoMethod(),SetAttrs(),GetAttr())
Remove ads
Geschichte
- 1990 – AmigaOS 2.0 (Kickstart 36)
- Einführung von BOOPSI in der Intuition.library als klassenbasiertes GUI-Modell (Basis-Klassen wie rootclass, gadgetclass, imageclass).[2]
- 1992 – AmigaOS 3.0 (Kickstart 39)
- Erweiterung des BOOPSI-Modells um zusätzliche Standardklassen (u. a. Prop-, String- und Listbrowser-Klassen).[3]
- 1994 – AmigaOS 3.1 (Kickstart 40)
- Stabilisierung und Ausbau der Ereignisbehandlung und BOOPSI-Methoden (OM\_*, GM\_*, IM\_*).[4]
- 1996 – ClassAct (Public Domain)
- Veröffentlichung des BOOPSI-basierten GUI-Toolkits ClassAct (u. a. window.class, layout.gadget, button.gadget); diente später als Grundlage für ReAction.[5][6]
- 1999 – AmigaOS 3.5
- Übernahme/Weiterentwicklung von ClassAct unter dem Namen ReAction durch Haage und Partner; Integration als offizielles GUI-Toolkit des Systems.[7]
- 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.[8][9]
- 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.[10][11]
- 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.[12]
- 2025 – AmigaOS 3.2.3
- ReAction-Klassen erhalten zahlreiche Aktualisierungen im Rahmen von AmigaOS 3.2 Update 3 (68k).[13]
Remove ads
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:[1]
struct IClass {
struct MinNode cl_Node;
UWORD cl_ID;
UWORD cl_UserData;
ULONG (*cl_Dispatcher)(struct IClass *cl, Object *obj, Msg message);
struct IClass *cl_Super;
};
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.
- Polymorphismus: Einheitliche Methodennamen (
OM_NEW,OM_DISPOSE,OM_SET,OM_GETusw.). - 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.[14]
- 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).[15][16]
Auch spätere Komponenten wie die DataTypes-Architektur profitierten von BOOPSI-Konzepten (Tag-Listen, objektähnliche Schnittstellen).[17]
Remove ads
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.[1]
Nutzung und Verbreitung
Zusammenfassung
Kontext
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[18]: 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)[19]: Ein Datenbankmanagementsystem, das BOOPSI für seine grafische Benutzeroberfläche verwendet.
- YAM (Yet Another Mailer)[20]: 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.
Remove ads
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.
- Haage & Partner: ReAction Toolkit Reference, 1999.
- ARexx Developer Team: RxMUI Developer Documentation, 2025.
Remove ads
Weblinks
- Stackt, Tim: BOOPSI IRC - Introduction. 26. Dezember 1997 (englisch, utah.edu).
- BOOPSI - Object Oriented Intuition
Einzelnachweise
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads