2011-02-20 26 views
2

基本上我按照这里的指示http://sig9.com/bochs-grub来创建一个裸露的映像文件,它除了让BIOS启动GRUB之外什么也不做。在软盘镜像文件中使用grub启动自己的内核

的问题是:

  • 我写的内核将是32位,使用http://www.jamesmolloy.co.uk/tutorial_html/index.html的开始,但我的主机(物理)机器是x86_64的配置有这样的Bochs:

    ./configure --prefix =/usr --enable-vbe --without-wx --enable-cpu-level = 6 \ --enable-fpu \ --enable-plugins --enable-x86-64 --enable-smp \ --enable-long-phy-address --enable-debugger --enable-disasm --enable-debugger-gui \ --enable-raw-serial --enable-vmx --enable-86-调试--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位grub二进制文件复制到floppy.img中,该文件应该是32位仿真系统。

回答

1

最后一行是打印出当前代码行的调试器。按'c'并回车,它应该开始运行。至于使用32位,它应该工作,因为x86-64处理器将像其他任何x86处理器一样在受保护模式下运行。

+0

谢谢。我现在觉得很蠢,哈哈。我盯着它没有意识到它只是一个断点。 – Flavius

相关问题