2010-11-01 2 views
4

J'ai téléchargé quelques bootloaders d'osdev et j'ai chargé un noyau avec succès. Mais maintenant je veux apprendre la théorie derrière bootloader. Je veux savoir pourquoi le système démarre et tout ce qui se cache derrière les codes du bootloader. Quelqu'un peut-il me donner un lien ou un lien vers un livre? Merci d'avance. Le système est x86.Théorie derrière bootloader

+0

Wikipédia a un bon début: http://en.wikipedia.org/wiki/Booting – JOTN

Répondre

1

https://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf

à l'Annexe B, il donne un bref aperçu dans le premier paragraphe:

Lorsqu'un PC démarre x86, il commence l'exécution d'un programme appelé BIOS, qui est stocké dans non -volatile mémoire sur la carte mère. Le travail du BIOS consiste à préparer le matériel, puis à transférer le contrôle au système d'exploitation. Plus précisément, il transfère le contrôle au code chargé à partir du secteur de démarrage, le premier secteur 512 octets du disque de démarrage. Le secteur de démarrage contient le chargeur de démarrage: instructions qui chargent le noyau dans la mémoire. Le BIOS charge le secteur de démarrage à l'adresse mémoire 0x7c00, puis saute (définit %ip du processeur) à cette adresse. Lorsque le chargeur de démarrage commence à s'exécuter, le processeur simule un Intel 8088 et le chargeur charge le processeur dans un mode de fonctionnement plus moderne, charge le noyau xv6 du disque en mémoire, puis transfère le contrôle au noyau. Le chargeur de démarrage xv6 comprend deux fichiers source, l'un écrit dans une combinaison d'assemblage x86 16 bits et 32 ​​bits (bootasm.S; (8900)) et l'autre écrit en C (bootmain.c; (9000)).