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 avec
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
Mais le fichier qui est générer est bien trop grand (4M) alors que les fichiers objet ne dépassent pas les 3K.
J'utilise la commande suivante pour créer l'image disque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
cat *.bin /dev/zero | dd of=floppy.img bs=512 count=2880
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.
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.