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
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.
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.
Partager