[ 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.
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.
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.
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.
Ä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.
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.
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.
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/ |
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