Was ist eigentlich Software?

Armin Maiwald ist Wissenschaftsredakteur, Filmemacher, Regisseur, Produzent – und Erfinder der Sachgeschichten in der „Sendung mit der Maus“. Seine Spezialität: einfache Erklärungen für komplizierte Sachverhalte.




Wenn Sie eine einfache Antwort wollen: Software (übersetzt etwa: das weiche Zeug) ist das Gegenteil von Hardware (übersetzt: das harte Zeug), und nur mit beidem zusammen funktioniert ein Computer.

Die Hardware an einem Computer ist alles das, was man anfassen kann: die Tastatur (von modernen Menschen auch Keyboard genannt), der Monitor (egal, ob flach oder voluminös), die Verbindungskabel zum Rechner, das Fach für die CD oder DVD, eventuelle Lautsprecher, sogar das Kabel bis zur Anschlussstelle ans Stromnetz oder ans Internet.

Und wenn Sie das alles haben, selbst in der neuesten technischen Generation und meinetwegen noch mit Goldrand und Schleifchen, dann können Sie damit nichts anfangen, gar nichts, ü-ber-haupt nichts.

Ihnen fehlt nämlich etwas, was man nicht anfassen und nicht sehen kann, weswegen man davor auch immer Manschetten hat, die Software. Diese Software ist nichts anderes als eine unvorstellbar große Anzahl von Befehlen, ausgedrückt in Einsen und Nullen.

Das Bild mit den Einsen und Nullen ist aber nur eine Eselsbrücke: Die Eins steht für Strom an, die Null für Strom aus.

Strom an und Strom aus kennt jeder, der in der Wohnung elektrisches Licht hat. Drückt man auf den Schalter, fließt Strom, das Licht geht an, drückt man noch mal, wird der Stromfluss unterbrochen, das Licht geht aus. Das Bild vom fließenden Strom ist übrigens auch nur eine Eselsbrücke.

Stromschalter sind das eigentliche Geheimnis eines Computers. Wie viele davon auf einen einzigen Mikrochip gehen, sprengt unser Vorstellungsvermögen bei weitem. Und obwohl diese Schalterchen mikroskopisch klein sind, zählen auch sie streng genommen noch zur Hardware. Die Software ist die Befehlskette, die sagt, wann welches dieser vielen Schalterchen den Strom anschalten oder ausschalten soll.

Nichts anderes spielt sich in einem Computer ab, allerdings nicht nur ein einziges Mal wie beim Betätigen des Lichtschalters, sondern viele hunderttausend Male und in unglaublicher Geschwindigkeit.

Die Software, die es uns ermöglicht, am Computer Geschichten zu schreiben, Bilder zu malen oder unsere Steuererklärung zu machen, ist sogar so kompliziert, dass sich schlaue Programmierer erst einmal eine eigene Sprache ausdenken mussten – eine Programmiersprache – damit die Hardware auch wirklich versteht, was sie machen soll. Aber darüber wollen wir uns jetzt nicht unterhalten, sonst dauert das ein paar Jahre.

Wenn Sie Ihren Computer mit einem Knopfdruck (Hardware) einschalten, bekommt die CPU (Hardware), die auf dem Motherboard (auch Hardware) sitzt, Strom. Die CPU ist die Central Processing Unit (übersetzt: zentrale Verarbeitungseinheit), ohne die in einem Computer nichts läuft. Sie ist ein Dschungel aus Schaltern, Kondensatoren, Halbleitern und Transistoren – alle mikroskopisch klein, rasend schnell und unglaublich zuverlässig. Das Motherboard (übersetzt: Mutterbrett) hat in einem Computer die gleiche zentrale Bedeutung wie eine Mutter in der Familie. Hat nun die CPU durch das Einschalten Strom bekommen, beginnt eine Befehlskette, die man sich ungefähr so vorstellen kann: Die CPU weckt das BIOS mit einem kleinen Stromimpuls: He, BIOS, wach auf und zeig mir die Startroutine! Das BIOS (Software) ist das Basic Input Output System (übersetzt: grundlegendes Eingabe- und Ausgabesystem).

Das Aufwecken des BIOS ist die einzige Operation, die die CPU zu diesem Zeitpunkt ausführen kann. An einer festen Stelle innerhalb des BIOS sitzt ein kleines Progrämmchen (Software), die so genannte Startroutine. Die Startroutine sagt: Schmeiß die Festplatte an und lade das OS, das Operating System (übersetzt: das Betriebssystem). Die Zentrale gibt also quasi den Befehl: Schmeiß den Riemen auf die Orgel!

Ein Pieps und mehrere kurze Pfeiftöne

Der nächste Befehl ist: booten – was übersetzt nichts anderes bedeutet, als in die Stiefel kommen (von boot = Stiefel). In Hamburg würde man sagen: Nu’ komm mal in die Puschen.

Das Booten beginnt mit dem Power On Self Test, einem Selbsttest, bei dem die Software die Hardware überprüft. Zum Beispiel: Ist die Verbindung zwischen Computer und Tastatur in Ordnung, ist eine Maus angeschlossen, ist der Bildschirm am Start und so weiter.

Das Blinken der LEDs (Light Emitting Diode = Leuchtdiode) auf der Tastatur kommt daher, und meist signalisiert ein Pieps, dass der Selbsttest erfolgreich war. Im Falle eines Fehlers gibt das BIOS mehrere kurze Pfeiftöne von sich und bricht den Selbsttest mit einer Fehlermeldung ab.

Ist das Betriebssystem erfolgreich installiert, sieht man am Ende auf dem Bildschirm die Desktop-Oberfläche (übersetzt: die Oberfläche der Tischplatte, auch wieder eine Eselsbrücke – man soll sich dabei vorstellen, wie man Aktenordner auf seinem Schreibtisch anordnet). Durch einen Doppelklick auf das Symbol eines Programms, zum Beispiel Word, wird das Programm (Software) gestartet, und man kann anfangen zu schreiben, zu rechnen, zu malen, zu spielen, was auch immer. Alles immer nur eine Frage der Software.

Die Software ist also eigentlich das Entscheidende an einem Computer. Sie bestimmt, was die Hardware macht. Und so wie ein Mensch aus Körper und Geist besteht, kann man in einem etwas schrägen Vergleich vielleicht sagen: Was beim Menschen der Körper ist, mit seinen Knochen, Muskeln und Sehnen, das ist bei einem Computer die Hardware. Und das, was den Menschen steuert, der Geist also, das ist beim Computer die Software.

Um sich aber vorzustellen, wie die einzelnen Befehle einer Software in den oben erwähnten Einsen und Nullen ausgedrückt sind, muss man einen Ausflug in die Welt der Bits und Bytes machen.

Immer noch am einfachsten geht das bei den Zahlen. Und es fängt mit einem einfachen Satz an, aber jeder folgende Satz ist schwieriger, und nach kurzer Zeit wird einem ganz schwindelig, weil die Vorstellungskraft streikt. Aber Sie haben es ja so gewollt.

Also:
Die kleinste Einheit in einem Computer ist ein Bit. Dieses Bit ist nichts anderes als der Lichtschalter in der Wand.

Ein Bit taucht aber nie allein auf, es sind immer acht nebeneinander. Und acht Bits nebeneinander nennt man ein Byte. Was also acht Lichtschaltern nebeneinander entspricht.

Dafür male ich jetzt mal acht Nullen nebeneinander, denn es soll noch kein Strom fließen:

0 0 0 0 0 0 0 0

Mit diesen acht Schaltern kann man schon 256 verschiedene Zustände von Strom an und Strom aus darstellen. Wer einen verregneten Nachmittag sinnvoll nutzen will, kann es mit Papier und Bleistift selbst ausprobieren, also anfangen mit

1 0 0 0 0 0 0 0, dann
0 1 0 0 0 0 0 0, dann
0 0 1 0 0 0 0 0, dann
0 0 0 1 0 0 0 0, dann
0 0 0 0 1 0 0 0 und so weiter.

Wenn man die Nerven nicht verloren und keinen Fehler gemacht hat, landet man am Ende bei 256 unterschiedlichen Mustern oder Schalterstellungen. In der ersten Zeile müssen nur Nullen stehen, in der letzten Zeile nur Einsen.

Stellt man sich als Nächstes vor, dass jeder der acht Schalter für eine Zahl steht, die doppelt so groß ist wie die vorherige, dann sieht das so aus:
1 2 4 8 16 32 64 128
und darunter die zugehörigen Schalter:
0 0 0 0 0 0 0 0

Will man die Zahl Null darstellen, dann ist klar: Alle Schalter sind aus. In Stromimpulsen ausgedrückt:
0-0-0-0-0-0-0-0

Die Zahl Eins ist auch ganz leicht, nämlich:
1 2 4 8 16 32 64 128
in der Schalterstellung:
1 0 0 0 0 0 0 0

In Strom ausgedrückt: 1-0-0-0-0-0-0-0, erster Schalter an, danach sieben Mal aus.

Die Zahl Drei wäre:
1 2 4 8 16 32 64 128
mit folgender Schalterstellung: 1 1 0 0 0 0 0 0
(1 + 2 = 3).

In Strom ausgedrückt: 1-1-0-0-0-0-0-0, die ersten beiden Schalter an, danach sechs Mal aus.

Die Zahl Fünf wäre:
1 2 4 8 16 32 64 128
dabei ständen die Schalter so:
1 0 1 0 0 0 0 0
(1 + 4 = 5).

In Strom ausgedrückt: 1-0-1-0-0-0-0-0, an, aus, an, danach fünf Mal aus.

Und so kann man mit einem Byte alle Zahlen von Null bis 255 in Strom an und Strom aus darstellen. Nur eine Frage, wie die einzelnen Bits geschaltet sind.

Damit nun der Rechner, wenn ich auf die Taste mit der 5 drücke, weiß, was ich meine, gibt es etwas, das man sich vorstellen muss wie ein Vokabelheft für eine Fremdsprache. Natürlich wieder ein elektrisches Vokabelheft, also Software.

Da steht dann: „Wenn der Blödmann da draußen, ohne auf noch eine andere Taste zu drücken, in der obersten Reihe auf den sechsten Knopf von links drückt, dann meint er, wenn er sich nicht schon wieder vertippt hat, ‘ne 5, also für uns hier drinnen natürlich: 1-0-1-0-0-0-0-0.“

Der Interrupt Controller kann manchmal eine ganz schöne Nervensäge sein

Und damit es nun nicht zu einfach wird, muss man noch Folgendes erzählen: Wenn der Blödmann da draußen auf die Taste mit der 5 drückt, entsteht ein Stromimpuls, der im Tastaturcontroller gespeichert wird – selbstverständlich wieder als eine Folge von Strom-an-und Strom-aus-Befehlen. Der Tastaturcontroller meldet dem IC, dass ein Ereignis vorliegt. Der IC ist in diesem Falle nicht der Zug von Hamburg nach Köln, sondern der so genannte Interrupt Controller (ins Deutsche übersetzt etwa: der Unterbrechungs-Kontrolleur).

Dieser Interrupt Controller hat bei der CPU (siehe oben, die zentrale Verarbeitungseinheit) absolute Vorfahrt. Man könnte ihn vergleichen mit einem Lieblingskind, das die Mama immer stören darf, oder mit einer Nervensäge, die immer stört, auch wenn’s was Wichtiges zu tun gibt. Die CPU ist ja – solange der Computer eingeschaltet ist – permanent mit irgendwelchem Kram beschäftigt, und sei es auch nur damit, die Uhr am unteren Bildrand des Bildschirmes zu aktualisieren.

Wenn aber jetzt der IC kommt, dann lässt die CPU alles stehen und liegen und wendet sich dem neuen Ereignis zu: „Aha, Tastendruck, oberste Reihe, sechster Knopf von links. Muss ich mal beim BIOS (siehe oben, grundlegendes Eingabe-Ausgabesystem) nachschauen, was das bedeutet.“

Im BIOS gibt es an einer bestimmten Stelle so etwas wie eine Tastendruckroutine (das, was ich eben Vokabelheft genannt habe). Das ist eine Ansammlung von Bytes, die der CPU sagt, dass das die 5 ist und was sie tun muss, um den Tastendruck zu aktivieren.

Damit nun auch nach dem tausendsten Mal Einschalten und dem vielleicht fünfhundertsten Absturz und auch dann, wenn Tante Helga oder Klein-Maximilian den Computer einschalten, die sechste Taste in der obersten Reihe 1-0-1-0-0-0-0-0 bleibt, ist die Routine dafür in einem ROM abgelegt.

ROM bedeutet Read Only Memory (übersetzt etwa: Nur-Lese-Gedächtnis oder etwas griffiger: Nur-Lese-Speicher.) Heißt: Was in diesem Speicher drin ist, kann man nur herauslesen, sich angucken. Man kann nichts hineintun, also zum Beispiel nichts hinzufügen oder verändern. Es kann also nicht passieren, nicht mal durch ein Unglück – den weltweiten magnetischen Supergau ausgeschlossen –, dass der Tastenbefehl für die 5 gelöscht wird oder dass stattdessen ein A erscheint.

Jetzt kommt ein kleines Zwischenproblemchen: das Speichern. Es gibt den Arbeitsspeicher und den Festplattenspeicher. Beide arbeiten mit Strom, ansonsten ist ihre Arbeit aber grundverschieden. Die Kondensatoren des Arbeitsspeichers merken sich die An- und Aus-Befehle nur für eine bestimmte Zeit. Der Festplattenspeicher verändert die Oberfläche der Festplatte elektromagnetisch und dauerhaft in Nullen und Einsen.

Wenn man am Computer schreibt oder rechnet, findet das im Arbeitsspeicher statt. Und wenn man das nicht ab und zu gesichert, also abgespeichert hat, und der Strom fällt plötzlich aus, dann ist alles futsch, weil die Kondensatoren sich entladen haben. Aber alles, was auf der Festplatte gespeichert ist, bleibt erhalten, auch nach einem Stromausfall (den weltweiten elektromagnetischen Supergau wieder ausgeschlossen).

Kompliziert? Am Ende sind es alles nur Einsen und Nullen

Zurück zur CPU, die gerade im BIOS erfahren hat, dass da eine 5 zu verarbeiten ist. „Nimm das mal in den Arbeitsspeicher, und zeig’s ihm auf dem Bildschirm, sonst glaubt er am Ende gar nicht, dass er auf die Taste gedrückt hat“, könnte die nächste Anweisung vom BIOS heißen.

Die CPU lädt also acht Kondensatoren im Arbeitsspeicher mit den entsprechenden An- und Aus-Impulsen der 5 auf. Dann schickt die CPU die Stromimpulse der 5 zum Controller der Grafikkarte. Der speichert sie im RAM der Grafikkarte. Das RAM ist das Random Access Memory (übersetzt heißt das etwa: Speicher, auf den man willkürlich und zu jeder Zeit zugreifen kann). Und die Grafikkarte stellt die 5 dann auf dem Monitor dar.

Jetzt haben Sie einen ersten Eindruck, was Software alles macht. Und dabei ist es eigentlich noch viel komplizierter, als man es mit einfachen Worten beschreiben kann. Und: Wir bewegen uns im Moment nur an der allerobersten Oberfläche des unglaublich komplexen Systems Computer. Wenn das eben mit den Lichtschaltern so gemütlich klang, täuscht der Eindruck ganz gewaltig. Denn schon zum Beispiel das Rechnen mit den verschlüsselten Zahlen funktioniert nur deshalb, weil alle Schalterstellungen im System mit zwei Gigahertz abgefragt werden.

Zwei Gigahertz bedeutet: Alle Schalterstellungen werden in jeder! Sekunde! zwei Milliarden Mal! abgefragt. Nur durch diese wirklich unvorstellbare Geschwindigkeit ist es möglich, dass man auf die Taste drückt und im selben Moment die Zahl oder der Buchstabe oder eine abgeschlossene Rechenoperation auf dem Monitor erscheint. Und wir reden noch lange nicht von bunten, bewegten Bildern aus dem Internet oder vom Filmschnitt auf dem Computer oder von Musik-Runterladen oder dem ganzen Schnickschnack, den man mit so einer Kiste anstellen kann. Aber ehe Sie die Lust verlieren, belassen wir es dabei. Am Ende sind es ja doch alles nur Einsen und Nullen (oder Strom an und Strom aus), die in rasender Geschwindigkeit durch das System flitzen und damit etwas bewirken. Und je nachdem, in welcher Reihenfolge die Einsen und Nullen aufeinander folgen, wird daraus eine 5, ein A oder der Beginn eines Computerspiels. Das ist Software.


Dieser Text stammt aus unserer Redaktion Corporate Publishing.