[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