[Kos-dev] OCaml dans KOS : ça tourne !
Thomas Petazzoni
thomas.petazzoni at enix.org
Sun Jan 16 16:38:14 CET 2005
Salut,
David MENTRE wrote:
> Par contre, j'ai pas compris, pourquoi une partie non initialisée à zéro
> fait planter qemu ?
Ce n'est pas Qemu qui plantait, c'est KOS !
Dans la fonction register_ready_thread(), on vérifie que certains champs
de la structure thread sont à NULL (les fameux prev_in_wq et next_in_wq
de l'assertion).
Or, vu que la structure thread n'était pas initialisée à zéro lors de sa
création, on se retrouvait avec les données précédemment placées à cet
emplacement mémoire. Donc pas forcément zéro. Ça dépend d'un peu tout et
n'importe quoi. Dans Bochs, on a eu du bol de tomber sur des zones
initialisées à zéro (peut être que Bochs fait un memset de la mémoire
avant de lancer l'OS ?), alors qu'avec Qemu, on est tombé sur des zones
non initialisées à zéro. D'où l'explosion de l'assertion.
Ça me fait penser que ça serait une bonne idée d'ajouter une option à
Qemu pour lui demander de randomiser le contenu de la mémoire avant de
lancer KOS. Un random un peu bricolé pour qu'il n'y ai aucun zéro. Ça
permettrait peut être de trouver d'autres bugs de non-initialisation.
Thomas
--
PETAZZONI Thomas - thomas.petazzoni at enix.org
http://thomas.enix.org - Jabber: thomas.petazzoni at jabber.dk
KOS: http://kos.enix.org/ - SOS: http://sos.enix.org
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/kos-dev/attachments/20050116/949b646e/signature.pgp
More information about the Kos-dev
mailing list