Tippen Sie in ein leeres Dokument ein großes X. Sofort erscheint es auf dem Bildschirm. Sie erkennen einen Buchstaben, vielleicht den Anfang eines Wortes. Die Tastatur hat aber keine winzige Zeichnung des X durch den Computer geschickt. Zwischen Ihrem Finger und dem Bildschirm wurde elektrische Aktivität zu Information, diese Information wurde interpretiert und der Computer erhielt Anweisungen, etwas zu zeichnen, das Sie wiedererkennen.
In unserem früheren Artikel „Wie Computer funktionieren: Feynmans ultraschneller Ablageangestellter“ haben wir Richard Feynmans Modell eines Angestellten vorgestellt, der Anweisungen befolgt und Werte aus nummerierten Schubladen liest. Es zeigte, wie ein Computer durch eine Folge einfacher Schritte komplizierte Aufgaben erledigen kann. Jetzt sehen wir genauer hin: Was liegt in den Schubladen, und wie macht die elektronische Maschine etwas Nützliches daraus? Die Antwort beginnt mit zwei Zeichen: 0 und 1.
Ein Schalter kann ein Bit speichern
Denken Sie an einen Lichtschalter. Für unsere Zwecke hat er zwei Stellungen: aus und ein. Wir könnten sie beliebig benennen, aber 0 und 1 sind praktisch. Die Entscheidung zwischen zwei Möglichkeiten entspricht einem Bit, kurz für binary digit, also Binärziffer. Ein einzelnes Bit kann zwei Zustände unterscheiden; für den Namen einer Person oder die Beschreibung eines Fotos reicht es allein nicht aus.
Im Inneren eines Computers wirken winzige elektronische Bauteile wie Schalter. Werden viele solcher Schalter mit jeweils zwei Zuständen kombiniert, kann ein Computer weit mehr darstellen als nur ein oder aus.
Mit vier Bits lässt sich zählen
Stellen Sie sich vier Schalter nebeneinander vor. Geben Sie ihnen von links nach rechts die Werte 8, 4, 2 und 1. Ist ein Schalter eingeschaltet, zählt sein Wert mit. Ist er ausgeschaltet, trägt er nichts bei. Stellen Sie die Schalter auf 0 1 0 1: aus, ein, aus, ein. Der zweite Schalter steht für 4, der vierte für 1. Zusammen ergibt das 4 + 1 = 5.
Probieren Sie eine andere Kombination aus. Das Muster 0111 steht für 7, 1111 für 15. Das ist das Binärsystem: Zahlen werden nur mit 0 und 1 geschrieben. Die Idee ähnelt unserem vertrauten Dezimalsystem. Allerdings verdoppelt sich der Stellenwert nach links jeweils, statt sich zu verzehnfachen.
Jedes Bit hat zwei mögliche Zustände, 0 oder 1. Mit vier Bits ergeben sich somit 2 × 2 × 2 × 2 = 16 mögliche Muster. Acht Bits, üblicherweise zu einem Byte zusammengefasst, ergeben 256. Durch weitere Bits lassen sich größere Zahlen darstellen, ohne dass die Elektronik zusätzliche Zustände erkennen müsste. Zählen ist nur die erste nützliche Anwendung dieser Muster.
Eine Zahl kann für einen Buchstaben stehen
Kehren wir zum X auf dem Bildschirm zurück. Wollen wir einen Buchstaben speichern, brauchen wir eine Regel, die ihn mit einer Zahl verknüpft. Ein früher Standard für Text namens ASCII liefert ein anschauliches Beispiel: Er ordnet dem Großbuchstaben X die Zahl 88 zu.
Binär lässt sich 88 als 01011000 schreiben. Die führende Null füllt lediglich den sieben Bit langen ASCII-Code auf acht Stellen auf. Die Einsen stehen an den Stellen mit den Werten 64, 16 und 8. Zusammen ergeben sie 88. Behandelt ein Programm diese Bits als Zahl, erhält es achtundachtzig. Interpretiert es sie nach ASCII, stehen sie für das Zeichen X.
Dieselben Bits, nach ASCII interpretiert.
An diesem Muster erinnert nichts an die Form eines X. Die Verbindung entsteht erst durch die vereinbarte Regel, nach der es gelesen wird.
Moderne Computer müssen weit mehr Zeichen darstellen können, als ASCII abdeckt. Dazu gehören Schriftsysteme aus aller Welt und Symbole wie Emojis. Deshalb verwenden sie umfassendere Standards, insbesondere Unicode, und unterschiedliche Verfahren, um Zeichen als Bytes zu codieren. Die Einzelheiten variieren, doch das Grundprinzip bleibt: Gespeicherte Werte erhalten ihre Bedeutung durch Vereinbarungen. Ein Wort besteht aus einer Folge so dargestellter Zeichen. Ein Programm kann die Codes für B, O und X nacheinander speichern und lesen, ohne dass es besondere Hardware für das Wort BOX benötigt.
Das gleiche Prinzip gilt für Farben. Eine verbreitete Art, ein Bildschirmpixel zu beschreiben, verwendet drei Zahlen für die Anteile von rotem, grünem und blauem Licht. In einem üblichen Beispiel mit acht Bits pro Farbkanal steht (255, 0, 0) für Rot: Der Rotanteil ist maximal, Grün und Blau sind null. Nach einer anderen Vereinbarung bekäme dieselbe Zahlenfolge eine andere Bedeutung. Texte und Bilder können deshalb mithilfe derselben grundlegenden Elektronik gespeichert werden, ohne dieselbe Art von Information zu sein.
Nun wissen wir, was Feynmans Ablageangestellter in einer Schublade finden könnte: einen Wert, dessen Bedeutung davon abhängt, wie die aktuelle Aufgabe ihn interpretiert. Einen Wert zu speichern heißt allerdings noch nicht, etwas mit ihm zu tun. Dafür braucht der Computer Anweisungen.
Wie die Schaltungen die Arbeit erledigen
Im Arbeitsspeicher liegen Informationen, die ein laufendes Programm braucht, ähnlich den Schubladen in Feynmans Modell. Die zentrale Verarbeitungseinheit, kurz CPU, führt Anweisungen aus, rechnet, vergleicht Werte und hilft dabei festzulegen, was als Nächstes geschieht. In modernen Computern verteilt sich die Arbeit auf viele elektronische Schaltungen. Die Grundidee bleibt dennoch nützlich: einen Wert abrufen, eine Operation damit ausführen und das Ergebnis festhalten.
Ein Computer kann Zahlen binär addieren. Beispielsweise steht 0101 für 5 und 0001 für 1. Addiert man sie, erhält man 0110, also 6.
Auch Anweisungen werden durch Nullen und Einsen dargestellt. Einige Bits sagen dem Prozessor, welche Aktion er ausführen soll. Andere kennzeichnen die benötigten Werte oder ihren Speicherort, etwa in einem Register (einem kleinen Speicherbereich im Prozessor). Für solche Aktionen verwenden wir kurze Namen: MOVE kopiert einen Wert, ADD addiert Zahlen, COMPARE vergleicht Werte und JUMP führt den Prozessor zu einer anderen Anweisung. CALL beginnt eine gesonderte Anweisungsfolge, RETURN führt ihn anschließend zurück. Indem der Prozessor diese Anweisungen befolgt, Schritte mitunter wiederholt oder an anderer Stelle fortsetzt, führt er ein Programm aus.
Hier treffen Software und Hardware aufeinander: Anweisungen geben den elektronischen Schaltungen vor, was sie tun sollen.
Denken Sie noch einmal an Feynmans Ablageangestellten. Er befolgt Anweisungen, sucht die richtige nummerierte Schublade, arbeitet mit ihrem Inhalt und springt manchmal zu einem anderen Schritt, statt mit dem nächsten fortzufahren. Der Prozessor folgt derselben Grundidee: Er führt ein Programm durch eine Abfolge einfacher Operationen aus.
Das Beispiel lässt viele technische Einzelheiten aus, etwa wie Prozessoren ihren internen Arbeitsbereich organisieren und ihre zahlreichen Operationen koordinieren. Um den wesentlichen Zusammenhang zu verstehen, brauchen wir diese Details nicht. Der Computer speichert Darstellungen, befolgt Anweisungen für deren Verarbeitung und hält neue Darstellungen als Ergebnisse fest.
Wie der Buchstabe X auf den Bildschirm kommt
Wir können den Weg des Buchstabens jetzt von Anfang an verfolgen. Wenn Sie eine Taste drücken, meldet die Tastaturhardware dem Gerät eine Eingabe. Betriebssystem und Anwendung interpretieren sie unter anderem anhand der Tastaturbelegung und der Zusatztasten. So bestimmen sie, welches Zeichen Sie eingeben wollten, und können eine Darstellung davon im Dokument speichern.
Soll der Text angezeigt werden, benötigt die Anwendung mehr als den Zahlencode eines Zeichens. Sie muss auch wissen, wie der Buchstabe aussehen soll. Dafür ist unter anderem eine Schriftart zuständig. Die Textdarstellung nutzt die ausgewählte Schriftart, um Form und Position des Zeichens zu ermitteln. Anschließend wird bestimmt, welche Bildschirmpixel welche Farben zeigen sollen. Das Display erzeugt das Licht, aus dem das sichtbare X besteht.
Wechseln Sie die Schriftart, kann das X ganz anders aussehen. Das Zeichen selbst ist unverändert; geändert haben sich die Informationen und Anweisungen zu seiner Darstellung. Ebenso erscheint die Zahl 88 nicht automatisch als X, nur weil die entsprechenden Bits irgendwo gespeichert wurden. Ein Programm muss sie als Text interpretieren und für dessen Anzeige sorgen.
Damit werden mehrere Rollen deutlich, die man leicht verwechselt. Elektrische Zustände ermöglichen es dem Computer, Muster zuverlässig zu speichern und zu verarbeiten. Eine Codierung sagt einem Programm, wofür ein Muster steht. Anweisungen bestimmen, was damit geschehen soll. Schließlich macht der Bildschirm das Ergebnis sichtbar. Der Buchstabe im Dokument entsteht erst durch das Zusammenspiel all dieser Schritte.
Bei Bildern und Tönen gilt dieselbe Idee
Bei einem Foto beginnt die Eingabe mit Licht statt mit einem Tastendruck. Ein Kamerasensor misst das Licht, das auf viele kleine Bereiche fällt, und das Gerät wandelt die Messungen in digitale Werte um. Beispielsweise kann ein dunkler Bildbereich als kleinere Zahl und ein hellerer Bereich als größere Zahl erfasst werden. Bildverarbeitungssoftware baut aus den Werten ein Bild auf. Die Bilddatei kann die Informationen zudem komprimieren, um Speicherplatz zu sparen. Bei der Anzeige interpretiert die Software das Dateiformat und liefert die benötigten Pixelinformationen an den Bildschirm.
Töne liefern ein weiteres Beispiel. Ein Mikrofon reagiert auf Veränderungen des Luftdrucks. Elektronische Schaltungen wandeln Messungen dieses sich ändernden Signals in digitale Abtastwerte um. Bei einer gebräuchlichen Aufzeichnungsart stehen Werte nahe null für geringe Luftdruckänderungen; weiter über oder unter null liegende Werte stehen für größere Änderungen. Leisere Töne erzeugen normalerweise kleinere Ausschläge, lautere Töne größere. Software kann die Abtastwerte speichern, bearbeiten oder übertragen. Ein Lautsprecher am anderen Ende wandelt elektrische Signale in neue Schwingungen der Luft um. Die ursprünglichen Schallwellen wurden nicht zusammengefaltet und im Speicher abgelegt. Gespeichert und verarbeitet wurden Informationen über sie, mit denen anschließend erneut Schall erzeugt wird.
Wie aus Schall Zahlen werden
Luftdruckmessungen im Zeitverlauf
Zeit →
In diesen Beispielen kommen unterschiedliche Messungen, Vereinbarungen und Geräte zum Einsatz. Dennoch beruhen alle auf derselben grundlegenden Fähigkeit: Die Maschine stellt Informationen als Muster dar, verarbeitet diese nach Anweisungen und nutzt physische Geräte, um ein Ergebnis hervorzubringen. So lassen sich die Schaltungen mit zwei Zuständen in einem Chip mit Texten, Fotos und Musik aus unserem Alltag verbinden.
Wenn etwas schiefgeht
Die bisherigen Beispiele sind bewusst vereinfacht. Echte Anwendungen müssen komplexe Dateien interpretieren, mit unerwarteten Informationen umgehen und zahlreiche Entscheidungen treffen. Um etwa ein Foto anzuzeigen, muss eine Anwendung den Dateiinhalt verstehen, bevor sie daraus ein Bild machen kann. Ein Fehler kann zu einem falschen Ergebnis oder zum Absturz führen. Manchmal versucht ein Programm, auf Speicher zuzugreifen, den es nicht verwenden darf. Die Hardware und das Betriebssystem können einen solchen Zugriff erkennen und unterbinden. Doch nicht jeder Fehler löst diesen Schutz aus. Eine Anwendung kann auch Speicher falsch verwenden, auf den sie zugreifen darf, oder schlicht eine falsche Entscheidung treffen und ohne erkennbare Warnung weiterlaufen.
Manche Fehler haben ernstere Folgen als ein Absturz. Eine Anwendung kann falsche Ergebnisse liefern, Informationen verlieren oder eine Prüfung überspringen, die eine Aktion hätte verhindern sollen. Denken Sie an Feynmans Ablageangestellten: Er kann eine Anweisung vollkommen korrekt befolgen. Verweist sie aber auf die falsche Schublade, bleibt das Ergebnis möglicherweise falsch. Ein Prozessor führt Anweisungen aus, ohne zu wissen, ob sie den Absichten des Programmierers entsprechen. Wenn eine Anwendung von außen kommende Informationen falsch verarbeitet, können solche Fehler Entscheidungen oder Handlungen mitunter unbeabsichtigt beeinflussen und möglicherweise Sicherheitsprobleme verursachen.
In späteren Artikeln werden wir untersuchen, wie solche Fehler entstehen und wie Ingenieurinnen und Ingenieure versuchen, sie zu verhindern oder ihre Folgen zu begrenzen.
Unterm Strich
Ein einzelnes Bit speichert eine von zwei Möglichkeiten: 0 oder 1. Mit mehreren Bits kann ein Computer Zahlen darstellen. Nach vereinbarten Interpretationsregeln können diese Zahlen für Zeichen, Farben oder Schallmessungen stehen. Ein Prozessor verarbeitet gespeicherte Informationen nach Anweisungen, während Ein- und Ausgabegeräte das elektronische System mit unserer Umgebung verbinden.
Denken Sie erneut an das X, das in Ihrem Dokument erscheint. Welcher Buchstabe es ist, legt ein Zeichencode fest. Wie es aussieht, bestimmen eine Schriftart und die Software, die ihn zeichnet. Das sichtbare Licht stammt vom Bildschirm. Alle diese Schritte beruhen darauf, Informationen zuverlässig darzustellen und zu verarbeiten. Diese Kette zu verstehen ist hilfreicher, als sich vorzustellen, im Computer lägen Wörter und Bilder im Miniaturformat.

