Today I compiled my developing kernel, and I found it can run successfully in bochs and QEMU.
However, when I put this one into VirtualBox, the I/O APIC seems not working. The I/O APIC seems not delivered, so my keyboard and mouse cannot work. When I turned off SMP init code in my OS, the I/O APIC works again. I searched Internet and only found this. However, this thread seems no use to me.
Shall I reconfigure I/O APIC after I init SMP?