On Fri, 2003-12-19 at 00:36, Eric W. Biederman wrote:
Brainstorming earlier today I think I have found a way to use an linux kernel for the boot loader and to implement pcbios compatibility without too much cost. The idea is to use a uclinux kernel. And implement a ``user space'' aplication that is a user space shim that makes kernel calls.
There are a few nasty details to work out like how to handle services that are expected to work in vm86 mode. But I'm not certain I care.
Other thoughts?
Curse you, Eric, this was my idea. :)
But I approached it from a different angle. Getting Etherboot (the driver library and higher level code) to export PXE - effectively Intel's retrofit of networking code into the legacy BIOS - is similar to exporting LinuxBIOS's hardware initialisation library and a non-trivial OS via PC BIOS services. If VMWare, bochs or whatever can do it as a user space process, then it can be done all of a pece in firmware, right?
[For those of you not on etherboot-developers, I've waved my arms about recently at Eric, Ken Yap and others about how to resurrect the PXE code in Etherboot].
And yes, the "interesting" stuff is how to switch modes as appropriate and to sort out how to organise memory without frightening the horses. I'm on a very steep learning curve. And on the bottom of it, frankly.
The only difference between us is that I was thinking of building this on eCos, not uclinux. eCos is designed to minimally load only those bits of functionality needed. I don't think this affects the basic idea.