BOOPSI

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:

  1. Klassendefinitionen (MakeClass(), AddClass())
  2. Objekterzeugung (NewObjectA())
  3. Nachrichtenverarbeitung (DoMethod(), SetAttrs(), GetAttr())

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]

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_GET usw.).
  • 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]

Merkmale und Vorteile

  1. Modularität: GUI-Elemente als wiederverwendbare Klassen.
  2. Erweiterbarkeit: Eigene Klassen können bestehende erweitern oder ersetzen.
  3. Konsistenz: Einheitliche Schnittstellen für alle GUI-Objekte.
  4. Effizienz: Geringer Speicherbedarf, geeignet für Systeme ohne Speicherverwaltung.
  5. Reentrancy: BOOPSI-Objekte sind task-sicher innerhalb der Intuition-Architektur.[1]

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[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.

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.

Einzelnachweise

  1. a b c d Commodore-Amiga Inc.: Amiga ROM Kernel Reference Manual: Libraries, 2. Auflage, 1991–1992, Kapitel 12 „BOOPSI – Object-Oriented Intuition“.
  2. BOOPSI – Object Oriented Intuition (Archiv). In: AmigaOS Documentation Wiki. Archiviert vom Original am 2. Juni 2021; abgerufen am 14. Oktober 2025 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/wiki.amigaos.net
  3. BOOPSI – Object Oriented Intuition (Archiv). In: AmigaOS Documentation Wiki. Archiviert vom Original am 2. Juni 2021; abgerufen am 14. Oktober 2025 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/wiki.amigaos.net
  4. BOOPSI – Object Oriented Intuition (Archiv). In: AmigaOS Documentation Wiki. Archiviert vom Original am 2. Juni 2021; abgerufen am 14. Oktober 2025 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/wiki.amigaos.net
  5. ClassAct2Demo. In: Aminet. 1996, abgerufen am 14. Oktober 2025 (englisch).
  6. classact33.lha – The final public version of ClassAct. In: Aminet. 15. Dezember 2006, abgerufen am 14. Oktober 2025 (englisch).
  7. ReAction. In: AmigaOS Documentation Wiki. 26. Januar 2025, abgerufen am 14. Oktober 2025 (englisch).
  8. ReAction. In: AmigaOS Documentation Wiki. Abgerufen am 14. Oktober 2025 (englisch).
  9. ReAction Class Demo (AmigaOS 3.9). In: Aminet. 2000, abgerufen am 14. Oktober 2025 (englisch).
  10. ReAction. In: AmigaOS Documentation Wiki. Abgerufen am 14. Oktober 2025 (englisch).
  11. AmigaOS 4.0 SDK Documentation. In: Hyperion Entertainment. 2004, abgerufen am 14. Oktober 2025 (englisch).
  12. Full acquisition of ReAction GUI toolkit. In: Hyperion Entertainment. 14. Mai 2019, abgerufen am 14. Oktober 2025 (englisch).
  13. New Update 3 for AmigaOS 3.2 Available for Download. In: Hyperion Entertainment. 2. April 2025, abgerufen am 14. Oktober 2025 (englisch).
  14. Stuntz, Stefan u. a.: MUI Developer Documentation, 1992–2021, MUI Dev Team, https://github.com/amiga-mui/muidev/wiki.
  15. Haage & Partner: ReAction Toolkit Developer Reference, 1999.
  16. New Update 3 for AmigaOS 3.2 Available for Download. In: Hyperion Entertainment. 2. April 2025, abgerufen am 14. Oktober 2025 (englisch).
  17. Commodore-Amiga Inc.: Amiga ROM Kernel Reference Manual: Libraries, Kapitel 37 „Utility Library“, 1991.
  18. AmigaAMP3-68k readme. In: aminet.net. Abgerufen am 21. Dezember 2022 (englisch).
  19. BeeBase V1.2 readme. In: sourceforge.net. Abgerufen am 6. September 2025 (englisch).
  20. YAM29p1 readme. In: aminet.net. Abgerufen am 19. April 2014 (englisch).

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.