Aus LinuxUser 11/2015

20 Jahre GNUstep

© Gürkan Sengün, GNU GPL,

Kantiges Original

Wie schön war die Zeit, als Fensterdekorationen noch eckig waren und keine Effekte und transparenten Hintergründe im Terminal von der eigentlichen Aufgabe ablenkten. GNUstep bietet all das – und feiert seinen 20. Geburtstag.

Bei GNUstep handelt es sich primär um eine Funktionsbibliothek für die Ausgabe auf dem Bildschirm, die auf dem X-Window-System aufsetzt. Daneben stellt es auch eine freie, plattformübergreifende und objektorientierte Programmierschnittstelle für Applikationen (API) dar. GNUstep [1] umfasst aber nicht nur die Interaktion über GUI-Fenster, sondern beherrscht auch die Anbindung von Remote Objects als Bestandteil sogenannter Enterprise Object Frameworks (EOF) und WebObjects. Diese Technologien stammen ursprünglich von NeXT [2], das Apple 1996 aufkaufte. GNUstep bietet eine vollständige, freie Implementierung namens GNUstep Database Library (GDL) [3], die über dieselbe Schnittstelle wie EOF verfügt. Die ersten Codezeilen von GNUstep wurden 1994 veröffentlicht, vier Jahre vor GTK+.

Das vergleichsweise überschaubare Entwicklerteam von GNUstep verfolgt das Ziel, eine freie, ausgefeilte und stabile Entwicklungsumgebung in Anlehnung an Cocoa zu erstellen und diese möglichst kompatibel zu halten. Cocoa und dessen Touchscreen-Variante Cocoa Touch dienen der Entwicklung von GUI-Programmen für Apple Mac OS X, den iPod und das iPad und haben ihren Ursprung im OpenStep-Standard [4] von NeXT und Sun Microsystems. Der wiederum spezifiziert eine objektorientierte Programmschnittstelle (API), die zwischen dem Kernel des Betriebssystems und den einzelnen Anwendungen vermittelt.

GNUstep umfasst heute ungefähr zwei Millionen Codezeilen (Abbildung 1), etwa zu gleichen Teilen in C und Objective-C geschrieben. Die Sprache Objective-C erweitert C um Elemente der objektorientierten Programmierung und nimmt dabei Anleihen an Smalltalk. Darüber hinaus bestehen mittlerweile von GNUstep aus auch Anbindungen zu Java, Ruby und Guile. Guile, ein Interpreter für den Lisp-Dialekt Scheme, fungiert als offizielle, werkzeugübergreifend nutzbare Sprache für die Erweiterungen des GNU-Projekts.

Gemessen auf der Basis des Constructive Cost Model stecken mittlerweile 535 Mannjahre Programmierleistung im GNUstep-Projekt. Der größte Entwicklungsschub erfolgte 2005 und 2006; viele Bugfixes, besonders für die 64-Bit-Plattformen, flossen 2014 ein. Die Analyseplattform Openhub betrachtet GNUstep inzwischen als ausgereift und ausgesprochen stabil.

Abbildung 1: Analyse des GNUstep-Programmcodes von Openhub (Ausschnitt).
Abbildung 1: Analyse des GNUstep-Programmcodes von Openhub (Ausschnitt).

Was kann GNUstep?

GNUstep schafft mit seinem Entwicklungsansatz die Voraussetzungen dafür, Programme ohne großen Aufwand auf andere Plattformen und Architekturen zu portieren. Damit offeriert das Projekt somit etwas Ähnliches wie GTK+ oder Wine – jedoch für Programme, die bis jetzt nur auf Apple-Plattformen laufen. Der Einsatz der großen Bibliothek aus einzelnen, wiederverwendbaren Softwarekomponenten ermöglicht Entwicklern, schnell anspruchsvolle Software zu bauen. GNUstep unterstützt derzeit GNU/Linux, NetBSD, OpenBSD, FreeBSD, Solaris, Darwin und Windows auf 32- und 64-Bit-PCs sowie ARM-Rechnern; Pakete für OpenSolaris befinden sich in der Validierung. Auf weniger leistungsfähige Geräte wie Mobiltelefone und Handhelds zielt ein Seitenast namens QuantumSTEP [5] ab.

Alle gängigen Linux-Distributionen führen GNUstep-Pakete samt Header-Dateien im Sortiment, um eigene Programme mit einer entsprechenden Anbindung zu entwickeln. Grundsätzlich lässt sich der Programmcode von GNUstep auf jeder POSIX-kompatiblen Unix-Plattform übersetzen, die über den GNU-C-Compiler GCC verfügt oder LLVM/Clang verwendet. Das GNUstep-Wiki [6] bietet eine ausführliche Dokumentation mit einer detaillierten Einführung in die API sowie die bestehenden Klassen.

Zu den zentralen Komponenten von GNUstep gehören das Foundation Kit und das Application Kit. Ersteres beinhaltet beispielsweise die Klassen für Zeichenketten, Zahlen, Arrays, Threads und Objekte. Beim Application Kit handelt es sich dagegen um eine Bibliothek für fensterbasierte, grafische Anwendungen. Es besteht wiederum aus den zwei Komponenten GNUstep GUI Library und GNUstep Backend. Letzteres realisiert ausschließlich das Ansteuern des Grafikdisplays.

The GNUstep Application Project

Der Kern des GNUstep-Projekts umfasst weder einen Desktop- noch einen Window-Manager. Dafür können Sie GNUstep problemlos mit Window Maker (siehe Kasten „Window Maker und GNUstep“), XFCE, GNOME oder KDE kombinieren. Dem modularen Prinzip folgend wurden die Arbeitsflächen- und Fensterverwaltung an andere Projekte delegiert, die auf den GNUstep-Bibliotheken aufbauen. Eine vollständige Übersicht zu den derzeit über einhundert Programmen pflegt das von Riccardo Mottola geleitete GNUstep Application Project [7]. Es verfolgt das Ziel, eine umfassende Zusammenstellung von Software mit Bindung an die GNUstep-Bibliotheken zu erreichen. Derzeit gibt es beispielsweise den PDF-Betrachter Vindaloo, das Adressbuch Addresses, das Kalenderprogramm SimpleAgenda (Abbildung 2), das Vektorzeichenprogramm Graphos, verschiedene Statusanzeigen (CPU-Last, Batteriestatus), einen FTP-Client, eine Uhr, den RSS-Reader Grr sowie diverse Spiele.

Abbildung 2: Termin- und Aufgabenverwaltung mit SimpleAgenda aus dem GNUstep Application Project.
Abbildung 2: Termin- und Aufgabenverwaltung mit SimpleAgenda aus dem GNUstep Application Project.

Über die Spezialanwendung DataBasin greifen Sie auf die gespeicherten Daten zu, die sich im cloudbasierten CRM Salesforce befinden. Auch die freie Groupware namens OpenGroupware sowie das ebenfalls freie, äußerst umfangreiche CRM IntarS aus Österreich binden die GNUstep-Bibliotheken ein. IntarS setzt dabei auf GNUstepWeb [8] und gibt sich so genügsam, dass für den Applikationsserver ein Raspberry Pi als Basismaschine ausreicht. Die Bedienung erfolgt ausschließlich über den Webbrowser.

Daneben finden Sie in der Zusammenstellung die komponentenbasierten Umgebungen Étoilé [9] und Backbone [10], zwei vollständige Desktop-Umgebungen mit klarer Linienführung und einheitlicher Bedienung aller GNUstep-Programme. Für beide Umgebungen stehen Schnappschüsse als vorgefertigtes Image für VirtualBox bereit, die einen guten ersten Einblick bieten (Abbildung 3).

Abbildung 3: Der Desktop Étoilé mit dem Webbrowser Firefox und der Textverarbeitung Typewriter.
Abbildung 3: Der Desktop Étoilé mit dem Webbrowser Firefox und der Textverarbeitung Typewriter.

Window Maker und GNUstep

Viele Anwender bringen Window Maker direkt mit GNUstep in Verbindung – es besteht jedoch kein direkter Zusammenhang über den Programmcode oder die Bibliotheken. Ganz im Gegenteil: Bei Window Maker handelt es sich um ein vollkommen eigenständiges Projekt, das ursprünglich nur zur Anbindung an GNUstep gedacht war. Derzeit nutzt es stattdessen lediglich dessen Symbol, stützt sich jedoch ansonsten auf vollkommen eigene Programm- und Grafikbibliotheken.

GNUstep im Praxiseinsatz

Fragt man GNUstep-Anwender nach den Vorteilen der Umgebung, fallen als Stichworte stets die vergleichsweise geringe Komplexität, die dadurch hohe Effizienz in der Benutzung, der überschaubare Ressourcenverbrauch sowie die Schlichtheit und Modularität der einzelnen Komponenten. In letzter Zeit gab es keine großen Änderungen an der API, sodass die bestehenden Programme weitestgehend unverändert benutzbar blieben. Das reduziert den Aufwand für die Weiterentwicklung und die Pflege von Software.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 11/2015 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: