Utilisation de GRUB dans le fichier image de disquette pour démarrer votre propre noyau à l'intérieur de Bochs
Question
Fondamentalement, j'ai suivi les instructions ici http://sig9.com/bochs-grub à Créez un fichier d'image nu qui ne fait que permettant au BIOS de démarrer Grub.
Les problèmes sont:
- Le noyau que j'écris sera 32 bits, en utilisant http:// www. jamesmolloy.co.uk/Tutorial_html/index.html Pour un démarrage, mais ma machine hôte (physique) est x86_64 avec Bochs configuré comme ceci:
./ configure --prefix= / usr --enable-vbe --Without-WX --enable-cpu-niveau= 6 \ - FPU-FPU \ --enable-plugins --enable-x86-64 --enable-smp \ - Annacable-Long-Adresse Phy -enable-débogueur-débogueur -enable-désagréable -enable -enable-débogueur-gui \enable-brut-série --enable-vmx --enable-x86-Debugger --enable-iodebug
Je ne suis donc pas sûr que cela fonctionnera, même après avoir résolu le prochain numéro:
- La coque de la grobite ne démarre pas lorsque je démarre les Bochs.
Tout ce que je reçois est:
00000000000i[SYS ] bx_pc_system_c::Reset(HARDWARE) called 00000000000i[CPU0 ] cpu hardware reset 00000000000i[APIC0] allocate APIC id=0 (MMIO enabled) to 0x00000000fee00000 00000000000i[CPU0 ] CPU[0] is the bootstrap processor 00000000000i[CPU0 ] CPUID[0x00000000]: 00000003 756e6547 6c65746e 49656e69 00000000000i[CPU0 ] CPUID[0x00000001]: 00000f20 00000800 00002020 078bfbff 00000000000i[CPU0 ] CPUID[0x00000002]: 00410601 00000000 00000000 00000000 00000000000i[CPU0 ] CPUID[0x00000003]: 00000000 00000000 00000000 00000000 00000000000i[CPU0 ] CPUID[0x00000004]: 00000000 00000000 00000000 00000000 00000000000i[CPU0 ] CPUID[0x80000000]: 80000008 00000000 00000000 00000000 00000000000i[CPU0 ] CPUID[0x80000001]: 00000000 00000000 00000101 2a100800 00000000000i[CPU0 ] CPUID[0x80000002]: 20202020 20202020 20202020 6e492020 00000000000i[CPU0 ] CPUID[0x80000003]: 286c6574 50202952 69746e65 52286d75 00000000000i[CPU0 ] CPUID[0x80000004]: 20342029 20555043 20202020 00202020 00000000000i[CPU0 ] CPUID[0x80000006]: 00000000 42004200 02008140 00000000 00000000000i[CPU0 ] CPUID[0x80000007]: 00000000 00000000 00000000 00000000 00000000000i[CPU0 ] CPUID[0x80000008]: 00003028 00000000 00000000 00000000 00000000000i[PLGIN] reset of 'unmapped' plugin device by virtual method 00000000000i[PLGIN] reset of 'biosdev' plugin device by virtual method 00000000000i[PLGIN] reset of 'speaker' plugin device by virtual method 00000000000i[PLGIN] reset of 'extfpuirq' plugin device by virtual method 00000000000i[PLGIN] reset of 'iodebug' plugin device by virtual method 00000000000i[PLGIN] reset of 'ioapic' plugin device by virtual method 00000000000i[PLGIN] reset of 'keyboard' plugin device by virtual method 00000000000i[PLGIN] reset of 'harddrv' plugin device by virtual method 00000000000i[PLGIN] reset of 'serial' plugin device by virtual method 00000000000i[PLGIN] reset of 'parallel' plugin device by virtual method 00000000000i[XGUI ] [x] Mouse off 00000000000i[ ] set SIGINT handler to bx_debug_ctrlc_handler Next at t=0 (0) [0x00000000fffffff0] f000:fff0 (unk. ctxt): jmp far f000:e05b ; ea5be000f0
Quelqu'un a-t-il une idée de ce que je pouvais faire de mal?
Je soupçonne suivre les instructions de http://sig9.com/bochs-grub avait en tant que Effet Copier les fichiers grows de mes 64 bits d'hôte sur floppy.img, qui est censé être un système émulé 32 bits.
- La coque de la grobite ne démarre pas lorsque je démarre les Bochs.
La solution
That last line is the debugger printing out the current line of code. Press 'c' and hit enter, and it should start running. As for using 32 bit, it should work as x86-64 processors will run in protected mode just like any other x86 processor.