Diese Kolumne berichtet über aktuelle Entwicklungen innerhalb des GNU-Projekts und versucht, Einblicke in die zugrunde liegende Philosophie zu vermitteln. In dieser Ausgabe: Gambas, Minkowsky, GNUnet, Webminstats, Cook, Lin Compta, freie Software für Europa.
Willkommen zu einer neuen Ausgabe der Brave GNU World. Sie widmet sich – nach dem Schwerpunkt bei kreativem Zeitvertreib in den letzten Monaten – wieder mehr den ernsthaften Aspekten und Perspektiven.
Gambas

Abbildung 1: Gambas ist eine Basic-Entwicklungsumgebung für GNU/Linux. Das Look & Feel lehnt sich stark an bekannte proprietäre Produkte an.
Gambas[13] steht für “Gambas Almost Means Basic”. Der Name deutet bereits an, worum es bei dem Projekt geht: um eine grafische Entwicklungsumgebung basierend auf einem Basic-Interpreter mit objektorientierten Erweiterungen. Inspiriert wurde der Maintainer Benoit Minisini von Java und Visual Basic (siehe Abbildung 1).
Gambas ist eine Umgebung, in der grafische Programme schnell und mit flacher Lernkurve zusammengestellt werden können. Benoit findet Java für diesen Zweck zu komplex, Visual Basic läuft nur unter Windows und ist ihm auch zu buggy. Außerdem will er sowohl die Freiheit der Oberfläche (KDE oder Gnome) als auch der Lizenz gewährleisten. Daher steht Gambas unter der GPL.
Das Projekt läuft seit drei Jahren, es nutzt C für Interpreter und Compiler, C++ für die Qt-Anbindung und Gambas selbst als die Entwicklungsumgebung. Benoit legt Wert auf die größtmögliche syntaktische Kohärenz und Kompaktheit; deshalb ist der Interpreter ohne Qt-Komponente auch nur ungefähr 200 KByte groß. Die Portierung auf eine Embedded-Umgebung sollte daher einfach sein.
Wegen des modularen Aufbaus müsste sich die derzeit genutzte, auf Qt basierende Grafik-Engine leicht durch eine Gtk+-Komponente ersetzen lassen. Das ist auch in Planung. Weitere Ziele des Projekts sind ein Debugger und eine Datenbank-Komponente. Bis Gambas eine vollständige Programmiersprache beziehungsweise -umgebung ist, wird noch einige Zeit vergehen. Etwas Unterstützung durch Software-Tester könnte alles beschleunigen.
Eine kleine Geschichte, die über die Standardfragen der Brave GNU World hinausgeht, soll den Lesern der Kolumne nicht vorenthalten werden: Eines Tages versuchte Benoit – um Windows zu reinstallieren -, eine Partition unter MS-DOS zu reformatieren. Leider waren die Laufwerksbuchstaben unter MS-DOS gegenüber Windows vertauscht. So löschte er die falsche Festplatte, von der es keine Sicherheitskopie gab.
Da nun – unfreiwilligerweise – 30 GByte frei waren, probierte er ein weiteres proprietären Betriebssystem, mit dem er aber wenig anfangen konnte. Da dachte er sich: Warum nicht die andere Platte von hier aus formatieren? Einen Mausklick später hörte seine GNU/Linux-»/home«-Partition auf zu existieren. Natürlich befand sich Gambas auf dieser Partition und ebenso natürlich gab’s auch hier keine Backups.
Zufällig lag aber auf der Windows-Partition, deren versuchte Formatierung die Katastrophe einleitete, noch eine Version von Gambas, die nur einen Monat alt war. Benoit verlor also nur (!?) einen Monat Arbeit. Sein guter Rat: Speichert unwiederbringliche Dinge immer mehrfach! Seid paranoid! Natürlich könnte man die Geschichte auch so auslegen, dass man einfach die Finger von proprietären Systemen lassen sollte. :-)
Minkowsky

Abbildung 2: Die Raum-Zeit-Verwaltung bei Minkowsky. Die Agenda bietet Überblick über Projektverantwortlichkeit und Bearbeitungsfortschritte.
Stefan Kamphausen, der Autor des Logos der Brave GNU World, hat mich auf diese Groupware-Lösung seines Arbeitskollegen Rüdiger Goetz aufmerksam gemacht. Das Programm Minkowsky umfasst Kalender, Adress- und Aufgabenverwaltung und dient bevorzugt der Verwaltung von Ressourcen, zum Beispiel der Bereitstellung von Konferenzräumen zu bestimmten Terminen (Abbildungen 2 und 3). Das Programm, das damit ja eine Art Raum-Zeit verwaltet, trägt entsprechend den Namen des Physikers Minkowski, dem auch die in der speziellen Relativitätstheorie gebräuchlichen Minkowski-Diagramme ihren Namen verdanken.[5]
Minkowsky bietet eine detaillierte Rechteverwaltung, um Termine verschiedener Benutzergruppen zu koordinieren. Das Programm, das auf C++/C sowie Tcl/Tk/Tix basiert, ist hierbei auf die Nutzung innerhalb eines physikalischen LANs optimiert. Es benötigt keine externe Datenbank. Die nächste Release soll unter anderem Englisch können sowie eine PDA-Synchronisation und eine stabilere Client-Server-Kommunikation bieten. Gerade in diesen Bereichen bittet Rüdiger um Unterstützung.

Abbildung 3: Die Projektverwaltung von Minkowsky. Das Programm bietet neben der obligatorischen Aufgabenliste eine grafische Workflow-Darstellung.
GNUnet
In Ausgabe 6 der Brave GNU World[11] hatten wir das FreeNET-Projekt von Ian Clarke vorgestellt. Ziel dieses Projekts ist es, ein dezentrales Netzwerk zu schaffen, in dem Daten sozusagen wandern, um die Zensur und Kontrolle im Internet zu verhindern – denn die nehmen zu. Auch Filesharing-Dienste wie Napster, die mit zentralen Schnittstellen arbeiten, stehen vor Schwierigkeiten. Diese Entwicklung rückt Peer-to-Peer-Netzwerke ins allgemeine Interesse.
Mit dem von Studenten der Purdue University entwickelten GNUnet[12] ist ein derartiges Netzwerk nun auch ins GNU-Projekt eingeflossen. Der Hintergrund: Im Internet können Inhalte über die URL einem bestimmten Rechner zugeordnet werden. Damit ist es möglich, den Anbieter des Inhalts zu ermitteln und sogar – indem sein Account gesperrt wird – Zensur auszuüben.
Von besonderer Bedeutung ist dies in Ländern wie China, wo der Zugriff auf Medien, die die Regierung nicht kontrolliert, unterbunden ist und Anbieter kritischer Informationen sanktioniert werden. Netzwerke wie FreeNET oder GNUnet unterlaufen solche Bestrebungen durch den Einsatz von Verschlüsselung und Anonymisierung. Dies schützt den Anbieter und macht eine Lokalisierung der verdächtigen Informationen unmöglich. Ihr Anwendungsgebiet ist immer dort, wo die Privatsphäre wichtiger als Effizienz ist.
Im Gegensatz zu anderen anonymen Netzwerken bietet GNUnet dabei eine Form des Accounting, die jenen Usern, die ihren Rechner als Netzknoten zur Verfügung stellen, eine bessere Anbindung gewährt. Es ist zwar auch möglich, dass ein Teilnehmer nur konsumiert (Freeloading), er muss sich dann allerdings mit der Bandbreite begnügen, die zum jeweiligen Einwahlzeitpunkt gerade verfügbar ist.
GNUnet hat seinen Ursprung in einem Kryptographie-Projekt der Purdue University. Die Studenten, die das Programm entwickelten, hatten es anfangs sogar schwer, ihren Professor davon zu überzeugen, dass es wirklich um Kryptographie ging. Mittlerweile absolvieren sie allerdings ihre ersten Auftritte auf Krypto-Konferenzen und das GNUnet selbst läuft bereits im Betatest.
Die Vorteile des Projekts sehen die Autoren in einer Anonymisierung, die bei GNUnet besser funktionieren soll als in vergleichbaren Netzen, sowie in einer Reputations-Metrik, die einen Schutz des Netzwerks gegen schwarze Schafe bietet. Zudem ist es möglich, das Netzwerk nach natürlichen Wörtern zu durchsuchen statt nach zufälligen Hashcodes wie etwa bei FreeNET.
Das Projekt ist in C geschrieben und unter der GNU General Public License herausgegeben. Seine größte Schwäche ist nach Bekunden der Projektmitglieder die Tatsache, dass bisher niemand sich für die Programmierung der GUI begeistern konnte. Die gegenwärtig vorhandene Gtk+-basierte Oberfläche ist zwar benutzbar, jedoch nicht sehr komfortabel. Hilfe wäre hierbei ebenso willkommen wie beim Design eines Logos.
Das Team plant auch noch die Portierung auf weitere Plattformen und anderer Transportmechanismen als UDP. Daten könnten mit Hilfe der Steganographie in Bildern versteckt werden, um sie so durch die Chinesische Mauer – pardon – durch die Firewall zu bringen. Auch ganz andere Anwendungsformen sind denkbar, beispielsweise E-Mail. Hilfe ist in Form weiterer Nodes, bei der Portierung auf Win32 sowie bei der Dokumentation, den Webseiten und dem Erstellen von Grafiken sehr erwünscht.
Webminstats

Abbildung 4: Webminstats nutzt das RRD-Tool für eine CPU-Lastanzeige. Der User an »host4« scheint im Verlauf des Arbeitstags immer produktiver zu werden.
Webminstats[6] protokolliert wichtige Systemparameter und stellt die Daten mit einem Browser dar. Netzwerkadmins schätzen solche Projekte, da ein Web-Browser auf den meisten Plattformen vorhanden ist (Abbildungen 4 und 5). David Bouius hat mit Webminstats Mitte 2001 begonnen. Gegen Ende des Jahres gesellte sich Eric Gerbier hinzu, der das Projekt schließlich ganz übernahm.
Wesentlicher Vorteil des Programms gegenüber verwandten Lösungen ist seine hohe Geschwindigkeit: Webminstats läuft deutlich schneller als der in diesem Genre recht bekannte MRTG[7], da dieser auch aktuell nicht benötigte Grafiken erzeugt. Wie der Name andeutet, basiert Webminstats auf dem Webmin-Projekt[8], mit dem Unix-Systeme Web-basiert administriert werden können.
Als Backend nutzt Webminstats RRD-Tool (Round Robin Database Tool)[9] von Tobi Oetiker. Es ist schneller und flexibler als der oben genannte MRTG, bietet aber kein vergleichbares Frontend und keine Datenerfassung. So ist es nicht möglich, MRTG zu ersetzen, wohl aber so zu konfigurieren, dass er auf RRD-Tool als Datenbank aufsetzt.
Gerade diese herausragenden Datenbankfähigkeiten macht sich Webminstats zu Nutze. Für die Datensammlung gibt es neun Module, die Prozessorauslastung, Plattennutzung, Interrupts, Internet (FTP/HTTP), Mail (Sendmail, POP, IMAP), Speicher, Prozesse und Benutzeranzahl überwachen. Alles wird im Minutenabstand aktualisiert.
Eric konnte so erst kürzlich bei einem Absturz seines Webservers den Fehler lokalisieren. Aus dem exakten Zeitpunkt des Crashs und einer unmittelbar vorausgehenden protokollierten Verbindung aus einem Benutzermodul ließ sich auf die Störquelle schließen.
Webminstats ist in Perl und Bash-Shell geschrieben. Es ist bereits in Englisch, Deutsch und Spanisch unter der GPL veröffentlicht. Künftig soll das Programm um ein Firewall-Überwachungsmodul und Alarmmeldungen erweitert werden. Auch eine Portierung auf andere Unix-Systeme steht an. Eric braucht Unterstützung, um attraktive Icons für die Module zu entwickeln und das Programm an andere Sprachen und Betriebssysteme anzupassen. Auch neue Features sind willkommen.

Abbildung 5: Webminstats stellt viele grafische Auswertungen – etwa HTTP- und FTP-Transfervolumen – in beliebigen grafikfähigen Browsern dar.
Cook
Nachdem Ausgabe 37[14] der Brave GNU World auf die Unzulänglichkeiten des Make-Programms[15] einging, stellen wir hier mit Cook[16] von Peter Miller eine weiteres Substitut vor.
1988 begann Peter Miller, der auch Autor des in Ausgabe 4[17] vorgestellten Aegis-Projekts ist, mit der Arbeit an einem Ersatz für Make. Als Programmiersprache benutzt er C und veröffentlicht Cook als freie Software unter der GNU General Public License.
Anders als Make bietet Cook die Möglichkeit des parallelen Kompilierens. So können zum Beispiel Rezepte bestimmten Hostnamen zugeordnet werden, um sie auf diesen PCs auszuführen, Abhängigkeiten werden über Kaskaden aufgelöst und die Rezepte nutzen optional Konditionen, um die Ausführung feiner zu steuern.
Wer die Brave-GNU-World-Beiträge zu GNU Cons und SCons gelesen hat: Auch Cook kann Modifikationen an Files per Fingerabdruck feststellen, um unnötiges Neukompilieren zu vermeiden. Das Programm ist sehr ausgereift und besitzt eine erfahrene Nutzergemeinde. Einem leichten Umstieg dient ein Make2cook-Programm.
Lin Compta

Abbildung 6: Bilanzkontenverwaltung unter Linux: Lin Compta bietet übersichtliche Menüs. Bislang leider nur in Französisch.
Pascal Conrad hat im Januar dieses Jahres mit dem Lin-Compta-Projekt[10] begonnen, eine der größten verbliebenen Lücken der freien Software zu schließen: die professionelle analytische Buchhaltung. Pascals letzter Chef wusste die Vorteile freier Software und von GNU/ Linux nicht recht zu schätzen und zog diesem Projekt das proprietäre Prologue-System vor.
Pascal bietet es daher der Community unter der GNU General Public License an (Abbildungen 6). In seiner kurzen Geschichte hat das Projekt schon bemerkenswerte Fortschritte gemacht – so hat es bereits in diesem frühen Entwicklungsstadium eine intuitive grafische Oberfläche.
Als Programmiersprache kommt C mit Gtk+/Gnome zum Einsatz, die Datenbank ist MySQL. Derzeit ist es aber noch nicht möglich, Daten auszudrucken. Auch ist das Programm bislang nur in französischer Sprache zu haben. Die Übersetzung ins Englische und Russische steht aber ganz oben auf Pascals To-do-Liste. Gerade für Englisch sucht er dringend Hilfe. Sollte das Projekt auf genügend Interesse – und entsprechende Mithilfe – stoßen, plant Pascal auch andere Bereiche betrieblicher Buchhaltung einzuarbeiten.
Freie Software für Europa
Am 30. April 2002 hat die Free Software Foundation Europe[18] eine Empfehlung für das 6. europäische Rahmenprogramm ausgesprochen. Als Präsident der FSF Europe war ich in den letzten Wochen recht intensiv mit diesem Vorgang beschäftigt. Vor dem Hintergrund der bereits sehr ausgeprägten Aktivitäten und einer außerordentlich lebendigen Entwicklergemeinschaft für freie Software in Europa legt die FSF Europe der Europäischen Union nahe, in allen Bereichen des 6. Rahmenprogramms verstärkt auf freie Software zu setzen und in einigen Gebieten gezielte Ausschreibungen für freie Software zu veranstalten.
Zu den Gründen für diese Empfehlung zählen wir unter anderem eine effizientere Verwendung öffentlicher Mittel, die Sicherung demokratischer Traditionen in Europa, die Stärkung regionaler und überregionaler Märkte, die Unabhängigkeit von US-Oligopolen und eine Intensivierung der europäischen Forschung.
Die Empfehlung unterstützen Unternehmen, Organisationen und Universitäten in ganz Europa. In der Liste finden sich unter anderem: Bull (Frankreich), das TZI der Universität Bremen, das Centro Tempo Reale (Italien), Mandrake Soft (Frankreich), der Verein zur Förderung freier Software (Österreich), Ingate Systems AB (Schweden) oder Eighth Layer Limited (Großbritannien). Die Empfehlung im Volltext ist zusammen mit der vollständigen Liste der Unterstützer auf der FSF-Europe-Homepage verfügbar.[19]
Schluss
Damit genug Brave GNU World für diesen Monat, ich hoffe, einige Impulse vermittelt zu haben, und bitte wie üblich um zahlreiche Anregungen, Ideen, Kommentare und Projektvorschläge an die gewohnte Adresse.[1] (fan)
Infos |
|
[1] Ideen, Anregungen, Kommentare an die Brave GNU World: [mailto:column@brave-gnu-world.org] [2] Homepage des GNU-Projekts: [http://www.gnu.org/] [3] Homepage von Georg’s Brave GNU World: [http://brave-gnu-world.org] [4] “We run GNU” Initiative: [http://www.gnu.org/brave-gnu-world/rungnu/rungnu.de.html] [5] Minkowsky-Homepage: [http://www.r-goetz.de/minkowsky/de/] [6] Webminstats-Homepage: [http://webminstats.sourceforge.net] [7] Homepage des Multi Router Traffic Grapher (MRTG): [http://people.ee.ethz.ch/~oetiker/webtools/mrtg/mrtg.html] [8] Webmin-Homepage: [http://www.webmin.com] [9] Homepage Round Robin Database (RRD) Tool: [http://www.caida.org/tools/utilities/rrdtool/] [10] Lin-Compta-Homepage: [http://lincompta.tuxfamily.org] [11] Brave GNU World, Ausgabe 6: [http://brave-gnu-world.org/issue-6. de.html] [12] GNUnet-Homepage: [http://www.gnu.org/software/GNUnet/] [13] Gambas-Homepage: [http://gambas.sourceforge.net] [14] Brave GNU World, Ausgabe 37: [http://brave-gnu-world.org/issue-37. de.html] [15] Homepage GNU Make: [http://www.gnu.org/software/make/] [16] Cook-Homepage: [http://www.canb.auug.org.au/~millerp/cook/] [17] Brave GNU World, Ausgabe 4: [http://brave-gnu-world.org/issue-4. de.html] [18] Free Software Foundation Europe: [http://fsfeurope.org] [19] Empfehlung der FSF Europe zum 6. Rahmenprogramm der Europäischen Union: [http://fsfeurope.org/ documents/fp6/] |
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 ist. Mehr Informationen finden sich unter [http://www.gnuhh.org]. |







