Gnomogram

News und Programme rund um GNOME

01.04.2002

GNOME und .NET

Wie kaum ein anderes Projekt im Bereich der freien Software steht GNOME immer wieder im Mittelpunkt unschöner Flamewars - neueste Episode in diesem Trauerspiel ist ein Interview zwischen "the Register" und Miguel de Icaza mit dem etwas irreführenden Titel "Gnome to be based on .NET" [1]. In diesem Interview äußert sich Icaza positiv über Microsofts .NET-Framework, das er unter dem Namen Mono [2] nach Linux portiert. Dazu kam noch, dass einige Tage zuvor die Lizenz der Mono-Klassenbibliothek von der GPL zu einer X11-artigen Lizenz geändert wurde, was es zum Beispiel Firmen wie Intel erlaubt, Code beizusteuern. Auch wenn diese Lizenz im Sinne der FSF frei ist, dürfen Programme unter der X11-Lizenz binär vertrieben werden, ohne dass der veränderte Source-Code offengelegt wird. Das genügte, um die Leser vieler News-Seiten zu überzeugen, dass Icaza - und damit auch das gesamte GNOME Team - der dunklen Seite erlegen wären. Dementsprechend häuften sich die Forderungen nach Icazas Rücktritt.

Auch wenn Icaza eine wichtige Rolle im GNOME-Projekt spielt, wäre er allerdings in keiner Position, eine so fundamentale Designentscheidung zu treffen. Es existiert innerhalb der GNOME Foundation ein jährlich neu gewähltes Direktorat mit zehn Personen neben ihm, die über solche Entscheidungen abstimmen müssten. Es ist im Übrigen zu bezweifeln, dass die GNOME Community eine so grundlegende Umstellung von C auf C# mittragen würde. Somit bleibt Mono die frühe Version einer C#-Implementierung mit Plänen für GNOME Language Bindings, wie sie auch für Python oder C++ existieren. Die Berichte von The Register, Richard Stallman hätte sich negativ zu Icazas Plänen geäußert, entpuppten sich übrigens ebenfalls als Ente, wie Stallman selbst richtig stellte [3].

GARNOME

GNOME ist für seine vielen Abhängigkeiten bekannt, und gerade für Anfänger kann es nervenaufreibend sein, alle benötigten Pakete zusammen zu suchen und zu kompilieren. Es existiert zwar mit den vicious build scripts [4] eine Möglichkeit, ein aktuelles GNOME automatisch aus dem CVS zu laden - wer allerdings lieber mit den Archiven aus den offiziellen Releases arbeitet, war bis jetzt auf sich selbst gestellt. Mit GARNOME ist es jetzt möglich, ähnlich wie in BSDs Port-System automatisch alle Archive mit ihren Dependencies zu laden und in der richtigen Reihenfolge zu kompilieren. Ist GARNOME [5] entpackt, braucht man bloß in das Verzeichnis gnome/meta-gnome-desktop zu wechseln und "make" einzugeben - den Rest erledigt GAR. Konfiguriert wird das System über die Datei gar.conf.mk, in der man unter "BUILD_PREFIX" auch das Installationsverzeichnis angeben kann. GNOME 2 sollte auf jeden Fall getrennt von GNOME 1.x installiert werden, da es sonst zu Konflikten kommen kann - aus diesem Grund werden alle kompilierten Programme standardmäßig nach ~/garnome installiert. (Die Tilde steht für das Heimverzeichnis.)

Guikachu

Mit Hilfe von Guikachu [6] lassen sich ganz ähnlich wie bei Glade sogenannte Ressourcen-Dateien für Palm OS erstellen. So ist es möglich, komfortabel verschiedene Widgets eines graphischen Interfaces zu positionieren, Menüs und Dialoge zu erstellen und das Ganze als XML-Datei abzuspeichern. Guikachu ist allerdings nicht in der Lage, die erstellte Datei selbst zu kompilieren - stattdessen muss das Interface über Datei/RPC exportieren oder mit dem Programm guikachu2rcp in einem für Pilrc [7] lesbaren Format exportiert werden. Guikachu2rcp ist eigentlich nur ein einfaches Bash-Skript, das XML-Dateien mit Hilfe von XSLT in ein anderes Format umwandelt - die eigentliche Transformation überlässt es dabei Xsltproc. Um das Interface tatsächlich in ein Programm einzubinden, bedarf es aber noch mehr Programmen: In den Prc-Tools [8] finden sich eine Reihe von Programmen, die dabei helfen, Code für den im Palm verwendeten Dragonball-Prozessor zu produzieren und zu debuggen. Außerdem benötigt man ein Palm OS SDK, welches die nötigen Includes mitbringt und sich unter [9] finden lässt. In dem von Palm angebotenen SDK-Archiv findet sich neben der Dokumentation ein RPM-Paket, das unter Debian leicht mit alien umgewandelt werden kann. Zusätzlich müssen Debian-Benutzer mit

ln -s /opt/palmdev/sdk-4/ /usr/share/prc-tools/sdk-4

einen symbolischen Link anlegen. Andere Distributionen suchen unter /usr/local/palmdev/ nach dem SDK - der Link muss dann in dieses Verzeichnis gelegt werden.

Abbildung 1: Mit Guikachu ist ein Palm-GUI schnell erstellt
Abbildung 2: Mit Guikachu ist ein Palm-GUI schnell erstellt
Abbildung 3: Mit Guikachu ist ein Palm-GUI schnell erstellt

Genigma

Genigma [10] ist ein Emulator der deutschen Enigma - der wahrscheinlich medienwirksamsten Verschlüsselungsmaschine aller Zeiten, die in zahlreichen Büchern und Filmen verarbeitet und missbraucht wurde. Auch wenn die grundlegende Kryptoanalyse der Enigma von einem polnischen Team durchgeführt wurde, wurde erst im britischen Bletchley Park die sogenannte "Bomb" entwickelt, die durch das Prüfen von Standardphrasen (sogenannte Cribs) sehr schnell nach möglichen Schlüsseln suchen konnte. Mit an der Entwicklung beteiligt war Alan Turing, der mit seiner Forschung die Grundlage für moderne Computer legte. Eben dieser fehlt übrigens im demnächst erscheinenden Film [11] völlig, da seine Homosexualität keine massentaugliche Liebesgeschichte hergegeben hätte.

Alle Typen der Enigma teilen das selbe grundlegenden Prinzip der "Rotoren", deren Anzahl je nach Modell variierte. Genigma emuliert das Modell M3, bei dem drei von fünf möglichen Rotoren zum Einsatz kamen. Dieses Modell wurde von Luftwaffe und Wehrmacht eingesetzt - die in Schiffen und U-Booten einsetzten Modelle waren noch etwas komplexer. Jeder Rotor besaß 26 Ein- bzw. Ausgänge, die in einer bestimmten Weise verdrahtet waren. So wird ein auf der schreibmaschinenartigen Tastatur getippter Buchstabe mehrmals durch einen anderen Buchstaben ersetzt - dank einem Reflektor, der an der letzten Walze angeschlossen ist, wird diese Substitution sogar zweimal vollzogen. Zusätzlich erschwert wird die Kryptoanalyse noch durch ein Steckerbrett, mit dem bestimmte Buchstaben ausgetauscht werden. Außerdem wurden die Rotoren nach jedem Tastendruck gedreht, was die Chiffrierung für jeden Buchstaben änderte.

Um tatsächlich einen Text in Genigma zu verschlüsseln, muss man nun also unter Walze 1-3 jeweils eine Zahl zwischen 1 und 5 eintragen, die für einen Rotor steht - jeder Rotor ist natürlich nur einmal vorhanden. Zusätzlich lässt sich die Ringeinstellung verändern - auf dem Ring befanden sich analog zu den Kontakten der Walze die Buchstaben von A bis Z. Die Einstellung B kommt also einer Verschiebung des Rings um eine Stelle gleich. Genauso lässt sich auch die Walze selbst vor Beginn der Chiffrierung drehen - dafür die Einstellung "Start". Im Steckerfeld können Buchstabenpaare angegeben werden, um das Ergebnis noch weiter zu verschleiern. Natürlich darf auch hier jeder Buchstabe nur einmal verwendet werden. Neben dem GNOME-Interface lässt sich Genigma auch von der Kommandozeile aus bedienen - genauere Informationen zu den Optionen finden sich in der entsprechenden Manpage.

Abbildung 4: Genigma beim Verschlüsseln eines geschichtsträchtigen Satzes

Benötigte Bibliotheken:

Guikachu:gnomemm, libxml1, libglade, gdk-pixbuf, xsltproc

Der Autor

Björn Ganslandt ist Schüler und leidenschaftlicher Bandbreitenverschwender. Wenn er nicht gerade damit beschäftigt ist, neue Programme auszuprobieren, liest er Bücher oder spielt Saxophon.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare