[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