C'est un système d'exploitation X86 très simple qui a juste assez pour jouer aux petits jeux, vous pouvez essayer de l'utiliser sur votre navigateur
Vous devrez construire un compilateur croisé, vous pouvez en savoir plus sur les compilateurs croisés ici. ma configuration exacte. Vous aurez également besoin nasm pour compiler le code d'assemblage. Une fois que vous avez nasm & i386-elf-gcc & i386-elf-ld vous pouvez utiliser la commande make iso pour générer l'image brute, ou make FLOPPY=1 iso pour un disque de disquette bootable.
Vous devrez avoir un émulateur qemu , (cela fonctionne à la fois pour l'édition FLOPPY et l'édition raw ).
qemu-system-i386 -drive format=raw,file=boot.iso
Pour l'édition de disquette
qemu-system-i386 -fda boot.iso
Pour lancer l'émulateur. Vous pouvez également taper make run
Pour un jeu simple, vous aurez besoin de ces 4 fonctions
add_keyboard_handler(void (*function_ptr)(unsigned int scancode)get_timer(void)draw_screen(unsigned char *video_buffer)drivers/monitor.h , la taille vidéo_buffer doit également être 320x200 . Pour plus d'informationsEt vous définissez tous, vous pouvez en développer quelque chose comme Fappybird.
Ce projet comprend 2 façons d'écrire à l'écran
Le "Custome Bootloader" est stupide, vous devez spécifier le nombre de secteurs à lire pour charger le noyau. Pour mon jeu, ce n'est pas un problème, mais pour le vôtre, cela pourrait l'être. Calculez donc le nombre de secteurs que votre noyau est (taille du noyau / 512 octets) et modifiez la ligne 32 dans boot/boot_sect.asm en conséquence.
https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf
http://www.jamesmolloy.co.uk/tutorial_html/
https://wiki.osdev.org/james_molloy%27s_tutorial_known_bugs#problem:_not_using_a_cross-compositeur
Généralement Osdev.org a de bonnes explications sur des sujets de bas niveau