Well, the message is important (from my point of view), but I hope you will receive it just once :-)
Got only one of this one! :)
A few months ago, I was searching for options to building a BIOS for a custom PC: No graphics card, no hard disk, with sound card, network card (well, say: an MP3 player for the HiFi tower). Of course, I wanted to avoid anything I would not need and I wanted to have anything I need to boot up the thing quickly and easily.
A little off topic maybe, but have you seen the cool car MP3-player at http://www.empeg.com ? Looks cool! If you manage to make a working mp3-box, let me know, would be cool to build one myself!
As you see, I found the openbios movement, but what I found was, say, nothing but a vision. Neither a concept nor an idea. Just a vision. A vision of building something similar to what we all already have in our PCs. Of course, the idea of reinventing the BIOS-wheel is great and I thought: Hey, finally _we_ have the choice of how the PC boots up, we can work around any hard disk or booting problem by ourselves.
You mention the 32bit boot loaders, which seem to be a good thing. I think the vision is to make a bios that we can add needed/cool features to later.
But as far as I can see the intentions grown up to now, we just sit in here and construct a new BIOS after the Phoenix, AMI, Award etc. with the same API (for best compatibility) which means, with the same main booting features. The idea of booting directly from 32 bit mode was fascinating for me, but what's it for if we have to switch back to 16 bit, implement all API calls again just to boot any OS. I thought, the main purpose of a new BIOS would not _only_ be the fact that it is OSS. We would have the opportunity to make something very new, especially concerning the boot process. The idea of putting the remote boot BIOS directly into the system BIOS is great - but what's it for if we don't invent something really new?
Of course, this is a large project, and my ideas make it even larger :-). But, would f.e. Linux be that great if it would have just been a "better DOS", say, an "OSS DOS"? OK, it would be for free, but what for?
And we even have FreeDOS! I think we just need a start, and maybe there could be configurable if you want a clean 32bit bios, or you want a bios16-compatible binary. I think that is the big issue here, as I have said before:
Make it configurable! Then the visions and new ideas can be added and used when wanted.
OK, back to topic: My idea (better: brain storm) of the boot process is as follows:
- Processor switches to 32 bit. 32bit only, no compatibility API in the
MAIN BIOS. Well, I think after we implemented all in 32bit, there will be not very much space left for such things.
1a) If, somehow, 16bit compatibility is needed, we could easily implement (if one wants to call it that way) a loader for the old BIOS. Well, only if the BIOS behaves "well" and doesn't try to reload parts directly from the EEPROM chip (well, there is shadow RAM etc. and I am not familiar with it anyway). Alternatively, one (of us) could implement a new 16bit API to enable such compatibility mode. Of course, this topic is not yet finished in any way.
I mentioned this possibility in a mail a while ago. The problem is where should we store this old original bios where it can't be accidentally deleted? I like this idea, and use (2) for loading linux and other OSS oses, and as you say, maybe we could get M$ to help us make win 2k/9x/NT-loaders later.
- (1) implies, that we need NEW OS LOADERS FOR EVERY OS running with this
BIOS. Of course, 32bit OSS OSes (FreeBSD, Linux) are easy to handle, Win9x with its DOS loader will certainly not run if booted from 32 bit mode (i.e. will neeed option (1a) or others). Windows NT could profit from our ideas, too, but we would need strong support from MS to locate and setup the NT kernel and all its modules and configurations etc. in memory and to boot it correctly. Other OSes would profit, too, because they all have the same problems: 504MB, 8GB, many others, and of course, the other problems with the old, old API16.
3a) support for new hardware and, compared to API16, its changed role in boot-up in the API. F.e. Network Cards as (a) Input (remote boot) and (b) Output (total remote control), of course serial ports, USB, firewire ... modularized (f.e. burn-time selectable).
This is things that are new. Would be cool with a totally remote controllable machine with no display adapter/keyboard at all.
3b) Security API, support for random number devices and security devices to allow security immediately after/at boot up. Eventually strong encryption/authentication, including passphrase etc.
Yes, this is definitely something we would want.
- fast boot up, quick OS restore supported by BIOS (well, similar to
ACPI).
Fast boot up is something I would really like. Just turn on the PC, and it's there! :)
Well, the main topics from my point of view for now. A very flat point of view, but a beginning, I think.
I think you mention a lot of things to discuss here. Come on folks, let's here what you think of this!
One thing I would like is a possibility to load bios images from floppy. That would be a nice way to test the image before flashing it and leave the box unusable... Would be really nice during development.
Regards, Karl Erik
-------------------------------------------- Karl Erik Asbjornsen karl_erik.asbjornsen@capgemini.no http://www.samfundet.no/karlea A: 73540248 P: 73837153 M: 90738663