GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kopiert das BIOS den 512-Byte-Bootloader nach 0x7c00

... der Bootsektorlader lädt die 512 Bytes der Daten einer Diskette, die sich an der Speicheradresse 0x7C00 (wenn ich recht habe) in den Arbeitsspeicher befindet

...

Da die Maschine hochfährt, muss der Arbeitsspeicher leer sein, also hat der Bootloader bei 0x0000 des Arbeitsspeichers geladen?

Nr. 0000:7C00 bezieht sich auf eine RAM-Adresse . RAM bedeutet "Random Access Memory", bedeutet, dass auf jede Stelle im Speicher direkt zugegriffen werden kann. Es geht nichts über "leeren RAM". Sie können sich auch auf die INT13-Interrupt-Funktion „Read Sectors From Drive“ beziehen:einer der Parameter (übergeben in ES:BX ) muss auf die Zieladresse zeigen, wo der Sektorinhalt gespeichert wird. Daher lädt das BIOS 512 Bytes vom Laufwerk und speichert sie in 0000:7C00 bis 0000:7DFF , und springt dann zu 0000:7C00 um den primären Bootloader-Code auszuführen.

Irgendwelche Artikel/Bücher, die ich lesen sollte, um mich mit Kernels usw. vertraut zu machen?

Dieses Wiki ist sehr nützlich:http://wiki.osdev.org/Main_Page. Informationen zum Bootvorgang finden Sie unter http://wiki.osdev.org/Boot_Sequence.


Linux
  1. Kopieren Sie Dateien im Linux-Terminal

  2. Liest Tail die ganze Datei?

  3. Was bedeutet in der Ausgabe von Ps?

  4. Gibt es den umgekehrten Schnittbefehl?

  5. Wie funktioniert der Tee-Befehl?

Setzen von +a setzt das -a-Flag nicht zurück?

Sicheres Kopieren von Dateien mit dem SCP-Befehl

Warum zeigen der Befehl free und dmidecode unterschiedliche Werte für RAM an?

Wie viel RAM verwendet der Kernel?

Wie funktioniert der ps-Befehl?

Wie funktioniert die Loopback-Schnittstelle?