Nächste Vorhergehende Inhalt

2. Hardware

Wenn Sie Ihren PC einschalten absolviert dieser zuerst einen Test, um zu sehen ob alles in Ordnung ist. Dies wird genannt: "Power on self test". Dann sieht ein Programm Namens: "bootstrap loader", welches im ROM BIOS sitzt, nach einem boot Sektor. Ein boot Sektor ist der erste Sektor eines Speichermediums (Festplatte, Diskette, CD-Rom,...) und beinhaltet ein kleines Programm, das ein Betriebssystem startet. Boot Sektoren sind gekennzeichnet durch eine magische Zahl 0xAA55 = 43603 im byte 0x1FE = 510. Das sind die letzten zwei Bytes im Sektor. So kennzeichnet die Hardware, ob es ein boot Sektor ist oder nicht.

Der bootstrap loader hat eine Liste von Orten, wo er nach einem boot Sektor sucht. Meine alte Maschine sieht zuerst im primären Diskettenlaufwerk, dann in der primären Festplatte nach. Modernere Maschinen können auch auf CD-ROM nach sehen. Wenn es einen boot Sektor findet, lädt es ihn in den Arbeitsspeicher und gibt die Kontrolle an das Programm ab, welches das Betriebssystem startet. Auf einem typischen Linux System, ist dieses Programm LILO's erster boot loader. Es gibt viele Wege Ihr System für den Bootvorgang zu konfigurieren. Siehe LILO User's Guide für Einzelheiten. Siehe Sektion LILO für einen Link.

Wahrscheinlich gibt es noch eine Menge zu sagen, wie PC Hardware funktioniert. Aber dies ist nicht der richtige Ort dafür. Lesen Sie dazu eines der vielen guten Bücher, über PC Hardware.

2.1 Konfiguration

Die Maschine speichert einige Informationen über sich selbst im CMOS. Dies beinhaltet, welche Laufwerke und wieviel RAM sich im System befinden. Das Maschinen BIOS beinhaltet ein Programm mit welchem Sie diese Einstellungen modifizieren können. Lesen Sie die Meldungen auf dem Bildschirm beim Sart, um zu erfahren, wie Sie in das BIOS rein kommen. Auf meiner Maschine, drückt man die "Entf" Taste vor dem Betriebssystemstart.

2.2 Übungen

Ein guter Weg etwas über PC Hardware zu lernen, ist einen PC aus gebrauchten Teilen zu bauen. Es sollte aber wenigstens ein i386 sein, um ein Linux laufen lassen zu können. So einer kostet nicht mehr viel. Fragen Sie rum, vielleicht gibt Ihnen jemand etwas, was Sie brauchen.

Laden Sie herunter, kompillieren und erstellen Sie eine Bootdiskette für Unios. (Es gab mal eine Homepage auf http://www.unios.org, aber diese ist weg.) Das ist nur ein bootbares "Hello World!" Programm, bestehend aus etwas über 100 Zeilen von Assembler Code. Es wäre schön es konvertiert zu sehen, daß der GNU Assembler as es verstehen kann.

Es gibt Anweisungen, wenn Sie Ihr eigenes Betriebssystem schreiben wollen auf: Roll Your Own. Falls Sie eine echte Herausforderung suchen.

Öffnen Sie das Bootdiskimage von unios mit einem Hexeditor. Dieses Image ist 512 bytes lang, genau ein Sektor. Finden Sie die magische Zahl 0xAA55. Machen Sie das selbe für den Boot Sektor einer Bootdiskette Ihres eigenen Computers. Sie können den Befehl dd benutzen, um ihn in eine Datei zu schreiben: dd if=/dev/fd0 of=boot.sector. Seien Sie sehr vorsichtig, daß Sie die richtige Reihenfolge benutzen if (Eingangsdatei) und of (Ausgangsdatei)!

Sehen Sie sich den Quelltext für LILO's bootloader an.

2.3 Mehr Informationen


Nächste Vorhergehende Inhalt