9.2.2 Bootvorgang


Ein Computer ist ein elektrisches Gerät. In einem elektrischen Gerät fließt elektrischer Strom. Elektrischer Strom besteht aus Elektronen, die in einem Stromkreis von einem Minuspol zu einem Pluspol fließen können. Etwas anderes können Elektronen nicht:

  • Elektronen fließen = Strom an
  • Elektronen fließen nicht = Strom aus

In einem Computer können daher zwei verschiedene Zustände unterschieden werden. Diese beiden Zustände werden mit möglichst einfachen Symbolen dargestellt:

  • "1" = Strom fließt
  • "0" = Strom fließt nicht

Wenn man den Einschaltknopf eines Computers drückt, dann will man dem Computer signalisieren: schalte dich bitte ein, damit ich mit dir Daten verarbeiten kann.

Einen solchen Satz versteht ein Computer nicht, da er nur die beiden Zustände "0" und "1" unterscheiden kann. Also muss ein Weg gefunden werden, um dem Computer mit nur zwei verschiedenen Symbolen beizubringen:

  • dass er sich einschaltet,
  • dass er angeschlossene Geräte erkennt und betriebsbereit macht,
  • dass er sich bereit macht, Daten zu verarbeiten.

Den Vorgang zwischen dem Drücken des Einschaltknopfs und der Darstellung des Anmeldebildschirms zur Eingabe von Benutzername und Passwort nennt man Bootvorgang.

Einschub: Der Begriff booten ist abgeleitet vom Satz: "pull yourself up by your bootstraps" (deutsch: "Ziehe dich selbst an deinen Stiefelriemen hoch"). Die Stiefelriemen sind die Riemen am Schaft eines Stiefels, mit denen man den Stiefel festhält, während man den Fuss in den Stiefel zwängt. Im englischen Sprachraum zieht sich in der Legende von Baron Münchhausen der Baron an seinen Stiefelriemen (Bootstraps) selbst aus dem Sumpf. Nach dem Einschalten lädt ein Computer ein kleines Programm, mit welchem er sich selbst startet. Irgendjemand hatte die Idee das kleine Startprogramm als "bootstrap-program" und das Starten des Computers mit Hilfe des bootstrap-programs als Booten zu bezeichnen.


Ablauf des Bootvorgangs

Drückt man den Einschaltknopf eines Computers, wird die Stromversorgung des Computers eingeschaltet (Netzteil), so dass die Bauteile des Computers mit elektrischer Energie versorgt werden:

  • Das Netzteil arbeitet intern mit einer Spannung von 230 V, das ist bei Berührung absolut lebensgefährlich. Man darf ein Netzteil niemals öffnen!
  • Im Netzteil werden die 230 V in Spannungen von 1,5 V, 3,3 V, 5 V und 12 V umgewandelt. Die Bauteile des Computers arbeiten mit diesen Spannungen.

Die offenliegenden Bauteile eines intakten Computers sind wegen der geringen Spannung auch bei eingeschaltetem Computer bei Berührung ungefährlich. Man sollte im laufenden Betrieb aber keine Bauteile berühren, da man Kurzschlüsse verursachen könnte, welche die Bauteile beschädigen könnten.

In einem fest eingebauten Speicherchip auf der Hauptplatine ist das BIOS gespeichert. BIOS steht für "Basic Input Output System". Das BIOS ist eine Folge von "1" und "0":

  • Eine "1" oder eine "0" nennt man ein Bit.

  • Eine Folge von "1" und "0", z.B. 1001110011101 nennt man eine Bitfolge.

Im Computer wird eine Bitfolge wie folgt verarbeitet:

  • Eingangsverarbeitung:

    • Wenn in der Bitfolge eine 1 kommt, wird an den Eingang einer elektrischen Schaltung im Computer eine Spannung von z.B. 5 V angelegt (Strom an).
    • Wenn in der Bitfolge eine 0 kommt, wird die Spannung beim Eingang wieder ausgeschaltet: 0 V (Strom aus).
  • Ausgangsverarbeitung: Wenn an eine elektrische Schaltung im Computer gemäß einer Bitfolge Spannung angelegt wird, entsteht beim Ausgang der Schaltung auch eine Spannung, die abhängig vom Aufbau der Schaltung ist:

    • Wenn beim Ausgang der elektrischen Schaltung eine Spannung von 0 bis 0,8 V entsteht, wird das als das Bit "0" interpretiert.
    • Wenn beim Ausgang der elektrischen Schaltung eine Spannung von mehr als 2 V entsteht, wird das als das Bit "1" interpretiert.

Beispiel:

  • Klicke auf die linken Schaltflächen und ändere die Bits beim Eingang der Schaltung.
  • Beobachte wie sich das Bit beim Ausgang verändert.

Die BIOS-Bitfolge wird an elektrische Schaltungen im Computer geschickt, welche dann dafür sorgen, dass ein Power-On-Self-Test (POST = Einschalt-Selbst-Test) abläuft, mit welchem geprüft wird, ob die angeschlossenen Bauteile funktionieren:

  • Wenn die Grafikkarte funktioniert, werden mögliche Fehlermeldungen des POST als Information auf einem angeschlossenen Monitor ausgeben.
  • Wenn die Grafikkarte nicht funktioniert, werden mögliche Fehlermeldungen als akustisches Signal (Töne) ausgegeben.
  • Wenn alle angeschlossenen Bauteile funktionieren, wird der Boot-Vorgang fortgesetzt.

Für den weiteren Boot-Vorgang wird die BIOS-Bitfolge in den Arbeitsspeicher des Computers kopiert. Der Arbeitsspeicher ist ein elektronisches Bauteil, welches viele Bits speichern kann, aber nur wenn der Computer eingeschaltet ist. Sobald der Computer ausgeschaltet wird, "vergisst" der Arbeitsspeicher die gespeicherten Informationen wieder.

Eine Bitfolge mit einer Länge von 8 Bit nennt man ein Byte.

Im Arbeitsspeicher wird eine Bitfolge mit 8 Bit oder 1 Byte an einer bestimmten Adresse gespeichert. Die erste Adresse des Arbeitsspeichers wird mit der Bitfolge 0000 bezeichnet. Die weiteren Adressen werden nach folgender Regel bezeichnet:

  • wenn am Ende einer Bitfolge eine 0 steht, ersetzt man die Null mit einer 1.
  • wenn am Ende einer Bitfolge eine 1 steht, ersetzt man die 1 mit einer Null und schiebt die 1 eine Stelle nach links, indem man die links stehende 0 mit der 1 ersetzt.

Die ersten Adressen des Arbeitsspeichers lauten also wie folgt:

0000 - 0001 - 0010 - 0011 - 0100 - 0101 - 0110 - 0111 - 1000 - 1001 - 1010 - 1011 - 1100 - 1101 - 1110 - 1111

Wenn man einer Binärfolge die Bedeutung einer Zahl zuordnet, nennt man diese Binärfolge eine Binärzahl oder eine Dualzahl.

Beim Arbeitsspeicher muss man zwei verschiedene Bitfolgen unterscheiden:

  • eine Bitfolge als Adresse im Arbeitsspeicher

  • eine Bitfolge als Inhalt einer Adresse im Arbeitsspeicher

Beispiel:

Adresse: 0000 - Inhalt: 01000101
Adresse: 0001 - Inhalt: 00001101
Adresse: 0010 - Inhalt: 11001101
Adresse: 0011 - Inhalt: 11111011
Adresse: 0111 - Inhalt: 00000000
...

Mit einer Adresslänge von 4 Bit können nur 16 Adressen im Arbeitsspeicher adressiert werden. Um mehr Adressen bereitszustellen, muss die Bitlänge für die Adressen vergrößert werden:

  • Mit 1 Bit können 2 Adressen adressiert werden
  • Mit 2 Bit können 4 Adressen adressiert werden
  • Mit 3 Bit können 8 Adressen adressiert werden
  • Mit 4 Bit können 16 Adressen adressiert werden
  • Mit 5 Bit können 32 Adressen adressiert werden
  • Mit 6 Bit können 64 Adressen adressiert werden
  • Mit 7 Bit können 128 Adressen adressiert werden
  • Mit 8 Bit können 256 Adressen adressiert werden
  • ...
  • Mit \(n\) Bit können \(2^n\) Adressen adressiert werden
  • ...
  • Mit 32 Bit können \(2^{32} = 4.294.967.296\), also ungefähr 4 Milliarden Adressen adressiert werden

Um einen 4 GByte Speicherbaustein zu adressieren, benötigt man 4 Milliarden Adressen, also eine Adresslänge von 32 Bit. Die ersten 4 Adressen des Arbeitsspeichers wären dann:

00000000000000000000000000000000
00000000000000000000000000000001
00000000000000000000000000000010
00000000000000000000000000000011

Adressen so zu notieren ist sehr umständlich. Daher wurde eine Möglichkeit entwickelt, die Adressen deutlich kürzer zu notieren. Man ersetzt eine 4-Bitfolge mit nur einem einzigen Zeichen, indem man mit den Dezimalzahlen beginnend hochzählt:

0000 = 0
0001 = 1
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
1000 = 8
1001 = 9

Damit man in der Bezeichnung der weiteren Adressen einstellig bleibt, hat man entschieden nach der 9 die ersten Buchstaben des Alphabets zu verwenden um die weiteren Adressen zu bezeichnen:

1010 = a
1011 = b
1100 = c
1101 = d
1110 = e
1111 = f

Damit kann man die 4 Bits einer Adresse zu einem einzigen Zeichen zusammenfassen.

Um zu kennzeichnen, dass man für die Adresse die abkürzende Schreibweise verwendet, stellt man die beiden Symbole '0x' vor die Zeichenfolge: 0110 = 0x6

Es werden 16 Zeichen verwendet, um eine Bitfolge mit 4 Bit abkürzend zu notieren. Diese Art der Bezeichnung nennt man Hexadezimalsystem. Das Wort ist ein lateinisch griechisches Mischwort: hexa (griechisch) = sechs; decem (lateinisch) = Zehn.

Eine 16-Bit-Adresse kann man mit 6 Zeichen darstellen:

0101 1011 1000 0110 = 0x5b86

Eine 32-Bit-Adresse kann man mit 10 Zeichen darstellen:

0101 1011 1000 0110 0000 1111 1001 1100 = 0x5b860f9c

Die BIOS-Bitfolge wird bei einem bestimmten Computertyp bei einer festgelegten Adresse abgelegt. Bei z.B. der x86-Computerbauweise wird das BIOS beginnend mit der Adresse 0xFFFFFFF0 abgelegt:

0xFFFFFFF0 = 1111 1111 1111 1111 1111 1111 1111 0000

Sobald die BIOS-Bitfolge im Arbeitsspeicher abgelegt ist, kann der Bootloader des BIOS damit beginnen das Betriebssystem zu starten.

Damit das Betriebssystem gestartet werden kann, muss dem Computer mitgeteilt werden, wo die Bitfolge des Betriebssystems gespeichert ist. Dazu gibt es auf dem Datenträger, auf welchem das Betriebssystem gepeichert ist (z.B. auf einer SSD = Solid State Disk) am Anfang des Datenträgers einen Bereich, in welchem nach bestimmten Regeln eine Bitfolge gespeichert ist, mit deren Hilfe man das Betriebssystem auf dem Datenträger findet.

Der Bereich am Anfang eines Datenträgers in welchem Informationen gespeichert sind, wo man auf dem Datenträger die Bitfolge des Betriebssystems findet nennt man den Master-Boot-Record = MBR.

Ein Datenträger ist ähnlich organisiert wie der Arbeitsspeicher:

  • Der Datenträger ist in Bereiche unterteilt, in welchen jeweils eine bestimmte Menge an Bits gespeichert werden kann.
  • Jedem dieser Bereiche ist eine Bitfolge als Adresse zugeordnet.

Ein klassischer MBR ist 512 Byte groß und wie folgt aufgebaut:

Adresse Beschreibung Größe in Byte
0x0000 Bootstrap Code 446
0x01be Partitions-Adresse 1 16
0x01ce Partitions-Adresse 2 16
0x01de Partitions-Adresse 3 16
0x01ee Partitions-Adresse 4 16
0x01fe 0x55 (Boot-Signatur) 1
0x01ff 0xaa (Boot-Signatur) 1

Das BIOS findet an einer festgelegten Stelle, z.B. in der Bitfolge der Partitions-Adresse 1 an der Adresse 0x01be im MBR die Adresse auf der SSD, wo die Bitfolge des Betriebssystems zu finden ist:

  • Wenn an der angegebenen Adresse ein gültiger Betriebssystemkern gefunden wird, wird dieser geladen.
  • Wenn an der angegebenen Adresse kein gültiger Betriebssystemkern gefunden wird, gibt das BIOS eine Fehlermeldung aus und stoppt den Bootvorgang.

Nachdem das BIOS das Betriebssystem gefunden hat, wird der Betriebssystemkern und für den weiteren Bootvorgang notwendige Dateien in den Arbeitsspeicher geladen.

  • Die Dateien des Betriebssystem werden eingebunden.

  • Die in den Computer eingebaute Hardware wird erkannt und notwendige Bitfolgen geladen, welche notwendig sind, damit die Hardware (Bildschirm, Tastatur, Maus, Netzwerkanschluss,...) funktioniert.

  • Grundlegende Programme werden geladen und gestartet, damit ein Anmeldebildschirm angezeigt und der Computer genutzt werden kann.

Der Computer ist betriebsbereit.


Zusammenfassung des Boot-Vorgangs


Teste dich!

Test 1

Ordne die folgenden Boot-Phasen in der Reihenfolge des Bootvorgangs! Ziehe dazu die blau gefärbten Begriffe in die richtigen Felder.

Computer einschaltenBIOS startenPOST ausführenMBR ladenBetriebssystemkern laden und virtuelles Dateisystem anlegenDateisystem des Datenträgers einbindenHardware erkennen und einbindenBetriebssystem startenComputer ist betriebsbereit

Test 2

Ordne die folgenden Binärzahlen in der richtigen Reihenfolge! Ziehe dazu die blau gefärbten Zahlen in die richtigen Felder.

0000000100100011010001010110011110001001101010111100110111101111

Test 3

Ordne die folgenden Hexadezimalzahlen in der richtigen Reihenfolge! Ziehe dazu die blau gefärbten Zahlen in die richtigen Felder.

0123456789abcdef