GNU/Linux >> Linux Esercitazione >  >> Linux

Il BIOS copia il bootloader da 512 byte in 0x7c00

... il boot-sector loader carica i 512 byte dei dati di un dischetto che risiede all'indirizzo di memoria 0x7C00 (se ho ragione) nella RAM

...

Poiché la macchina si sta avviando, la RAM deve essere vuota, quindi il bootloader è stato caricato a 0x0000 della RAM?

No. 0000:7C00 fa riferimento a un indirizzo RAM . RAM significa "Random Access Memory", significa che ogni posizione nella memoria è accessibile direttamente. Non c'è niente come "RAM vuota". Puoi anche fare riferimento alla funzione di interrupt INT13 "Read Sectors From Drive":uno dei parametri (passato in ES:BX ) deve indicare l'indirizzo di destinazione in cui verranno archiviati i contenuti del settore. Quindi, ciò che fa il BIOS è caricare 512 byte dall'unità e memorizzarli in 0000:7C00 a 0000:7DFF , quindi passa a 0000:7C00 per eseguire il codice del boot loader principale.

Qualche articolo/libro che dovrei leggere per familiarizzare con i kernel, ecc.?

Questo Wiki è molto utile:http://wiki.osdev.org/Main_Page. Per il processo di avvio, guarda http://wiki.osdev.org/Boot_Sequence.


Linux
  1. Cosa fa il permesso di esecuzione?

  2. Perché il comando free e dmidecode mostrano valori diversi per la RAM?

  3. Quanta RAM utilizza il kernel?

  4. Come funziona l'interfaccia di loopback

  5. Cosa significa la capacità ep?

Come funziona il bit appiccicoso?

Tail legge l'intero file?

Cosa significa nell'output di Ps?

Esiste il comando inverso di taglio?

Copia i file in modo sicuro con il comando SCP

Come funziona il comando ps?