* ron minnich rminnich@gmail.com [070108 15:50]:
if you're really determined to support this, I think the best way to do it is to build on our emulator. I.e. load the MBR and support its calls via emulation, not direct execution a la ADLO.
And how do you do the transition to native x86 execution? Your scenario would mean to emulate execution of the Windows bootloader, so that it can use bios callbacks. But I have no idea how to find out we're out of the bootloader and in Windows itself. ie. no bios callbacks will follow.
We've found the emulator to be very solid, and in fact, somebody is working on plugging it in to plan 9 to improve their VESA support. So you would load the MBR, run it under emulation, and take it from there.
Nothing against the success of the emulator. It is great work, and it helped LinuxBIOS (and I suppose other projects) a lot. But emulating an x86 machine on an x86 seems to have a whiff of a broken design. Not to forget, that it is kind of slow, thus becoming our bottle neck in boot times (which we still call our main advantage over legacy bios)
The best way, in my view, is to boot linux in flash and have linux kexec the actual OS you want to boot.
This is not exactly going to make things faster, in the Windows/MBR case.
But is it possible to boot Vista under Linux via kexec? That would be interesting.
Kexec is Linux specific. It can't do the job for any Windows or BSD, but will just load a Linux kernel.