Wer spricht denn da, Alexa? – Nadia, qui est-ce qui parle ?

Können Maschinen sprechen?

Natürlich, seit HAL 9000 und Siri, was soll die Frage? Die Frage sei anders gemeint: Steht hinter Information, die eine Maschine ausspuckt, eine sprachliche Äußerung, eine „Botschaft“? Schon der Begriff Information ist hier missverständlich – Sprecher und Zuhörer denken an Neuigkeiten (oder gossip, wie von Yuval Noah H. beobachtet), Netzbetreiber an das optimale Komprimieren, sobald nach einigem Abhören typische Häufigkeiten für Buchstaben abgeschätzt sind. (Diese Formulierung klingt zwar nach Big Brother, ist aber nur die „operative Definition“ des Informationsbegriffs à la Shannon. Ein sprach- und selbst-loser Rechner im Mobilfunk-Mast kann das in ein paar Sekunden erledigen, und man könnte davon ausgehen, dass es niemanden interessiert, wie oft der Buchstabe „A“ in SMS vorkommt.)

Zurück zur „Sprache der Maschinen“. Es werde hier nur über die Begeisterung nachgedacht, mit der das Innenleben von Pocket Computern (pC) in den 1980ern zerlegt und neu zusammen gesetzt worden ist – eben die „Maschinensprache“. Es beginnt mit der „Information“ oder besser den langen Zahlenreihen, die eine Ebene unterhalb der Benutzer-Oberfläche in der Maschine versteckt sind. Die „Oberflächen“ sind damals fest verbundene Tastaturen und ein kleines Display, mit 12 bis vielleicht 100 Zeichen (nicht Zeilen), jedes 5×7 gepixelt. Die Zahlenreihen unter der Oberfläche kann jeder finden, dem das Sesam-öffne-dich „PEEK“ verraten worden ist. Und hier beginnt die Höhlenforschung: wo ist der Anfang, das Ende? welche Verzweigungen gibt es? wie lang ist der Untergrund?

Die Neugier nagt weiter, denn es wird einem schnell klar, dass ein tieferer Sinn verborgen sein muss. Nicht der Sinn des Lebens oder eine theory of everything, sondern ganz banal die Blaupause des Betriebssystems, das die Maschine selbst zum Laufen bringt. Eben doch ein Plan, der dahinter steht – wenn es auch nur um einen kleinen Taschen-Computer geht.

Natürlich gibt es hier eine faszinierende Parallele: der genetische Code, den wir inzwischen auch ansehen (sequenzieren) können. Um die „Bedeutung“ (Information nicht à la Shannon) eines Genoms herauszufinden, muss man allerdings mühselig viele Versuche und Irrtümer auf sich nehmen (heißt: modifizierte Gene in Zellen oder Lebewesen einschleusen und sehen, was passiert).

Das Gemeine ist nämlich: PEEK gibt nur eine Sequenz von Zahlen aus, und das System liegt binär formatiert vor. Das ist dieser Zeichensalat, den das Text-Programm auf den Schirm serviert, wenn man eine .exe-Datei oder eine aus dem bin-Verzeichnis öffnet (und nicht „ausführt“). Schon einmal mit Unix‘ „xxd“ so eine Datei angeschaut? In einer Spalte sehr lange Zahlenfolgen, manchmal springt einem in der ASCII-decodierten Version (andere Spalte) eine lesbare Buchstaben-Folge ins Auge.

Muster erkennen, das ist der erste Job der Höhlenforscher im Computer-Untergrund. Getrieben von der offensichtlichen Überzeugung, dass dieser gibberish sinnvoll ist – schließlich bringt er den pC zum Laufen (macht ihn lebendig?). Noch schärfer: dies hier ist ist ein handwerkliches Erzeugnis, entwickelt von Leuten, die sich dabei vielleicht amüsiert haben oder Fehler gemacht haben. Die ersten Muster sind schnell gefunden, wenn man die Zahlenfolgen als ASCII decodiert – denn irgendwo müssen die Entwickler ja definiert haben, dass z.B. die Buchstaben P, E, E, K mit dem Befehl PEEK zusammenhängen. An dieser Stelle im System wird offenbar die Konvention zwischen signifiant et signifié vereinbart. Direkt daneben steht dann wohl die Adresse des PEEK-Programms, ist die nächste Vermutung.

Und eine Minute später ist die nächste Idee umgesetzt: mit dem zweiten Sesam „CALL“ einfach mal ausprobieren, was passiert, wenn man den pC an dieser Adresse startet – ein kybergenetisches Experiment. Typischer Ausgang: es passiert gar nichts, oder der pC „stürzt ab“. Ich will die darauf folgenden Schritte und Monate gar nicht im Detail vorstellen, denn es ist möglicherweise wie im „richtigen Leben“: hinfallen, aufstehen, Werkzeuge erfinden, ausprobieren, verbessern und nicht mehr missen wollen. Und schon läuft ein selbst geschriebenes „xxd“-Programm, auf externem Datenträger gesichert (CSAVE M), um nach dem nächsten größeren Absturz auf hohem Niveau weiter zu machen. Es werden kleine System-Schnipsel kopiert (POKE) und ausgeführt und irgendwann ist auch die „Lupe“ da, mit der man die Änderungen sehen kann, die die System-Codes bewirken. Und schon hat man zur Zahl 0x10 eine Geschichte parat: „öffne eine Adresse“, zu 0x37: „Unterprogramm beenden“ usw. → Tabelle auf diesem Blog

Gibt der pC alle seine Geheimnisse preis? Im 64kB Speicher hat man schnell Überblick, in welchen Bereichen die eigenen Programme (das langweilige BASIC) stehen, wo einfach gar nichts steht (0x0D 0D 0D 0D …) und wo die Systemdateien sitzen: bestimmte Zahlen („Op-Codes“) tauchen häufiger auf, man erkennt Adressen wieder wie vertraute Telefonnummern (kennen Sie das Konzept noch?). Bald ist ein Geek stolz darauf, ein sich selbst veränderndes Programm zu schreiben (mit kybergenetischen Grüßen). Eine Ebene unter den Inhalten im  Datenspeicher liegen „interne Register“, die nur im Prozessor vorhanden sind. Ein, zwei von diesen können nur verändert werden, aber man kann sich nicht ihren aktuellen Wert anschauen. Man schaut dem Prozessor auf Genaueste zu, ist aber nicht „in ihm drin“. Kann man seinen eigenen genetischen Code verstehen?

„Verstehen“ bedeutet möglicherweise: Geschichten vermuten und überprüfen. Wir klettern eine Stufe höher, vom Assembler-Niveau (binäre Datei!) zum Quell-Code, sind einmal alle Befehle/Op-Codes in ihrer elementaren Bedeutung verstanden und die entsprechenden Kurzgeschichten in Abkürzungen/mnemonics gegossen. Im Quell-Code dann (Daten-)Strukturen erkennen und ausprobieren, wofür sie verwendet werden. Hardcore geeks machen das aus den Zahlen im Assembler-Code selbst. In den Registern 0x20 bis etwa 0x33 werden z.B. „Notizen“ abgelegt über den aktuellen Zustand des pC: hochgefahren oder ausgeschaltet, per Knopfdruck oder per auto power off. In der all reset Routine wird in der Tat das gesamte RAM mit Nullen überschrieben, und natürlich will man verstehen, wie das vermieden wird, wenn der externe Datenträger nicht mehr funktioniert. Auf diesem Niveau setzt Kooperation zwischen Geeks ein, und wenige (zwei, drei) Konventionen für die Assembler-„Sprache“ setzen sich durch. Hommage an Norlin R. – Yagshi – Laurent F. – Laurent D. – Edgar P. – utz. Ein schönes Relikt dieses prä-Internet Zeitalters ist ein handschriftlich kommentiertes ROM-Listing – auf knapp dreihundert Seiten sind alle 7kB (oder sogar 27kB) des Betriebssystems nachzulesen. (Bitte? 27kiloByte? dreihundert Seiten?) Dort müsste irgendwo auch stehen, wie der Taschenrechner log 2 oder sqrt(2) berechnet. Und wie macht er’s nun? Wie entstehen meine Pickel aus meinen Chromosomen?

Zum Schluss noch die Fundsache, dass der genetische Code auf einem Chromosom des Hefepilzes (auch als Bäcker- oder Bierhefe bekannt) sequenziert, „verbessert“ synthetisiert („überflüssige“ Zeilen rausgeschnitten, 40kbp kürzer) und wieder in Hefezellen eingeschleust worden ist. Die Linie von Pilzen mit diesem „Betriebssystem“ (natürlich vorkommend 13Mbp lang) soll einmal „Saccharomyces cerevisiae 2.0“ heißen. Sieben Jahre hat das Team mit der Synthese des kürzesten Chromosoms verbracht.

Advertisements

Ein Gedanke zu “Wer spricht denn da, Alexa? – Nadia, qui est-ce qui parle ?

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.