Использование GRUB в файле Floppy Image, чтобы начать свое собственное ядро внутри Bochs
Вопрос
в основном я следовал инструкциям здесь http://sig9.com/bochs-grub Создайте голый файл изображения, который ничего не делает, кроме как позволяет BIOS начать grub.
Проблемы:
- .
- Ядро я пишу, будет 32-битной, используя http:// www. jamesmolloy.co.uk/tutorial_html/index.html для начала, но мой хост (физическая) машина X86_64 с BOCHS настроен так:
./ Настройка --prefix= / usr tenable-vbe - with-wx --enable-cpu-puret= 6 \ tenable-fpu \ tenable-плагины --enable-x86-64 letable-smp \ tonable-long-phy-адрес TOUBLE-отладчик - TENABLE-DisAmm - Tenable-Debugger-GUI \ TONABLE-RAW-SERIAL TRABLE-VMX TENABLE-X86-Отладчик --enable-iodeBug
Так что я не уверен, что это будет работать, даже после решения следующей проблемы:
- .
- Грабная оболочка не начнется, когда я загружаю bochs.
Все, что я получаю:
.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
У кого-нибудь есть идеи, что я мог бы сделать неправильно?
Я подозреваю, следуя инструкциям из http://sig9.com/bochs-grub имел в качестве Эффект, копирование 64-битных бинарных бинарных батарей моего хозяина на Floppy.img, которая должна быть 32-разрядной эмулированной системой.
- Грабная оболочка не начнется, когда я загружаю bochs.
Решение
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.