[image of a Brave GNU World]
Brave GNU World - Ausgabe 25
Copyright © 2001 Georg C. F. Greve <greve@gnu.org>
Permission statement below.

[ DE | EN | FR | JA | ES | KO | PT]

Willkommen zu einer weiteren Ausgabe von Georg's Brave GNU World. Diesen Monat macht ein Versuch, GNU in die Apple-Welt zu tragen, den Anfang.

GNU-Darwin

Das GNU-Darwin [5] Projekt beschäftigt sich damit, das GNU-System nach Darwin [6] zu portieren, dem Kern des proprietären MacOS X. Darwin selber basiert auf FreeBSD und Mach 3.0 und läuft momentan auf PowerPC-basierten Architekturen. Apple arbeitet jedoch auch an einer Portierung für die Intel-Architekturen. Somit wird nach GNU/Linux und GNU/Hurd noch ein drittes GNU-basiertes System verfügbar sein.

Sehr interessant ist dabei die Aussicht, auf einem GNU-Darwin System parallel zu den bekannten Unix-Applikationen auch die entsprechenden Macintosh-Anwendungen verwenden zu können. Dies erlaubt auch den direkten Vergleich von Macintosh- & GNU-basierten Programmen, was bisher nicht so problemlos möglich war. Diese Eigenschaften sorgen dafür, daß GNU-Darwin speziell bei Mac/Unix Hybridstrukturen sehr nützlich sein kann und durch Portierung von SAMBA nach GNU-Darwin können heterogene Netzwerke mit Mac/Unix/Windows problemlos implementiert werden.

Doch natürlich besteht der Sinn von GNU-Darwin nicht darin, die Nutzung von proprietärer Software zu fördern. Es soll vielmehr eine weitere Brücke zwischen Macintosh-Plattform und Freier Software schaffen, da dem Anwender schnell klar werden wird, daß es für seinen Rechner mehr Freie als proprietäre Software gibt. Software, die auf GNU-Darwin entwickelt wurde, ist deutlich besser für Interoperabilität mit MacOS X geeignet und kann daher Freie Software stärker in die Macintosh-Welt hineintragen.

Die große Menge verfügbarer Unix-basierter Freier Software sowie die einzigartigen Möglichkeiten für heterogene Strukturen und parallele Entwicklung sind schlagkräftige Argumente dafür, sich für GNU-Darwin anstatt Mac OS X zu entscheiden.

Auf der anderen Seite bietet GNU-Darwin dem LinuxPPC-Projekt gegenüber etliche Vorteile, weshalb im Moment eine Benutzermigration zu GNU-Darwin beobachtet wird. Zunächst mal ist GNU-Darwin (wie auch GNU/Hurd) Microkernel-basiert und besitzt dadurch Fähigkeiten, über die der Linux-Kernel nicht verfügt. Weiterhin wird der Harware-Support für Darwin direkt von Apple gewährleistet und gefördert, da es auch die Basis für das Mac OS X darstellt. Es ist hier also eine bessere Unterstützung zu erwarten.

Doch wie so oft gibt es auch hier ein leider relativ großes Problem. Obwohl natürlich die Beiträge des GNU-Darwin Projektes der GNU General Public License unterstehen, ist Darwin selber von Apple unter der Apple Public Source License (APSL) herausgegeben worden. Diese qualifizierte sich in Version 1.1 aus drei wichtigen Gründen nicht als Freie Software [7].

Zunächst einmal war es untersagt, Modifikationen für den Hausgebrauch zu machen, ohne diese öffentlich zu machen. Das Recht, Dinge nur für den persönlichen Gebrauch ändern zu können, hängt nach Verständnis des GNU Projektes eng mit dem Recht auf Privatsphäre zusammen, weshalb die GNU General Public License dies bewußt ermöglicht.

Weiterhin war der Entwickler und auch nicht-wissenschaftliche Anwender einer modifizierten Version gezwungen, eine bestimmte Organisation - in diesem Fall Apple - zu informieren. Diese zentrale Kontrolle widerspricht dem Gedanken Freier Software.

Und letztlich gab es eine Klausel, die es Apple erlaubt, die Lizenz zurückzuziehen und damit die weitere Benutzung der Software zu unterbinden, sofern Copyright- oder Patentklagen gegen Apple eingereicht werden, was jeden Anwender auf dieser Welt abhängig von dem extrem problembehafteten US-Patentsystem macht.

In der im Januar 2001 herausgegebenen Version 1.2 der APSL ist ein Großteil der Probleme gelöst worden - das Verbot privater Änderungen ohne diese weiterzugeben und die damit verbundene Mißachtung der Privatsphäre besteht jedoch weiterhin.

Die APSL nähert sich schrittweise von der proprietären Seite der NPL an, die eindeutig eine Freie Software-Lizenz ist, wenn sie auch eine vollständige Proprietarisierung des Codes duldet. Würde die APSL mit der NPL gleichziehen, so wäre das noch immer unschön, da sie immernoch inkompatibel mit der meistverwandten Lizenz für Freie Software, der GPL, wäre.

Die Situation ist also durchaus mit dem Status von KDE vor wenigen Jahren vergleichbar, da es auch hier um ein sauberes Free Software-Projekt geht, welches auf einem schwachen Fundament aufbaut und somit Gefahr läuft, durch juristische Probleme gekippt zu werden. Daher setzt sich das GNU-Darwin Projekt auch dafür ein, Darwin unter der GNU General Public License herauszugeben. Speziell zu diesem Punkt bittet Michael L. Love, einer der Mitwirkenden, um Unterstützung aus der Community, da nach Verständnis der Entwickler GNU-Darwin erst dann wirklich frei ist, wenn Darwin der GPL untersteht.

Die technischen Aufgaben in nächster Zukunft umfassen die Portierung weiterer Pakete nach GNU-Darwin sowie die Erstellung einer CD-Distribution. Auf lange Sicht sollen dann die speziellen Fähigkeiten von GNU-Darwin für interessante Projekte verwandt werden.

Da das Team im Moment nur aus sechs aktiven Entwicklern besteht, bietet sich hier Interessierten ein weites Betätigungsfeld. Speziell Entwickler mit Erfahrung in Sachen Mozilla, SDL, GNOME & Audio-Support (ALSA) werden im Moment mit offenen Armen empfangen.

Entstanden ist GNU-Darwin übrigens aus dem Wunsch von Michael L. Love, seinen Apple als wissenschaftliche Plattform zur Protein-Kristallografie einzusetzen, da dies sein eigentliches Betätigungsfeld ist.

Damit komme ich zu einigen kleineren aber dennoch sehr nützlichen Projekten.

get_file

Von Daniel E. Singer stammt get_file [8], ein einfacher, in Bourne Shell geschriebener, Fileselector. Der Nutzen des Projekts ist jedem sofort ersichtlich, der bereits einmal in eigenen Shellskripten eine Fileauswahl durch den Benutzer treffen lassen wollte. Dies ist sicherlich der Hauptzweck von get_file und daher wird es normalerweise durch andere Skripte aufgerufen - es kann jedoch auch als Kommandozeilenwerkzeug eingesetzt werden.

Da es komplett als Bash-Shellskript vorliegt, muß es nicht kompiliert werden und ist einfach anzupassen. Es verfügt zudem über die Möglichkeit, Escape-Sequenzen verschiedene Arten von realen oder erdachten Objekten zuzuordnen, kann File-Modes ändern, Programme ausführen und mit Wildcards umgehen. Zudem besitzt es eine Online-Hilfe.

Auch wenn es als Shellskript nicht sehr effizient ist, so dürfte dieses Projekt doch vor allem für "on the fly" Lösungen durchaus seine Vorteile besitzen.

GNU GLOBAL

GNU GLOBAL [9] ist ein System zur übersichtlichen Verwaltung bzw. Referenzierung von Sourcecodes, ein sogenanntes "source code tag system". Geschrieben wurde es von Shigio Yamaguchi, der es unter der GNU General Public License veröffentlichte, was es unkompliziert machte, es vor kurzem als offizielles GNU Projekt aufzunehmen.

Große Mengen an "flachem" Sourcecode, der zudem über verschiedene Verzeichnisse verteilt ist, neigen dazu, extrem unübersichtlich zu werden. Mit GNU GLOBAL können C, C++, Yacc und Java Sourcecodes referenziert werden, um dann über Shell-Kommandozeile, Less, Nvi, Elvis, EMACS oder das Web als Referenzmaterial verwendet werden zu können. Dies erleichtert gerade bei großen Projekten die Übersicht und den Einstieg in die Entwicklung.

GNU GLOBAL verfügt bereits über eine durchaus beeindruckende Menge an Features - so kann es nicht nur Objekt-Definitionen sondern auch Referenzierungen lokalisieren, durchsucht auch die Pfade von Bibliotheken, versteht POSIX regular expressions, besitzt ein kompaktes Format zur Platzersparnis auf der Festplatte und vieles mehr. Doch existieren auch noch Probleme.

Das größte Problem ist momentan, daß die Detektion von Datentyp- und Macro-Definitionen noch nicht vollständig automatisiert funktioniert. Dies zu ermöglichen ist daher auch das erste Ziel für die weitere Entwicklung. Daneben wird die Unterstützung weiterer Editoren und Sprachen angestrebt.

Da GNU automake in der aktuellen CVS-Version nun auch über ein GTAGS-Target (das von GNU GLOBAL verwandte Tag-File Format) verfügt, kann davon ausgegangen werden, daß die Verwendung von GNU GLOBAL in naher Zukunft sehr problemlos möglich sein wird.

In eine ähnliche Richtung bewegt sich auch das nächste Projekt, obwohl hier unterschiedliche Schwerpunkte gesetzt werden.

HeaderBrowser

Der HeaderBrowser [10] von Amaury Bouchard ist ebenfalls ein Projekt zur besseren Dokumentation von Sourcecode. Angelehnt ist es an den HeaderViewer von NeXT, welchen Amaury von Anfang an für sehr gelungen hielt - daher entschied er sich, für Unix-basierte Systeme ein noch besseres, wenn auch daran angelehntes, Projekt zu implementieren.

Ähnlich wie auch GNU GLOBAL hebt der HeaderBrowser die "flache" Struktur des Sourcecodes auf und erzeugt eine navigierbare Dokumentation der API eines Programmes durch Verarbeitung der Header-Files. Der HeaderBrowser unterstützt dabei augenblicklich C und C++ als Sprachen und besitzt Ausgabeschnittstellen nach HTML, Texinfo, und Man-Pages.

Die Pläne für die Zukunft beinhalten, auch eine alphabetische Navigation in den Funktionen zu ermöglichen und ein Benutzer schlug vor, ein Tool zu schreiben, welches die Header-Files analysieren wird und leere HeaderBrowser-Kommentare erzeugt, die dann vom Entwickler nur noch ausgefüllt werden müssen. Da die meisten Entwickler ein eher gespaltenes Verhältnis zur Dokumentation aufweisen, könnte dies die Qualität von einigen Programmen erhöhen.

Als Lizenzen kommen für den HeaderBrowser ausschließlich die GNU General Public License (GPL) und seine Dokumentation die GNU Free Documentation License (FDL) zur Anwendung. Das Programm ist also Frei im besten Sinne.

GNUTLS

Bei GNUTLS [11] handelt es sich wieder um ein recht junges offizielles GNU Projekt. Ziel des Projektes ist die Implementation einer "Transport Layer Security" (TLS) Bibliothek unter der GNU General Public License, die Zugang zu den SSL 3.0 und TLS 1.0 Layers gewähren wird. Diese Bibliothek soll es Entwicklern ermöglichen, problemlos eine Security-Layer in Programmen zu implementieren.

Augenblicklich ist GNUTLS der OpenSSL Bibliothek noch unterlegen, weil letztere besser getestet ist und sich bereits in der Praxis bewährt hat. Allerdings ist GNUTLS vom Layout her Thread-Safe und hat ein deutlich einfacheres Interface. Zudem ist es gut, eine Implementation im GNU Projekt zu haben, die eindeutig und ausdrücklich kompatibel mit der GNU General Public License ist.

Im Moment ist GNUTLS noch nicht für den echten Einsatz geeignet. Zunächst einmal fehlt noch ein ASN.1 Parser für x509 Zertifikate, an dem der aktuelle Autor, Nikos Mavroyanopoulos, im Moment arbeitet, daher wird sich dies bald ändern. Da jedoch der andere Entwickler, Tarun Upadhyay, kürzlich aus Zeitgründen aus dem Projekt aussteigen mußte, ist Hilfe bei dieser Aufgabe ausdrücklich willkommen.

Weiterhin sollen die im Internet-draft "Wireless Extensions to TLS" spezifizierten Erweiterungen implementiert werden und es wird Support für OpenPGP-Zertifikate angestrebt, was bisher durch keine TLS Implementation geleistet wird. Aus offensichtlichen Gründen basiert GNUTLS auf der libgcrypt, die Teil des GNU Privacy Guard Projektes von Werner Koch ist, dessen Förderung durch die deutsche Regierung ja viel Aufmerksamkeit erregt hat.

Damit komme ich zu einem Projekt, das immense Bedeutung für jeden von uns hat.

GNU.FREE

Das "Free Referenda & Elections Electronically" (FREE) Projekt [12], welches ursprünglich von dem Informatik-Fachbereich der Universität Warwick in den U.S.A gestartet wurde und nun hauptsächlich von Jason Kitcat betreut wird, wurde ebenfalls kürzlich offiziell ins GNU Projekt aufgenommen. Bei dem Projekt geht es darum, ein sicheres und die Privatsphäre bewahrendes elektronisches Wahlsystem zu schaffen.

Das Projekt ist (inklusive Konzeption) bereits zwei Jahre alt, was den unmittelbaren Verdacht ausräumt, es handele sich um eine Reaktion auf das Wahldebakel in Florida. Allerdings hat diese offensichtliche Manipulation einer Wahl dazu geführt, daß die Prinzipien der Demokratie und die Fragen nach Stimmabgabe und Zählung wieder stärker ins Bewußtsein der Öffentlichkeit gerückt sind.

Nun gibt es zu e-democracy viele unterschiedliche Meinungen und auch ich bin mir nicht sicher, ob es gut ist, ein noch unmittelbareres System zu etablieren, da es Demagogen noch mehr Handlungsfreiheit einräumt. Die Frage, ob "electronic voting" erstrebenswert ist, ist meiner Ansicht nach nicht ausreichend geklärt.

Dennoch sagt die Erfahrung, daß es vermutlich in absehbarer Zeit eine starke Entwicklung zu e-democracy hin geben wird und ich denke, wir können es uns nicht leisten, aufgrund von Zweifeln am Sinn dieser Entwicklung diese zu ignorieren.

Im herkömmlichen System würde sich kaum jemand finden, der es für eine gute Idee hält, einer kommerziellen Firma die Durchführung der Wahlen zu übertragen. Der Wähler geht zu den Filialen dieser Firma, gibt seine Stimme ab und irgendwann zu Hause erfährt er, wer nun die Regierung bildet ohne daß die Möglichkeit bestünde, die Ergebnisse nachzuprüfen. Überträgt man das identische System auf das Internet mit seinen deutlich größeren Möglichkeiten zur Manipulation, wird es von der Mehrheit nicht mehr als problematisch empfunden.

Diese Erfahrung mußte ich machen, als ich Anfang Februar auf der Transmediale in Berlin, Deutschland an einem Panel zu "Social Software" teilnahm. Dort wurde ein dem obigen Beispiel entsprechendes Projekt freudig begrüßt.

Soziale Software muß Freie Software sein - nur so sind die Menschenrechte auch in einer immer stärker digitalen Kultur gewährleistet. Unabhängig also von der persönlichen Einstellung zu e-democracy und allen Bedenken ist es wichtig, daß GNU.FREE existiert.

Damit zurück zur Technik.

Das System wurde bewußt so ausgelegt, daß es gut skaliert. Bei der Planung hat Jason an Demokratien in der Größe von Indien (die größte Demokratie der Welt) gedacht - mit seiner Hilfe können also Wahlen von Vereinsabstimmungen bis hin zu Wahlen des europäischen Parlaments stattfinden.

Natürlich waren für die Entwicklung die Bewahrung des Wahlgeheimnisses und die Sicherheit oberste Prioritäten und nach Jasons Einschätzung leistet GNU.FREE dies bereits sehr gut. Bei korrekter Konfiguration dürfte es in seinen Augen außer der physikalischen Zerstörung der Server durch Feuer oder ähnliche Katastrophen nur wenig geben, was der Wahl gefährlich werden könnte. Aber dies dürfte auch für papierbasierte Verfahren ein Problem darstellen.

Die Ansprüche sind sehr hoch gegriffen und es ist dafür ein recht kleines Projekt. Neben Jason haben noch Rajagopal C.V., Thomas Müller, Ceki Gulcu, Neil Ferguson und Paul Voller an GNU.FREE mitgearbeitet. Daher ist zahlreiche Hilfe vor allem bei der Sicherheitsüberprüfung und dem Testen erwünscht, erbeten und wichtig.

Die Erhöhung der Sicherheit durch weitere Schichten der Verschlüsselung und Bugfixes ist daher auch konstantes Ziel von GNU.FREE. Daneben wird auch daran gearbeitet, weitere Wahlsysteme zu implementieren, da bisher reines ein Verhältniswahlsystem angewandt wird.

bis dann...

So, das war's für diesen Monat. Wie üblich bitte ich um zahlreiche Kommentare, Anregungen und Projektmeldungen unter der üblichen Adresse [1].

Info
[1] Send ideas, comments and questions to Brave GNU World <column@brave-gnu-world.org>
[2] Home page of the GNU Project http://www.gnu.org/
[3] Home page of Georg's Brave GNU World http://brave-gnu-world.org
[4] "We run GNU" initiative http://www.gnu.org/brave-gnu-world/rungnu/rungnu.en.html
[5] GNU-Darwin home page http://gnu-darwin.org
[6] Apple Darwin home page http://www.publicsource.apple.com/projects/darwin/
[7] Why the APSL is not a Free Software license http://www.gnu.org/philosophy/apsl.html
[8] get_file FTP address ftp://ftp.cs.duke.edu/pub/des/scripts/get_file
[9] GNU GLOBAL home page http://www.tamacom.com/global/
[10] HeaderBrowser home page http://www.headerbrowser.org
[11] GNUTLS home page http://gnutls.hellug.gr/
[12] GNU.FREE home page http://www.thecouch.org/free/

[ previous issue | Brave GNU World home ]

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org.
There are also other ways to contact the FSF.

Please send comments on Georg's Brave GNU World (in English or German) to column@gnu.org,
send comments on these web pages to webmasters@www.gnu.org,
send other questions to gnu@gnu.org.

Copyright (C) 2001 Georg C. F. Greve

Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.

Last modified: Mon Mar 12 16:08:52 CET 2001