Aus Linux-Magazin 09/2001

Brave GNU World

Diese Kolumne berichtet über aktuelle Entwicklungen innerhalb des GNU-Projekts und versucht, Einblicke in die zugrunde liegende Philosophie zu vermitteln. In dieser Ausgabe: TINY, GNU Texmacs, CD-ROM Control, Saxogram, GNU Libiconv, Mozart/Oz, freie Software und 3D.Georg C. F. Greve

Willkommen zu einer weiteren Ausgabe der Brave GNU World. In diesem Monat gibt es wieder eine recht bunte Mischung und einen halb experimentellen Beitrag am Ende, der in Zusammenarbeit mit Bernhard Reiter entstand. Doch zunächst zum technischen Teil.

TINY, ein Mini-Linux (nicht nur) für Entwicklungsländer

Ziel des TINY-Projekts [5] ist eine minimale GNU-Linux-Distribution. Gestartet wurde es von Odile B?nassy, wobei das vollständige Team noch Jean-Fran?ois Martinez, Mathieu Roy und Roger Dingledine einschließt.

Der Name TINY steht für “`Tis Independence `N Yet”, was eine Anspielung auf “Independence Linux” ist, das Hauptprojekt von Jean-Fran?ois Martinez. Die Beweggründe für das Projekt waren dabei einerseits die persönliche Erfahrung einer mit Odile verwandten Lehrerin, in ihrer Schule GNU Linux einzuführen, wie auch der Gedanke, Entwicklungsländern die Chance zu geben, am Informationszeitalter teilzuhaben und von freier Software zu profitieren.

Deshalb wurde großer Wert auf möglichst geringe Hardware-Anforderungen gelegt. Die untere Grenze liegt zurzeit etwa bei einem 386 DX 33 ohne Festplatte. Natürlich gibt es gerade in den Entwicklungsländern andere, wichtigere Probleme, aber es gibt Projekte, die Elektrizität und Telefon auch in entlegenere Gebiete bringen wollen. Odile hat mit Wissenschaftlern und Ärzten gesprochen, die freiwillig in Afrika beim Aufbau einer funktionierenden Infrastruktur helfen, um dafür zu sorgen, dass TINY den Anforderungen gerecht wird.

TINY basiert auf einer Slackware 4.0 und verwendet die Glibc2 sowie Kernel 2.2. Im Gegensatz zu manchen anderen Minimal-Distributionen ist TINY bei aller Minimalisierung voll einsatzfähig und eignet sich zur täglichen Arbeit. Es ist daher auch für Leute interessant, die einfach nur auf der Suche nach einem kleinen GNULinux-System sind.

Die Distribution lässt sich erfolgreich installieren, wie auch die Meldungen auf der sechssprachigen Homepage [5] belegen. Allerdings wären eine ausführlichere Dokumentation und eine längere und besser gepflegte Applikationsliste wünschenswert.

Aufgrund akuten Zeitmangels steht das Projekt im Moment still. Zudem fehlt ausreichendes Feedback von Benutzern aus Entwicklungsländern. Das aktuelle Team wünscht sich daher die Übernahme des TINY-Projekts durch eine neue Gruppe, der es jegliche Hilfe und Unterstützung gewähren würde. Wem daran gelegen ist, anderen Hilfe zur Selbsthilfe zu geben, der findet in dem TINY-Projekt sicherlich eine gute Grundlage. Doch auch anderen Interessenten an Minimaldistributionen sei ein Blick auf TINY empfohlen.

GNU Texmacs

GNU Texmacs [6] ist ein wissenschaftlicher What-you-see-is-what-you-get-Texteditor auf der Basis freier Software. Inspirieren ließ sich Autor Joris van der Hoeven dabei von GNU Emacs und Latex, wie der Name bereits vermuten lässt.

Anders als das zunächst verwandt erscheinende Projekt Lyx [7] handelt es sich bei GNU Texmacs jedoch nicht um ein Latex-Front-End, es ist ein eigenständiges Projekt. Die Inspiration bezieht sich vielmehr einerseits auf die Satzqualität und die Möglichkeiten zur Formeldarstellung, bei denen Latex bisher unbestritten führend war, andererseits auf die Erweiterbarkeit von Emacs.

Wissenschaft in Wysiwyg: Texmacs hat nicht nur einen coolen Namen, sondern bringt alles mit, um die Eingabe komplexer Formeln zu erleichtern.

Wissenschaft in Wysiwyg: Texmacs hat nicht nur einen coolen Namen, sondern bringt alles mit, um die Eingabe komplexer Formeln zu erleichtern.

Texmacs verwendet die Tex-Zeichensätze und enthält auch Import-/Exportfilter für Tex-/Latex-Dokumente. GNU Texmacs ist in C++ mit Guile/ Scheme als Erweiterungssprache geschrieben. Das Benutzerinterface kann über Guile-Anweisungen angepasst werden. Gleichzeitig erlaubt es Texmacs, wissenschaftliche Berechnungen direkt auszuführen, da es über Schnittstellen zu Maxima, Pari GP, GTybalt, Yacas, Macaulay 2, Mupad und Reduce verfügt. Die Schnittstelle zu Scilab sollte ebenfalls bald fertig sein und weitere Schnittstellen sind leicht zu implementieren.

Kombiniert mit der geplanten Erweiterung zu einem kompletten XML-Editor bietet Texmacs interessante Perspektiven für interaktive mathematische Dokumente im Internet. Dank professioneller Satzqualität, eines guten Antialiasing der Tex-Zeichensätze, der Möglichkeit strukturierter Dokumente und des Potenzials für dynamische Makros und Style-Files bietet GNU Texmacs gerade dem wissenschaftlichen Anwender viele Möglichkeiten.

Texmacs geht fremd: Russische Menüs, im Textfenster Zeichensätze von Gotisch bis Georgisch.

Texmacs geht fremd: Russische Menüs, im Textfenster Zeichensätze von Gotisch bis Georgisch.

Derzeit steht das Projekt kurz vor Version 1.0, nachdem Joris van der Hoeven, Andrey Grozin, Thomas Rohwer und einige andere bereits seit etwa vier Jahren daran arbeiten. Noch nicht vollständig implementierte Features, verbesserungsfähige Filter für Latex-Dokumente sowie eine zu kurze Dokumentation – die unmittelbaren Pläne sehen vor, diese Probleme zu beseitigen und eine Version 1.0 zu veröffentlichen.

Auf längere Sicht sollen dann Tabellenkalkulation und XML-/HTML-Erweiterungen hinzukommen. Zukunftsmusik ist die Portierung auf Nicht-Unix-Plattformen sowie die Erweiterung zur Erstellung technischer Zeichnungen. Hilfe ist dabei in jeglicher Form willkommen.

CD-ROM Control

Da in letzter Zeit die ganz kleinen Projekte eher zu wenig behandelt wurden, ist es mal wieder an der Zeit, einen ihrer Vertreter zu seinem Recht kommen zu lassen. CD-ROM Control [8] von Paul Millar ist ein kleines Applet zur Kontrolle des CD-ROM-Laufwerks, geschrieben in Tcl/Tk mit einem kleinen Teil in C.

Neben einer Statusanzeige bietet es einfache Möglichkeiten zum Mounten, Unmounten und Auswerfen der CD-ROM per Mausklick. Für das GUI gibt es die Wahl zwischen nativem Tk oder dem Gtk+. Das Besondere dabei ist das Autostart-Feature, mit dem grafische Filemanager, Web-Browser oder Audio-Applikationen automatisch beim Einlegen einer CD gestartet werden können.

Kein Großprojekt, aber nützlich ist CD-ROM Control von Paul Millar.

Kein Großprojekt, aber nützlich ist CD-ROM Control von Paul Millar.

Saxogram

Mit Saxogram [9] hat Matt Dunford sicherlich das ungewöhnlichste Projekt dieser Ausgabe geschrieben. Der Name des Projekts leitet sich ab von dem relativ unbekannten dänischen Historiker Saxo Grammaticus, dessen Chroniken eine entfernte Verbindung zu Shakespeares Hamlet haben. Das lässt vermuten, dass das Programm sich in irgendwie mit Literatur beziehungsweise Sprache befasst.

Tatsächlich erlaubt es das in Python geschriebene GPL-Programm Saxogram, eine Vokabelliste für Texte in fremden Sprachen anzulegen, um das Erlernen einer neuen Sprache zu vereinfachen. Saxogram durchsucht außerdem Texte nach Worten und schlägt diese automatisch in einem Wörterbuch nach. Die gefundenen Wörter werden gemeinsam mit ihrer Erklärung ausgegeben.

Wie so viele Leute vor ihm hat Matt Latein und Griechisch gelernt, wobei häufig jedes dritte Wort nachgeschlagen werden musste. Als er eines Tages ein lateinisches Wörterbuch [10] im Netz entdeckte, begann er mit der Arbeit an Saxogram. Ein kritischer Punkt war und ist die freie Verfügbarkeit von Wörterbüchern. Zwar gibt es das Internet Dictionary Project [11], doch dessen Wörterbücher sind noch nicht gut genug.

Auch das Online-Wörterbuch auf Leo.org [12] ist nur eine begrenzte Hilfe, da es nur zwischen Englisch und Deutsch übersetzen kann. Bei den griechischen Wörterbüchern ist Matt bisher gar nicht fündig geworden – für Hinweise ist er dankbar. Weitere Ziele sind mehr Sprachenvielfalt und vor allem eine höhere Geschwindigkeit. Da sehr viele reguläre Ausdrücke und Disk-Zugriffe vorkommen ist das Programm noch recht langsam.

Konvertierung zwischen Zeichensätzen mit GNU Libiconv

Die GNU Libiconv [13] ist die Character Set Conversion Library des GNU-Projekts, die über die iconv()-Funktion Programmen die Funktionalität zur Verfügung stellt, Texte zwischen verschiedenen Zeichensätzen zu konvertieren.

Ein paar Worte zum Hintergrund: Traditionell besteht die normale Zeichensatztabelle aus 256 Werten, denen je ein Zeichen zugeordnet wird. Angesichts asiatischer Sprachen, sprachlicher Besonderheiten wie beispielsweise Umlauten oder die Darstellung des Euro-Zeichens wird jedoch unmittelbar klar, dass diese 256 Werte nicht ausreichen.

In den einzelnen Sprachräumen wurden dann teilweise abweichende Tabellen eingeführt, um die lokal benötigten Zeichen zur Verfügung zu stellen. Damit ist die Zuordnung von Werten und Zeichen nicht mehr eindeutig, sondern vom Sprachraum abhängig. Der gültige Sprachraum wird daher mit Hilfe des Encodings angegeben. Für die saubere Internationalisierung eines Programms ist es notwendig, dass dieses die unterschiedlichen Kodierungen ineinander überführen kann.

An einer Standardisierung dieses Problems hat bereits Ulrich Drepper vor zwei Jahren für die Glibc gearbeitet – allerdings wurde sein Code aufgrund von Problemen bei der Portierbarkeit nicht in die Standardbibliothek aufgenommen, was zu einer Zersplitterung der konvertierenden Bibliotheken geführt hat. Das soll sich mit Libiconv von Bruno Haible ändern. Libiconv stellt die bereits erwähnte iconv()-Funktion zur Verfügung, wie sie auch in der Glibc 2.2 implementiert wurde.

Da Libiconv portabel, schnell und von anderen Bibliotheken unabhängig ist, kann mit ihr die iconv()-Funktionalität auf allen Systemen zur Verfügung gestellt werden, die keine Glibc 2.2 besitzen. Autoren können ohne Portierbarkeitssorgen auf iconv() zurückgreifen, und gerade Autoren von Mailprogrammen sollten dies tun, da viel zu viele Mailclients noch nicht richtig mit der MIME-Zeichensatzkodierung umgehen können.

Wie die Glibc unterliegt übrigens auch die Libiconv der GNU Lesser General Public License, kann also auch mit proprietären Programmen verlinkt werden, um endlich die Konversionsprobleme allgemein zu lösen. Bemerkenswert an der Libiconv ist, dass sie ebenfalls begrenzt Transliteration unterstützt, wenn //TRANSLIT angefordert wird.

Distributed Computing nach Noten: Mozart/Oz

Mozart/Oz [14] ist eine recht interessante Entwicklungsplattform für intelligente, verteilte Applikationen. Eine der Hauptstärken liegt im Bereich des Distributed Computing, da Mozart das Netz vollkommen transparent macht. Außerdem unterstützt es multiple Paradigmen und paralleles Arbeiten durch sehr effiziente Threads, von denen mehrere tausend pro Anwendung verwendet werden können, sowie Mobile Agenten und einiges mehr.

Die Virtuelle Maschine Oz ist recht portabel und läuft sowohl auf fast allen Unix-Varianten als auch auf MS-Windows. Für das Benutzerinterface steht eine objektorientierte Bibliothek bereit, die eine gute Anbindung an Tcl/Tk besitzt. Das Projekt ist bereits voll einsetzbar. Dennoch gibt es natürlich immer noch Themen, an denen gearbeitet wird.

Pläne für die Zukunft beinhalten eine Verbesserung der Verlässlichkeit, Sicherheit, Netzwerktransparenz und mehr Hilfsmittel. Hilfe kann das Mozart-Konsortium in Form eines Freiwilligen für eine Windows-IDE gebrauchen. Die augenblickliche IDE basiert auf dem GNU Emacs, was nicht jedem gefällt. Außerdem wird an einem Port auf Macintosh gearbeitet – allerdings geht das nur langsam voran und Unterstützung wäre wünschenswert. Wer sich jetzt für Details interessiert, dem sei der Blick auf die Homepage von Mozart/Oz [14] empfohlen.

Mozart wurde 1991 im europäischen Acclaim-Projekt entwickelt und steht unter einer X11-artigen Lizenz. Auch wenn diese sicherlich nicht optimal ist, qualifiziert sie das Projekt doch als freie Software.

Freie Software und 3D?

Dieses Feature wurde angeregt und wesentlich geprägt durch Bernhard Reiter, Stammlesern bekannt aus dem Beitrag “GRASS GIS” [15] in der Brave GNU World, Ausgabe 14. Er ist deutscher Repräsentant der FSF Europe und Mitgründer der Intevation GmbH, einer nur auf Basis freier Software arbeitenden Firma.

Auf freier Software basierendes 3D-Modellierungswerkzeug ist Mangelware, was zu denken gibt. Eigentlich ist die 3D-Modellierung ein sehr spannendes und wichtiges Thema, nicht umsonst ging der letzte FSF-Award an Brian Paul für seine Arbeit an der Grafikbibliothek Mesa 3D.

Voll entwickelte Werkzeuge zur Modellierung sind dennoch rar, was vermutlich zwei Gründe hat. Zum einen war keine gute Übersichtsseite zu freier 3D-Software zu finden. Zudem sind proprietäre Produkte, die oft vordergründig günstig zu haben sind, offenbar eine effektive Entwicklungsblockade. Nutzer lassen sich durch den zunächst günstigen Preis blenden und vergessen, dass ihnen dieser Schritt die Möglichkeit nimmt, die Software künftig zu pflegen.

Wie Bernhard es ausdrückt: “Hier haben wir ein klassisches Beispiel dafür, dass Pragmatismus und zu frühe Kompromisse an die Freiheit der Software einen Anwendungsbereich stark bremsen, auch weil kein Druck da war, mehr freie Lösungen zu entwickeln.” Gerade durch Vernetzung kann aber selbst ein Nicht-Programmierer die Entwicklung auf einem Gebiet stark vorantreiben, wie Dave Phillips mit seiner “Sound & MIDI Software for GNU/Linux”-Seite [16] gezeigt hat. Eine vergleichbare Seite für 3D-Modellierung unter GNU/Linux wäre ein sehr wesentlicher Beitrag auf diesem Gebiet.

Genug für heute

So, das war die Brave GNU World für diesen Monat. Ich hoffe, einige Anregungen vermittelt zu haben, und rufe wieder dazu auf, Kommentare, Ideen und Projektvorstellungen an die übliche Adresse [1] zu schicken. Gerade Hinweise auf freie Software aus dem 3D-Gebiet wären mir sehr willkommen. ( uwo) n

Infos

[1] Ideen, Anregungen, Kommentare an die Brave GNU World: column@brave-gnu-world.org

[2] Homepage des GNU-Projektes: http://www.gnu.org/

[3] Homepage von Georg’s Brave GNU World: http://brave-gnu-world.org

[4] Initiative We run GNU: http://www.gnu.org/brave-gnu-world/rungnu/rungnu.de.html

[5] TINY GNU/Linux Distribution Homepage: http://tiny.seul.org/de/

[6] GNU Texmacs Homepage: http://www.texmacs.org

[7] Lyx Homepage: http://www.lyx.org

[8] CD-ROM Control Homepage: http://sourceforge.net/projects/crcontrol

[9] Saxogram Homepage: http://saxogram.sourceforge.net/

[10] Online Latin Dictionary: http://king.tidbits.com/matt/LatinDictReadMe.html

[11] Internet Dictionary Projekt: http://www.june29.com/IDP/

[12] Leo English/German Dictionary: http://dict.leo.org

[13] GNU Libiconv Homepage: http://clisp.cons.org/~haible/packages-Libiconv.html

[14] Mozart/Oz Homepage: http://www.mozart-oz.org

[15] Brave GNU World, Ausgabe 14: http://www.gnu.org/brave-gnu-world/issue-14.de.html

[16] Sound & MIDI Software for GNU/Linux: http://www.bright.net/~dlphilp/linuxsound/

Der Autor

Dipl.-Phys. Georg C. F. Greve beschäftigt sich seit etlichen Jahren mit freier Software und kam früh zu GNU Linux. Nach Mitarbeit im GNU-Projekt und seiner Aktivität als dessen europäischer Sprecher hat er die Free Software Foundation Europe initiiert, deren Präsident er nun ist. Weitere Informationen finden sich unter: http://gnuhh.org
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben