Charles Petzold: Code - The Hidden Language of Computer Hardware and Software

Charles Petzold bringt dem Leser in diesem Buch die Funktionsweise eines Computers auf eine geniale Art und Weise nahe. Er fängt bei den Grundlagen wie Codes im Allgemeinen und Elektrizität an und fährt immer weiter fort. Dabei liest sich das Buch sehr flüssig. Es ist sogar unterhaltsam, den Erklärungen des Autors zu folgen, die er mit zahlreichen Zeichnungen untermauert. Im Folgenden liste ich den Inhalt der einzelnen Kapitel auf. Dabei folge ich meinem subjektivem Einschätzen, was ich als wichtig, interessant oder erwähnungswürdig erachte.

Kapitel 1 - Best Friends
Kapitel 2 - Codes and Combinations

In den ersten beiden Kapiteln stellt der Autor den Morse-Code vor.

Kapitel 3 - Braille and Binary Codes

Der Autor stellt die Blindenschrift vor.

Kapitel 4 - Anatomy of a Flashlight

Der Autor stellt die Grundbegriffe der Elektrizität vor. Strom bezieht sich auf die Anzahl der Elektronen, die durch die Leitung schwirren und wird in Ampere gemessen. Spannung (voltage) sei ein komplizierteres Konzept und vergleichbar mit einem Potenzial, Arbeit zu verrichten. Um ein Ampere Strom zu bekommen, müssen 6.240.000.000.000.000.000 Elektronen pro Sekunde an einem Punkt vorbeifließen.

Die Wasserrohr-Analogie sei hilfreich an dieser Stelle: Strom sei ähnlich der Menge des Wassers, das durch das Rohr fließt. Spannung sei dem Wasserdruck ähnlich. Widerstand sei der Breite eines Rohrs ähnlich - je kleiner das Rohr, desto größer der Widerstand. Die Menge des Wassers, das durch das Rohr fließt (Strom) ist direkt proportional zum Wasserdruck (Spannung) und umgekehrt proportional zur Schlankheit des Rohrs (Widerstand).

Man kann den Strom ausrechnen, wenn man die Spannung und den Widerstand kennt:
I (Strom in Ampere) = E (Spannung in Volt) / R (Widerstand in Ohm)

Watt ist eine Maßeinheit der Kraft und kann so berechnet werden:
P (Kraft in Watt) = E (Spannung in Volt) x I (Strom in Ampere)

Kapitel 5 - Seeing Around Corners

In diesem Kapitel erklärt der Autor anhand eines Beispiels den bidirektionalen Telegraphen.

Kapitel 6 - Telegraphs and Relays

 Der Autor erzählt über die Erfindung des Telegraphen durch Samuel Morse, der sich dabei das Phänomen des Elektromagnetismus zu Nutze machte. Anhand des Telegraphen verdeutlicht der Autor das Prinzip eines Relais bzw. Verstärkers.

Kapitel 7 - Our Ten Digits

Der Autor erklärt das Dezimalsystem. Die Menschen benutzten es, weil sie zehn Finger haben und angefangen hätten, mit den Fingern zu zählen. Er geht kurz auf römische Zahlen ein und betont dann die Überlegenheit und die Vorteile der Indo-Arabischen Zahlen, die wir heute noch verwenden.

Kapitel 8 - Alternatives to Ten

Der Autor verdeutlicht, dass es auch andere Zahlen gibt, als die dezimalen.

Er gibt eine kurze Einführung in das Zählen mit oktalen Zahlen, die die Basis 8 haben. Jede Ziffer in einem oktalen System entspricht einer Potenz von 8. In einem oktalen System entsprechen die einzelnen Stellen (von rechts nach links): Einern (8⁰), Achtern (8¹), Vierundsechzigern (8²), Fünfhundertzwölfern (8³) usw.

Der Autor fährt fort und gibt eine kurze Einführung des quaternären Zahlensystems, das auf der 4 basiert. Jede Ziffer in einem quaternären System entspricht einer Potenz von 4: Einern (4⁰), Vierern (4¹), Sechzehnern (4²), Vierundsechzigern (4³), Zweihundertsechsundfünfzigern (4⁴), Tausendvierundzwanzigern (4⁵) usw.

Dann geht der Autor zum binären System über. Darin entsprechen die Positionen der Ziffern Potenzen von 2: Einern (2⁰), Zweiern (2¹), Vierern (2²), Achtern (2³), Sechzehnern (2⁴), Zweiunddreißigern (2⁵) usw.

Der Autor zeigt die Umrechnung einer Dezimalzahl in eine binäre Zahl und umgekehrt.

Zum Schluss des Kapitels zieht der Autor das Fazit: Wir seien so weit gegangen, wie wir konnten, indem wir unser Zahlensystem auf nur die beiden Binärziffern 0 und 1 reduzierten. Noch einfacher ginge es nicht. Außerdem überbrücke das binäre Zahlensystem die Lücke zwischen Arithmetik und Elektrizität. In den vorangegangenen Kapiteln hätten wir uns Schalter, Drähte, Glühbirnen und Relais angeschaut. Und jedes dieser Objekte könne die Binärziffern 0 und 1 repräsentieren.

Ein Draht könne eine Binärziffer sein: Wenn Strom durch das Draht fließt, ist die Binärziffer 1. Wenn nicht, ist die Binärziffer 0.

Ein Schalter könne eine Binärziffer sein: Wenn der Schalter an ist (oder geschlossen), ist die Binärziffer 1. Wenn der Schalter aus ist (oder offen), ist die Binärziffer 0.

Eine Glühbirne könne eine Binärziffer sein: Wenn die Glühbirne leuchtet, ist die Binärziffer 1. Wenn sie nicht leuchtet, ist die Binärziffer 0.

Ein Telegraphen-Relais könne eine Binärziffer sein: Wenn das Relais geschlossen ist, ist die Binärziffer 1. Wenn das Relais im Ruhezustand ist, ist die Binärziffer 0.

Binärzahlen hätten jede Menge mit Computern zu tun.

Etwa gegen 1948 habe der amerikanische Mathematiker John Wilder Tukey (geboren 1915) festgestellt, das Wort Binärziffer (binary digit) würde wahrscheinlich eine viel größere Wichtigkeit erlangen, wenn in den Folgejahren die Computer weit verbreitet würden. Er entschied, ein neues, kürzeres Wort zu prägen, um die sperrigen fünf Silben des Wortes binary digit (Binärziffer) zu ersetzen. Er erwog bigit und binit, habe sich aber schließlich auf das kurze, einfache, elegante und wunderbar schöne Wort bit entschieden, beendet der Autor das Kapitel.

Kapitel 9 - Bit by Bit by Bit

Das Besondere am binären Zahlensystem sei die Tatsache, dass es das einfachste ist. Wenn wir etwas haben wollten, das noch einfacher als binär wäre, müssten wir die Eins loswerden. Dann hätten wir nur die Null. Und nur damit könne man nicht viel anstellen.

Wenn ein neues Wort erfunden werde, übernehme es auch eine neue Bedeutung. Das sei sicher wahr für das Wort Bit. Im Computer-Zeitalter werde es als der Basis-Informationsbaustein angesehen. Ein Bit übertrage die kleinste Informations-Menge überhaupt. Alles, was kleiner als ein Bit ist, stelle überhaupt keine Information dar. Aber weil das Bit die kleinste Informationseinheit darstelle, könnten komplexere Informationen mit mehreren Bits übertragen werden.

Der Autor zitiert ein Gedicht, bei dem es darum geht, mit Hilfe von zwei Laternen, die in einem Kirchturm hängen und von Weitem sichtbar sind, zu kommunizieren. Jede Laterne ist ein Bit. Eine angezündete Laterne ist ein 1-Bit und eine nicht angezündete ein 0-Bit. Man braucht nur ein Bit, um eine von zwei Möglichkeiten zu kommunizieren. Mit zwei Laternen könnte man sogar vier Möglichkeiten kommunizieren, denn man hätte dann zwei Bits.

In dem Gedicht heißt es: Entweder werden in dem Kirchturm gar keine, eine oder zwei angezündete Laternen hängen - also nur drei Möglichkeiten. Damit werde das Rauschen miteinbezogen, das in jeglicher Kommunikation störend vorkommt. Auch beim Telefonieren komme das Rauschen vor. Es mache aber nichts, denn gesprochene Sprache ist sehr redundant. Wir können uns auch unterhalten, selbst wenn wir nicht jede Silbe verstehen. Im Falle der Kommunikation über die Laternen in dem Gedicht sei das Rauschen die weite Entfernung, über die man nicht hätte erkennen können, welche der beiden Laternen leuchten würde (die linke oder die rechte).

Das wesentliche Konzept hier sei, dass Information eine Wahl repräsentiert zwischen zwei oder mehr Möglichkeiten. Die andere Seite ist, dass jegliche Information, die auf eine Wahl zwischen zwei oder mehr Möglichkeiten reduziert werden könne, in Bits ausgedrückt werden könne. Es sei unnötig zu sagen, fährt der Autor fort, dass es jede Menge Formen von menschlicher Kommunikation gäbe, die keine Wahlen zwischen einzeln getrennten Möglichkeiten darstellen, und die auch wichtig und wesentlich für unsere Existenz sind.

Ein Daumen hoch oder runter ist ein Bit Information. Zwei Daumen hoch oder runter übertragen zwei Bits Information. Wenn wir über Bits sprechen, sprechen wir oft über eine bestimmte Anzahl von Bits. Je mehr Bits wir haben, desto größer ist die Anzahl der verschiedenen Möglichkeiten, die wir kommunizieren (übertragen) können.

Wenn wir zum Beispiel eine Bewertungsskala mit sieben Stufen darstellen wollten, bräuchten wir dafür drei Bits:

  • 000 = Stufe 1
  • 001 = Stufe 2
  • 010 = Stufe 3
  • 011 = Stufe 4
  • 100 = Stufe 5
  • 101 = Stufe 6
  • 110 = Stufe 7
    111 wäre dann nicht definiert.

Wir hätten die einzelnen Abstufungen in der Bewertungsskala auch anders definieren können. Zum Beispiel: 000 = Stufe 7, 001 = Stufe 6 usw. Oder nochmals anders. Solange alle Beteiligten wüssten, wie die Definition die Abstufungen den Codes (000, 001, 010 usw.) zuordnet, sei alles legitim.

Wollten wir eine 13-stufige Bewertungsskala, bräuchten wir vier Bits. Wir hätten dann drei undefinierte Codes. Denn mit vier Bits können wir 16 (2⁴) Codes (0000, 0001 usw.) repräsentieren.

Das funktioniere natürlich auch mit Dezimalzahlen. Der Autor benutzt ein Beispiel mit zehnstelligen Telefonnummern, von denen drei Stellen die Vorwahl bilden. Es gibt also 10³ Möglichkeiten für Codes, in denen Vorwahlen codiert werden können. 000 bis 999: 1.000 insgesamt. Der Autor fragt weiter, wieviele Telefonnummern einer bestimmten dieser eintausend Vorwahlen zugeordnet werden könnten: Es sind 10⁷, also 10.000.000.

Im binären System sei die Anzahl möglicher Codes immer gleich derjenigen Potenz von 2, wieviel Bits es gibt.

Anzahl der BitsAnzahl der Codes
12¹ = 2
22² = 4
32³ = 8
42⁴ = 16
52⁵ = 32
62⁶ = 64
72⁷ = 128
82⁸ = 256
92⁹ = 512
102¹⁰ = 1024

Jedes zusätzliche Bit verdoppelt die Anzahl der Codes. Wenn man weiß, wieviel Codes man braucht, benutzt man den Logarithmus Dualis (logarithm to the basis 2), um zu ermitteln wieviel Bits man benötigt. Der Logarithmus ist das Gegenteil von der Potenz.

2⁷=128

log₂128=7

Wenn der Logarithmus von 128 zur Basis 2 gleich 7 ist und der Logarithmus von 256 zur Basis 2 gleich 8, was ist dann der Logarithmus von 200 zur Basis 2? Er ist etwa 7,64. Aber wir müssen das nicht so genau wissen. Wenn wir 200 verschiedene Dinge mit Bits repräsentieren wollten, bräuchten wir 8 Bits (56 Codes wären dann undefiniert).

Der Autor erklärt den Aufbau des UPC (unique product code) und verdeutlicht, dass er eine Reihe von Bits ist. Er zeigt, dass Morse-Code und die Blindenschrift auch digital dargestellt werden können.

Ganz grundsätzlich seien Bits Zahlen. Alles, was man tun müsse, wenn Bits andere Information repräsentieren soll, sei, die Anzahl der Möglichkeiten zu zählen. Das bestimme die Anzahl der Bits, die gebraucht werden, so dass jeder Möglichkeit eine Nummer zugewiesen werden kann.

Bits spielten auch eine Rolle in der Logik, jener seltsamen Mischung auch Philosophie und Mathematik, deren oberstes Ziel es ist, festzustellen, ob bestimmte Aussagen wahr oder falsch seien. Wahr und falsch könne auch 1 und 0 sein, beendet der Autor das Kapitel.

Kapitel 10

 

Kapitel 11

Kapitel 12

Kapitel 13

Kapitel 14

Kapitel 15

Kapitel 16

Kapitel 17

Kapitel 18

Kapitel 19

Kapitel 20

Kapitel 21

Kapitel 22

Kapitel 23

Kapitel 24

Kapitel 25

the glider - universal hacker symbol