[SOS] Secteur de boot

Thomas Petazzoni thomas.petazzoni at enix.org
Sam 8 Jan 21:13:57 CET 2005


Salut,

Chris wrote:

>>Si le problème ne vient pas du saut long, renvoie une version complète 
>>du bazar qu'on puisse compiler et éxécuter.
> 
> Voilà :) :

Tu peux faire un tarball de toutes les sources, avec un Makefile ou un 
script shell pour éxécuter tout ça ? Je suis flemmard, j'ai pas envie de 
passer 3h à trouver les bouts de source à droite et à gauche et 
comprendre comment compiler ;-)

> Par ailleurs, j'ai vu dans le code proposé dans linux mag que SOS se
> copie d'abord en-dessous des 1M en mode réel puis au-dessous en mode
> protégé. Est-ce que la deuxième copie est nécessaire ?

Le noyau est relogé pour fonctionner à l'adresse 0x200000 (voir 
support/sos.lds). Donc il faut qu'il soit éxécuté à cette adresse.

Grub charge le noyau à l'adresse donnée dans le multiboot header (voir 
bootstrap/multiboot.S) :

   /* load_addr=    */ .long __b_load

Ce __b_load est défini dans support/sos.lds :

     /* our kernel is loaded at 0x200000 */
     . = 0x200000;
     __b_load   = .;

Vu que le noyau est relogé à cette adresse, il faut qu'il soit éxécuté à 
cette adresse.

D'ailleurs, c'est peut être la source de ton problème. Si le noyau est 
relogé pour fonctionner à 0x200000 et que tu l'éxécutes ailleurs, il est 
possible que même un simple "int main(void) { for(;;); }" échoue.

> Merci pour la réponse, et félicitations par ailleurs pour les excellents
> articles dans Linux Magazine :)

Merci ! Et merci également de tes questions (et des questions des 
autres), elles nous permettent de voir que les articles sont lus et 
étudiés par quelques personnes, et rien n'est plus satisfaisant que cela !

Alors, n'hésitez pas à poser vos questions ! Parfois, je suis un peu 
long à répondre, car certaines questions demandent de faire des 
recherches dans le code de SOS, de reprendre les anciens articles pour 
donner des références. Mais je réponds toujours ;-)

Bonne soirée,

Thomas
-- 
PETAZZONI Thomas - thomas.petazzoni at enix.org
http://thomas.enix.org - Jabber: thomas.petazzoni at jabber.dk
KOS: http://kos.enix.org/ - Lolut: http://lolut.utbm.info
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 256 bytes
Desc: OpenPGP digital signature
Url : http://the-doors.enix.org/pipermail/sos/attachments/20050108/54f65ce0/signature.pgp


Plus d'informations sur la liste de diffusion Sos