Im Katalog suchen

Linux - Wegweiser zur Installation & Konfiguration, 3. Auflage

Online-Version

Copyright © 2000 by O'Reilly Verlag GmbH & Co.KG

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel

Anhang B
Das GNOME-Projekt

von
Miguel de Icaza, Instituto de Ciencias Nucleares, UNAM;
Nat Friedman, International GNOME Support;
Federico Mena, Red Hat Software;
Elliot Lee, Red Hat Software.

Was ist GNOME?

Unix konnte noch nie als besonders benutzerfreundliches Betriebssystem bezeichnet werden. Weil es ursprünglich von Programmierern für Programmierer entworfen wurde, war die Kommandozeile lange Zeit die hauptsächliche Schnittstelle. Sie ist zwar eine sehr mächtige Schnittstelle, aber auch sehr schwer zu erlernen, insbesondere für Leute, die keine Vorkenntnisse im Computerbereich mitbringen.  Fußnoten 1

Das Erscheinen des X Window Systems brachte dann eine Vielzahl von GUI-Toolkits hervor. Dies führte zu zwei Ergebnissen: Unix-Programmierer hatten auf einmal die Möglichkeit, einfach anzuwendende, benutzerfreundliche Schnittstellen zu schaffen. Aber der Markt wurde aufgespalten, und die Programmierer wandten sich verschiedenen Lagern zu. Diese Fragmentierung verzögerte die Entwicklung und Verbreitung einer graphischen Standard-Benutzerschnittstelle sowie mächtiger graphischer Applikationen.

Die Fragmentierung der Unix-Welt hatte auch noch andere Konsequenzen. Während Unix-Entwickler versuchten, ihren zersplitterten Markt wieder zu vereinen, begann die Unix-Technologie und das zugrundeliegende Design, das aus den siebziger Jahren stammte, zu stagnieren. Andere Betriebssysteme hielten dagegen in Bereichen mit dem technologischen Fortschritt Schritt, die Unix lange ignoriert hatte.

Die Benutzerschnittstelle ist eine wichtige Komponente heutiger Desktop-Systeme, aber ein vollständiger Desktop und seine Applikationen müssen viel mehr leisten, um all die notwendige Konsistenz und alle Features bieten zu können, die die Anwender von modernen Systemen erwarten. Auch eine Infrastruktur für Softwareentwicklung muß geschaffen werden.

GNOME, was für »GNU Network Object Model Environment« steht, ist ein Versuch, diese Probleme anzugehen. Es besteht aus einer Reihe von Bibliotheken, Komponentenschnittstellen und Applikationen. Das GNOME-Projekt stellt Unix-artigen Systemen die Technologien zur Verfügung, die es lange Zeit nicht gab. GNOME ist aber kein Forschungsprojekt: Das GNOME-Team entwickelt und implementiert Ideen, die in der Vergangenheit auf anderen Systemen ausprobiert wurden und sich als erfolgreich herausgestellt haben. Natürlich scheut das Team auch nicht davor zurück, neue Ideen auszuprobieren, aber im Moment ist zunächst noch viel Aufholarbeit zu leisten.

Das Fenstersystem als Grundlage

Integrierte Betriebssysteme wie MacOS oder Microsoft Windows verstecken die Tatsache, daß erst viele Programme zusammen einen Desktop ausmachen. Unter Linux muß man ein wenig darüber wissen, wie diese Illusion geschaffen wird. Es gibt unter Linux und anderen Unix-artigen Betriebssystemen im wesentlichen drei verschiedene Softwarepakete, die zusammen eine GUI-Umgebung bilden.

Auf der niedrigsten Softwareebene befindet sich das X Window System selbst, das auch X11 genannt wird. X11 ist die Basissoftware, die direkt mit der Hardware interagiert. Es kümmert sich um die Interaktion mit den Eingabe- (Tastatur und Maus) und Ausgabegeräten (der Bildschirm).

Applikationen können Grafiken auf den Bildschirm zeichnen und Eingaben von der Tastatur und der Maus entgegennehmen, indem sie mit dem X Window System kommunizieren. Die einzelnen Applikationen müssen nicht wissen, wie die Hardware selbst funktioniert. Auf den meisten Unix-Varianten ist X heutzutage eine Standardkomponente.

X erledigt diese Aufgabe netzwerktransparent. Das bedeutet, daß Applikationen unter dem X Window System irgendwo im Netzwerk laufen können.

Das X Window System legt nicht fest, wie die Benutzerschnittstelle der angezeigten Applikationen aussehen muß und wie Fenster verwaltet werden sollen. Statt dessen überträgt X die Verantwortung für das Verwalten der Fenster an eine besondere Applikation, den Window Manager.

Der Window Manager steuert die Positionierung und das Aussehen der Fenster auf dem Bildschirm. Er arbeitet mit X zusammen und teilt X mit, wo und wie die Fenster gezeichnet werden sollen. Es gibt viele Window Manager, die alle auf unterschiedliche Weise konfiguriert und angepaßt werden können, aber alle haben die gleichen grundlegenden Funktionen.

So verwenden heutzutage die meisten Leute X: das zugrundeliegende Fenstersystem, ein Window Manager und einige X-Applikationen.

Die Rolle von GNOME

Die Benutzerschnittstelle von GNOME baut auf X auf und besteht grob gesagt aus:

dem GNOME-Desktop-System
Eine Reihe von Werkzeugen, die eine Desktop-Abstraktion für die Benutzer bereitstellen, sowie verschiedene Hilfsprogramme für die tägliche Arbeit.
den Bibliotheken mit dem GNOME-Applikationsrahmen
Diese Bibliotheken stellen sicher, daß GNOME-Applikationen konsistent aussehen und sich auch konsistent verhalten.
GNOME-Applikationen
Als Teil des GNOME-Projekts sind eine Reihe von Applikationen geschrieben worden, die mit dem GNOME-System vertrieben werden.

Das GNOME-System kann mit jedem Window Manager zusammenarbeiten, aber die volle Desktop-Funktionalität ist nur vorhanden, wenn der Window Manager GNOME speziell unterstützt. Derzeit tun das IceWM, fvwm2, Enlightenment und WindowMaker.

GNOME ist ein Teil des GNU-Projekts. GNU steht für »GNU's not Unix« (ein rekursives Akronym) und wurde 1984 mit dem Ziel begonnen, ein frei verteilbares Unix-artiges Betriebssystem zu schaffen.

Neben der Bereitstellung eines anwenderfreundlichen Desktops sowie mehrerer Applikationen versucht GNOME, folgende von Unix-Programmierern schmerzlich vermißte Funktionen bereitzustellen:

Bevor wir uns anschauen, wie GNOME versucht, diese Probleme zu lösen, noch ein kurzer Abriß der Geschichte des Projekts.

Eine kurze Geschichte des GNOME-Projekts

Bevor das GNOME-Projekt, wie wir es heute kennen, angefangen wurde, gab es bereits zwei andere Projekte, das »libapp«-Projekt und das »old-GNOME«-Projekt. libapp hatte das Ziel, Programmierern eine standardisierte Methode zum Speichern, Benutzen und Abfragen verschiedener Informationen über das System und die Vorlieben des Benutzers zur Verfügung zu stellen; jeder konnte diese Bibliothek verwenden. Old-GNOME dagegen versuchte, ein Standardmodell für Softwarekomponenten unter Unix zu schaffen, mit dem Programme als Komponenten in anderen Programmen verwendet werden konnten.

Icon

Kapitel 11

Als das KDE-Projekt (siehe »Das K Desktop Environment« in Kapitel 11) sich als ein ernsthafter und erfolgreicher Versuch herausstellte, eine Desktop-Umgebung für Unix zu schaffen, waren einige Leute mit der Lizenz unzufrieden. Das KDE-Team hatte sich entschlossen, sein Projekt auf dem GUI-Toolkit Qt aufzusetzen, das von einigen wenigen nicht als freie Software angesehen wurde. Die Lizenzbedingungen von Qt wurden inzwischen geändert, und Qt gilt als freie Software, aber damals waren diese Kritiker der Meinung, daß es besser wäre, ein eigenes Projekt zu starten. Dies führte zum Versuch, mit dem GNOME-Projekt eine weitere freie Desktop-Umgebung zu schaffen, die auf den alten Ideen aus Old-GNOME und libapp basierte.

Ein weiteres Ziel des GNOME-Projekts war es sicherzustellen, daß die Basisbibliotheken von jeder unter Unix verfügbaren Programmiersprache verwendet werden konnten. Jeder Programmierer sollte Zugriff auf diese Technologien haben, unabhängig von der von ihm verwendeten Programmiersprache.

Die Mitglieder des alten GNOME-Teams verfügten über Kenntnisse aus verschiedenen Bereichen der freien Software, der Grafik und dem Design von Programmiersprachen. Das ursprüngliche Team bestand aus den Programmierern, die am »GNU Image Manipulation Program« (GIMP) arbeiteten, Peter Mattis und Spencer Kimball. Richard Stallman, der Gründer des GNU-Projekts, gehörte ebenfalls dazu, genauso wie Erik Troan und Mark Ewing von Red Hat Software. Außerdem kamen wichtige Beiträge von Teilnehmern der Mailing-Listen zu freier Software und GUILE. (GUILE ist die »GNU Unique Intelligent Language for Extensions«, eine Programmiersprache, die in andere Programme eingebettet werden kann, um diese über Skripten erweiterbar zu machen. GUILE war eine der ersten Skriptsprachen, die mit GNOME verwendet werden konnte.)

Seit das Projekt gestartet wurde, sind regelmäßig Versionen des GNOME-Quellcodes veröffentlicht worden. Nach 18 Monaten Entwicklung wurde GNOME 1.0 offiziell im März 1999 freigegeben. Aktualisierungen und Fehlerbereinigungen werden weiterhin ständig vorgenommen, und derzeit befindet sich die 1.0-Reihe von GNOME bei Version 1.0.10.

GNOME 1.0 ist ein bedeutender Meilenstein in der Geschichte des Projekts, da es einen Vertrag zwischen den GNOME-Entwicklern, unabhängigen Softwareentwicklern und Anwendern darstellt. Version 1.0 stellt eine stabile Programmierschnittstelle (API) bereit, auf deren Basis neue Applikationen entwickelt werden können. Unabhängige Entwickler können all die neuen Funktionen aus den Bibliotheken verwenden und dabei immer sicher sein, daß ihre Applikationen auch in Zukunft funktionieren werden.

Der GNOME-Desktop aus Anwendersicht

GNOME stellt seinen Anwendern eine intuitive Desktop-Metapher, einen Dateimanager, eine einfache Möglichkeit, installierte Applikationen zu starten, und Unterstützung für Themen bereit, mit denen Benutzer die ästhetischen Eigenschaften ihres Desktops und ihrer Applikationen ändern können. Beispielsweise läßt das »steel«-Thema den Desktop und die Applikationen wie aus Stahl wirken, das »wooden«-Thema dagegen wie aus Holz. Verschiedene Werkzeuge - wie ein Kalender, ein Taschenrechner, ein Adreßbuch und eine kleine Tabellenkalkulation - sind ebenfalls enthalten. Mit dem GNOME-Kontrollzentrum können die Anwender das Aussehen ihrer Applikationen einfach ändern. Die meisten GNOME-Distributionen enthalten verschiedene fertig entworfene Themen für den Desktop. Viele weitere Themen sind unter http://gtk.themes.org zu finden, einer Website, die sich speziell mit Themen befaßt.

Der GNOME-Desktop stellt eine Reihe von mächtigen Arbeitserleichterungen bereit, die es einfach machen, mit dem Computer zu interagieren. Eine davon ist Drag-and-Drop: Eine Datei kann auf den Desktop fallengelassen werden, um eine Verknüpfung darauf zu erschaffen, eine Farbe kann aus dem Farbauswahldialog auf das Panel gezogen werden, um die Hintergrundfarbe des Panels zu ändern, und Dokumente können auf das Druckersymbol gezogen werden, um sie auszudrucken.

Ein weiteres zentrales Merkmal ist die Unterstützung des Session-Managements, mit dem GNOME sich den Zustand des Desktops merkt, wenn sich der Benutzer vom System abgemeldet hat. Wenn sich die Benutzer also anmelden, sehen sie den gleichen Desktop und die gleichen Applikationen wie beim letzten Abmelden. Außerdem können GNOME-Applikationen zusammenarbeiten, indem sie beispielsweise eine gemeinsame Zwischenablage verwenden.

Einige GNOME-Applikationen

Inzwischen stehen einige GNOME-kompatible Applikationen bereit, es kommen auch immer wieder einmal welche dazu. Die folgenden zählen zu den beliebtesten:

DIA
Eine Applikation zum Erstellen diverser ausgefeilter Diagramme.
GIMP

Icon

Kapitel 9

Das »GNU Image Manipulation«-Programm, mit dem alles anfing, wird in Kapitel 9, Editoren, Textwerkzeuge, Grafiken und Drucken, beschrieben. GIMP ist ein mächtiges Bildverarbeitungs- und Zeichenprogramm. Es kann gängige Funktionen der Bildmanipulation - wie Zeichnen, Farbkorrektur und Beschneiden - durchführen und unterstützt auch fortgeschrittenere Möglichkeiten - wie Ebenen und Selektionen - und kann über ein raffiniertes Plug-in-System erweitert werden. Plug-ins sind separate Programme, die besondere Bildmanipulationsfunktionen oder Spezialeffekte bereitstellen.

Gnumeric
Eine Tabellenkalkulation. Gnumeric hat viele der Features, die Sie von kommerziellen Programmen erwarten würden, ist aber freie Software. Ein besonders nützliches Feature ist die Fähigkeit, Microsoft Excel-Dateien importieren zu können. Nähere Informationen finden Sie unter der URL http://www.gnome.org/gnumeric .
Guppi
Eine einfache Grafikanwendung. Gnumeric verwendet dieses Werkzeug, um Grafiken zu produzieren.
AbiWord
Eine vollständige Textverarbeitung, die die GNOME-Bibliotheken als Engine verwendet und in Zukunft die gesamte GNOME-Komponententechnologie ausnutzen wird. Die Anwender werden dann Tabellenblätter aus Gnumeric oder Grafiken aus dem GIMP in AbiWord-Dokumente einbetten können - oder umgekehrt.

GNOME als Entwicklungsplattform

Während GNOME Unix-basierte Betriebssysteme sicherlich anwenderfreundlicher machen kann, verbringt das GNOME-Team ebensoviel Zeit damit, auch die Programmierung angenehmer zu machen.

Aus Sicht eines Entwicklers besteht GNOME aus einer Reihe von zentralen Bibliotheken, einer Infrastruktur für Komponentenprogrammierung und einer Anzahl von wiederverwendbaren, sprachneutralen Komponenten.

Die Basisbibliotheken von GNOME

Viele der mächtigen Features funktionieren dank dieser Bibliotheken in allen GNOME-Bibliotheken gleich.

GTK+ (GIMP-Toolkit)

GTK+ ist das objektorientierte graphische Toolkit von GNOME. Es wurde ursprünglich von den GIMP-Entwicklern entworfen, um ihre Arbeit am GIMP zu erleichtern. GNOME wählte GTK+ insbesondere deswegen, weil es ein Objektsystem mit reicher Funktionalität implementiert und bereits Bindungen für eine Reihe von Programmiersprachen bereitstellt. Damit trägt GTK+ bereits zu einem großen Teil zum Ziel von GNOME bei, unabhängig von einzelnen Programmiersprachen zu sein. Weitere Informationen dazu finden Sie unter http://www.gtk.org .

Es wurden Richtlinien entwickelt, wie neue Sprachbindungen (sogenannte Wrapper) für die GTK+/GNOME-Bibliotheken hinzugefügt werden können. Entwickler, die sich an diese Richtlinien gehalten haben, haben Unterstützung für eine Reihe von Sprachen programmiert, darunter C++, Objective-C, TOM, Perl, Python, GUILE, ADA und andere. Weitere Bindungen befinden sich noch in der Entwicklung, was leicht verständlich ist, wenn man sich anschaut, aus wie vielen Bibliotheken GNOME besteht.

Das Objektsystem von GTK+ hat ein sehr elegantes Design und erlaubt sowohl klassische Einfachvererbung als auch das dynamische Erzeugen von neuen Methoden und Klassen. Weiter verfügt es über einen Signalmechanismus, der Signal-Handler dynamisch mit Ereignissen in der Benutzerschnittstelle (wie beispielsweise einem Mausklick) verbindet.

GTK+ wurde aber auch gewählt, weil es zum Erreichen des zweiten Projektziels beiträgt, dem Erschaffen einer intuitiven Desktop-Metapher. Dies geschieht durch die Unterstützung zweier Drag-und-Drop-Protokolle, Xdnd (X Drag und Drop) und M DnD. Damit können Objekte zwischen für GNOME geschriebenen Programmen (wie dem Desktop) und Programmen, die mit anderen Tools geschrieben wurden (wie Netscape), hin- und hergezogen werden. Weil GTK+ dies alles bereits selbst erledigt, bekommen die Anwendungsentwickler diese Funktionalität ohne eigenes Zutun.

Imlib

Hierbei handelt es sich um eine Bibliothek zur Bildverarbeitung, die schnelles Laden, Speichern und Anzeigen von Bildern ermöglicht. Imlib stellt fortgeschrittene Funktionen zum Cachen von Bildern und zur Farbverwaltung bereit, die selbst auf einfachen Displays oder 8-Bit-Videokarten noch effizient funktionieren. Wegen der Einschränkungen in der Farbverwaltung im X Window System müssen Entwickler, die direkt die X-Bibliotheken verwenden, sowie Icon-Designer bedenken, wie viele Farben ein bestimmtes Image wohl benötigt. Imlib enthebt Programmierer und Designer dieser Sorgen, indem es automatische Farbreduzierung und Dithering bereitstellt.

XML/DOM-Bibliotheken

Das WWW-Konsortium (die Organisation, die Standards für das World Wide Web absegnet) hat vor kurzem zwei neue Standards eingeführt: XML und DOM. Bei XML (eXtensible Mark-up Language) handelt es sich um eine Sprache, die verwendet werden kann, um andere Markup-Sprachen wie HTML zu entwickeln und zu beschreiben. Dank der vorhandenen, sauber programmierten XML-Bibliothek können GNOME-Entwickler sehr einfach portables Laden und Speichern strukturierter Daten in ihre Applikationen einbauen. DOM (Document Object Model) ist ein Modell, das beschreibt, wie Applikationen Datenbereiche in einem XML-Dokument ändern können. Das Implementieren dieser Standards als GNOME-Bibliotheken macht es Programmierern leichter, Applikationen zu schreiben, die XML und/oder DOM verwenden.

Die Canvas/Libart-Engines

Der Canvas ist eine Engine zum Erzeugen strukturierter Grafiken, mit denen Programmierer auf einfache Art interaktive graphische Anzeigen erstellen können. Dazu gehört auch unbeschränktes Scrollen und vollständige Flimmerfreiheit. Der Programmierer erzeugt einfach ein Canvas-Element (mitgeliefert werden Elemente wie Text, Image, Polygone und Gtk-Widgets) und gibt die gewünschte Position an. Der Canvas kümmert sich dann um den Rest.

Der Canvas wurde als erweiterbare, aber generische Display-Engine entwickelt. Beispielsweise verwendet die Tabellenkalkulation Gnumeric den Canvas, um das Tabellenblatt (spreadsheet) anzuzeigen, stellt aber auch eigene Erweiterungen bereit. Applikationen wie der GNOME-Kalender und der Dateimanager Midnight Commander verwenden die grundlegende Funktionalität des Canvas in ihren Anzeigen.

Libart ist eine Engine zur Manipulation und Darstellung von Vektoren, die Anti-Aliasing und Alpha-Komposition beinhaltet. Der Canvas setzt auf Libart auf und verwendet diese Bibliothek zum Darstellen der Objekte in einem RGB-Puffer. Libart macht es dem Canvas leicht, Ausgaben mit Anti-Aliasing und Alpha-Komposition zu erzeugen. Die Libart-Engine stellt eine Obermenge des Imaging-Modells von PostScript zur Erzeugung von Ausgaben sehr hoher Qualität bereit.

Das Komponenten- und Dokumentenmodell Bonobo

Bonobo ist der Name des Teilprojekts von GNOME, das zum Ziel hat, ein Komponentenmodell und einen Standard für die Interaktion zwischen den Komponenten eines komplexen Dokuments zu erschaffen.

Das Bonobo-Framework verfolgt ein ähnliches Konzept wie »Object Linking and Embedding« (OLE). Bonobo erlaubt es Programmierern, wiederverwendbare Software-Komponentenobjekte (ähnlich wie Active X-Controls) zu erzeugen. Außerdem ist Bonobo ein Dokumentenmodell, das ein System definiert, indem diese Objekte nahtlos mit gemeinsam genutzten Container-Dokumenten interagieren können (ähnlich wie »Linking and Embedding«).

Um ein Beispiel zu verwenden, das sicherlich vielen vertraut ist: In Microsoft Office kann ein Excel-Dokument in ein Word-Dokument eingebettet werden. Das Word-Dokument ist in diesem Fall ein Container-Dokument. Es enthält sowohl die Word- als auch die Excel-Daten. Wenn Sie aber auf die Excel-Daten klicken, dann können Sie mit diesen Daten arbeiten, als würden Sie sich gerade in Excel befinden, auch wenn die Excel-Daten in ein Word-Dokument eingebettet sind. Die Applikationsfunktionen von Excel als ein Bestandteil der Komponentensoftware erzeugen die Illusion, daß der Benutzer nur mit einer Applikation interagiert.

Bonobo besteht aus einer Reihe von CORBA-Schnittstellen, die zum Entwurf und zur Interaktion von Komponenten notwendig sind. Die Bonobo-Schnittstellen sind sowohl sprach- als auch Toolkit-unabhängig, und Bonobo-Dokumente können in jeder Sprache geschrieben und gelesen werden. Die Referenzimplementierung von Bonobo basiert auf dem Objektsystem von Gtk und bildet CORBA-Schnittstellen auf Gtk-Objekte ab, die vom Applikationsprogrammierer einfach angepaßt werden können.

Viele Programmierer verbinden OLE mit großer Komplexität, aber beachten Sie, daß das daran liegt, daß Microsoft OLE so entwerfen mußte, daß es gut in Windows hineinpaßt. Bonobo hat zwar über weite Strecken die gleiche Funktionalität wie OLE, ist aber ein viel einfacheres System, wenn es um das Verstehen und das Entwickeln von Software damit geht.

Common Object Request Broker Architecture (CORBA)

Unix ist immer wieder dafür gelobt worden, daß es es dem Benutzer einfach macht, eine Reihe von kleinen Filterprogrammen (wie grep oder sed) zu nehmen und diese mit Pipes zu verbinden, um eine komplexere, dem jeweiligen Bedarf angepaßte Applikation zu erzeugen. Leider lassen sich Pipes und Filter nicht sehr gut auf komplexere Applikationen (insbesondere graphische Applikationen) übertragen. GNOME ist eine Umgebung, in der Softwareobjekte miteinander auf eine standardisierte Art und Weise kommunizieren können (auch in einem Netzwerk), ohne etwas voneinander wissen zu müssen. Dies wird durch den CORBA-Unterbau von GNOME ermöglicht.

CORBA ist ein Softwaresystem, das vollständig auf offenen Standards basiert und Methoden spezifiziert, durch die Softwareobjekte miteinander interagieren. Diese Objekte kommunizieren miteinander über einen »Object Request Broker« (ORB), der den Datenverkehr durch all die verschiedenen Softwareschichten leitet. Der CORBA-Standard spezifiziert die Funktionalität, die ein ORB Client-Programmen bereitstellen muß. Die Objekte müssen nichts übereinander wissen, es kann sich bei ihnen um Programme handeln, die in verschiedenen Sprachen geschrieben sind, verschiedene Funktionen ausführen und sogar auf verschiedenen Rechnern laufen. Solange sie über den ORB kommunizieren, können alle miteinander reden.

CORBA zieht sich durch das ganze GNOME-System und stellt den Anwendungsentwicklern eine Vielzahl von Diensten bereit. Dazu gehören:

Ein allgemeiner IPC-Mechanismus (Inter-Process Communication)
Früher war es unter Unix üblich, ein eigenes Protokoll zu entwickeln, wenn zwei Applikationen miteinander kommunizieren sollten. Man muß nicht erst erwähnen, daß das nicht gerade zur Wiederverwendbarkeit oder Interoperabilität von Software beigetragen hat. Wenn heutzutage GNOME-Applikationen miteinander kommunizieren müssen, dann können sie einfach CORBA verwenden.
Eine Möglichkeit, die interne Engine einer Applikation zu exportieren
Viele Applikationen in GNOME exportieren ihre interne Funktionalität in die Außenwelt. Damit können andere Programme - sowohl GNOME- als auch Nicht-GNOME-Programme - diese von einer Applikation exportierten Dienste verwenden, was diese Applikationen besonders für Skriptsprachen zugänglich macht. Fortgeschrittene Anwender können so Skripten schreiben, um häufig wiederkehrende Aufgaben zu automatisieren. In nicht allzu ferner Zukunft werden Anwender ein Python-Skript schreiben können, das ein Spreadsheet in Gnumeric manipuliert, eine benutzerdefinierte Rechtschreibprüfung durchführt oder ähnliche wiederholte Aufgaben erledigt. Das entspricht in etwa der Funktionalität, die Visual Basic in Microsoft Office bereitstellt. The Grafikapplikation Guppi, der Dateimanager und die Tabellenkalkulation Gnumeric können derzeit so mit Skripten gesteuert werden.
Ein Verfahren zum Erzeugen wiederverwendbarer und interoperabler Softwarekomponenten
Wie bereits erwähnt, baut das Bonobo-Komponenten- und Dokumentenmodell auf den von CORBA bereitgestellten Diensten auf und stellt ein Framework bereit, das sowohl Programmierern als auch Anwendern hohe Flexibilität bringt.

CORBA ist keine Software an sich, sondern enthält eine Reihe von Spezifikationen zum Entwerfen von »Object Request Brokern« (ORBs). Viele ORBs sind geschrieben worden, die die CORBA-Spezifikation erfüllen, aber alle sind unterschiedlich implementiert, und nicht jeder ORB ist für jedes Softwareprojekt geeignet. Das GNOME-Team hat lange nach einer passenden CORBA-Implementierung gesucht. Es brauchte einen ORB, der C-Sprachbindungen unterstützte und sowohl klein als auch schnell war. Schließlich wurde die Entscheidung getroffen, einen CORBA-ORB von Grund auf neu zu schreiben. Dick Porter, Elliot Lee (während seiner Arbeit für die Red Hat Labs) und Andrew Veliath schrieben einen völlig neuen und leistungsstarken CORBA-ORB namens ORBit. ORBit stellt schließlich all die Maschinerie bereit, die notwendig ist, um überall in GNOME CORBA zu verwenden. Eine Beschreibung von ORBit finden Sie unter http://www.labs.redhat.com/orbit .

Programmierwerkzeuge

Im Zuge der Weiterentwicklung des GNOME-Systems entstehen neue Entwicklungswerkzeuge, die Entwicklern beim Design von GUI-Applikationen helfen sollen. Besonders interessant ist dabei Glade von Damon Chaplin. Glade erleichtert das Erzeugen komplexer Benutzeroberflächen etwa so, wie der Interface Builder von NeXT dies unter NeXTStep tat.

Mittels GNOME DB, einer modifizierten CORBA-Schnittstelle zu diversen Datenbanken, kann jetzt einheitlich auf Datenbanken zugegriffen werden. Außerdem enthält GNOME DB ein Frontend für Designer. Dieses Projekt wird von Michael Lausch, der die Backend- und CORBA-Elemente schreibt, und Rodrigo Moya, der den GUI-Builder schreibt, geleitet.

Die Druckarchitektur von GNOME

Die freie Softwaregemeinde und Unix im allgemeinen haben lange Zeit auf eine standardisierte Druckarchitektur und ein qualitativ hochwertiges Imaging-Modell verzichten müssen. GNOME stellt eine ausgefeilte Druck-Engine bereit, deren Ziel es ist, zu standardisieren, wie Applikationen Druckausgaben machen.

GNOME-print (http://www.levien.com/gnome/print-arch.html ) ist die Implementierung der Druckarchitektur von GNOME. Es besteht aus einer austauschbaren Darstellungs-Engine und einer Reihe von Standard-Widgets und -Dialogen zum Auswählen und Konfigurieren von Druckern. Außerdem ist GNOME-print für das Verwalten von Vektor-Fonts zuständig und enthält Skripten, die automatisch die bereits im System installierten Fonts finden.

Das Imaging-Modell von GNOME-print basiert auf dem Imaging-Modell von PostScript. Zu den grundlegenden Operationen gehören das Konstruieren von Vektor- und Bezier-Pfaden, das Zeichnen von Linien, das Ausfüllen von Flächen, das Abschneiden von Grafiken, die Ausgabe von Text (mit Type1-Fonts, TrueType-Ausgabe ist geplant) und das Drucken von Bildern.

Zur Zeit erzeugt GNOME-print nur PostScript-Ausgaben. Das Design des Imaging-Modells hängt aber eng mit dem der Darstellungs-Engine des Canvas zusammen, und es wird deswegen erwartet, daß diese beiden Module bald austauschbar sein werden. Insbesondere wird es möglich sein, in einen Canvas zu drucken, was nützlich ist, wenn eine qualitativ hochwertige Druckvorschau bereitgestellt werden soll. Außerdem wird man den Inhalt eines Canvas drukken können. Dies sollte das Design von Applikationen, die den Canvas verwenden, vereinfachen, weil nur sehr wenig zusätzlicher Code benötigt wird, um Druckfunktionalität zu implementieren.

Die GNOME-print-Engine wird auch dazu verwendet werden, gedruckte Seiten direkt darzustellen, ohne den zusätzlichen Schritt über PostScript zu machen. Dies ist besonders interessant, da es schnelles und qualitativ hochwertiges Drucken komplexer Seiten auf Farbtintenstrahldruckern ermöglichen wird. Komplexe Seiten sind beispielsweise solche, die Transparenz, Gradienten und andere Elemente enthalten, die im traditionellen PostScript-Imaging-Modell als schwierig gelten.

GNOME herunterladen und installieren

Getestete Quellcode-Versionen von GNOME können von ftp://ftp.gnome.org/pub/ GNOME heruntergeladen werden.

Außerdem können Sie die allerneuesten GNOME-Entwicklungen von den anonymen CVS-Servern bekommen. Lesen Sie die dazu notwendigen Details auf den Webseiten von GNOME (http://www.gnome.org ) nach.

Neueste Nachrichten über GNOME werden ebenfalls auf den Webseiten des GNOME-Projekts bekanntgegeben; außerdem finden Sie hier Dokumente zur Installation von GNOME und zum Entwickeln von GNOME-Applikationen. Wenn Sie Hilfe benötigen, lesen Sie zunächst die GNOME-FAQ.

Die Zukunft von GNOME

Das GNOME-System wird ständig erweitert, korrigiert und verbessert. Nach dem Vorbild anderer freier Softwareprojekte wie Linux unterhält auch das GNOME-Team zwei Entwicklungszweige. Neue Technologien werden zunächst in einem Entwicklungszweig bereitgestellt, der den Entwicklern als Experimentierfeld dient. Wenn die Technologien reifen und die Software stabiler wird, wird der Code in den stabilen Zweig übernommen, der für den ernsthafen Einsatz gedacht ist.

Die Evolution von GNOME wird nicht durch eine Person oder ein Komitee bestimmt; GNOME entwickelt sich in der Richtung weiter, die die GNOME-Programmierer wichtig oder interessant finden. Und Sie können einer dieser Programmierer sein; das GNOME-Team würde sich über Ihren Code, Ihre Patches, Ihre Meinung und Ihre Hilfe freuen.

Wie können Sie bei GNOME mithelfen?

Das GNOME-Projekt freut sich über Leute, die dazu beitragen wollen, aus GNOME eine gute Desktop-Umgebung zu machen. Alle Arten von Talent können hier zum Tragen kommen. Programmierer können Programme schreiben, existierenden Code überprüfen oder Programme aktualisieren und warten. Übersetzungsteams können sicherstellen, daß das GNOME-System aktuelle Übersetzungen für ihre jeweilige Sprache enthält. Wieder andere können GNOME-Anwendern helfen, Entwicklern proprietärer Software die Bedeutung von freier Software klarmachen, das System dokumentieren und überall herumerzählen, was GNOME eigentlich ist.

Wenn Sie gern weitere Informationen hätten, wie Sie mithelfen können, dann schicken Sie bitte eine E-Mail an webmaster@gnome.org.

 Fußnoten 1
Dieser Artikel erschien erstmalig in Linux Magazine und ist auch auf dem Webserver http://www.linux-mag.com nachzulesen. Die Version in diesem Buch wurde geringfügig modifiziert.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel


Weitere Informationen zum Linux - Wegweiser zur Installation & Konfiguration

Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center


O'Reilly Home | O'Reilly-Partnerbuchhandlungen | Bestellinformationen | Kontaktieren Sie uns
International | Über O'Reilly | Tochterfirmen

© 2000, O'Reilly Verlag