Bonjour,
Je suis actuellement le cours de Michelizza sur le développement d'OS.
Jusque là j'ai un peu de mal avec la mémoire qui n'est, je trouve, que vaguement abordée. (On donne du code et il n'est malheureusement que très peu expliqué)
Je ne comprend déjà pas vraiment les schémas sur la mémoire mais ce n'est pas vraiment le problème.
Une fois que le noyau à été entièrement écrit en C j'arrive à 'linker' (si c'est le bon mot) les fichiers objets avecMais le fichier qui est générer est bien trop grand (4M) alors que les fichiers objet ne dépassent pas les 3K.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 gcc -c kernel.c gcc -c screen.c ld --oformat binary -Ttext 1000 kernel.o screen.o -o kernel.bin
J'utilise la commande suivante pour créer l'image disque.
Voici mon problème, je lance le fichier img avec VirtualBox mais seulement le bootloader s'exécute, la suite du programme (chargement du noyau) plante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part cat *.bin /dev/zero | dd of=floppy.img bs=512 count=2880
Si vous voulez vérifier le code je l'ai posté sur mon github. (ce n'est qu'une copie presque identique aux codes du cours original)
Je rajouterai également que je suis ce cours pour en apprendre plus sur le fonctionnement d'un ordinateur.
Merci d'avance.
Partager