"Oh man, that's a pretty awesome job making the Phoenix BIOS. What are you guys doing about BIOS replacements like EFI and such?"
-Apreche
**Edit - I didn't notice there is a Technology section...oops, haha. I'm guessing this discussion would be better suited for there, if someone can move it.**
I thought I'd bring this discussion outside of the introduction section. First I'd like to disclose that I'm not working in the EFI (codename Tiano) section of Phoenix, and my knowledge regarding it is fairly limited to talking with the developers that do.
What one has to understood is the role of BIOS in computer systems. From my understanding of BIOS after working here for a few months is that a system can be interpreted as made up of three layers: hardware, software, and firmware (BIOS/EFI). The role of BIOS is to effectively be an initialization layer for the software (such as on OS) to use the hardware. This includes things like memory, CPU control, and in general the entire chipset of the platform. After all this is done, the BIOS will hand-off control to the operating system.
Now for EFI, it essentially is the same thing. The big deal is that Intel is pushing it, not because it's better, but because they make it. I said a bit more there than I probably meant. EFI has it's advantages, as well. One of the main advantages is that it is extremely modular, with generic modules. Updates can be added quickly and not interfere with other parts of the firmware, this is done to an extent with legacy BIOS, I believe legacy as much more specific modules. The bigger advantage is that it will be a standard. A standard interface does exist, but not to a huge extent and not well documented either. I've often had to include very specific tricks in code to get pieces of hardware to work with an OS (most of times a linux distro, but also with Windows).
One other point is that, to my knowledge, EFI and UEFI solutions both still require at least some firmware to do a few platform specific initialization before they can do their thing.
The biggest resistance to Tiano is that BIOS does everything Tiano does already. In addition, the Tiano code base is much larger due to it having to 'just work' with both new and old hardware. For most systems this isn't a problem. But, when you move to the embedded side of the market Tiano is bulky and excessive, which embedded people hate (I'm an embedded guy, it's what I studied at the university). It's also slightly slower as a result, and with the push for the all-wanted instant-on approach to computers. It'll take more time and updates for them to figure it out, in my opinion.
Will legacy BIOS be replaced with EFI? For the most part yes, BIOS vendors will provide Tiano capable support for EVERY new Intel platform because, well, we don't have much a choice if we want Intel on our side. And with Intel advertising it more and more to OEMs the demand will most likely go up. But, legacy BIOS will also continue to exist for the rest of the market as it always has, most likely as a separate option.
Like I said, my knowledge is very limited. I would love to work on it myself, but they're leaving it to the more senior developers.
Comments
What do you think about the open source BIOS projects like Linux BIOS, Open BIOS, etc.?
As for a show, I don't know about that. I don't want to come off as modest if that's how I'm coming off, I really am pretty new to all of this still (and am certainly still learning a ton). So, I'm not sure how much exactly I can say or how many question I could actually answer.
Anyways before I run to wikipi-tan for more reading on the subject, I'd like to encourage Scott that a Monday show like this would be great and that geeknights interviews have a habit of being kick-ass.
Anyways I might do the following tutorial when I free up some time: QEMU Build Tutorial
I certainly don't mind answering questions here on the forum. If there are things I don't know, they will be a benefit for me to learn, and I'll get back to you as soon as I can.
C-o-r-e: Very nice on getting you're first bootable x86 program running. I was excited when I first got mine working. Is there any kind of project you have in mind for the future or are you going for a learning experience type of thing?
I guess it could classify in to a learning exercise but I wouldn't call it that. There is definitely some type of gratification I get by digging lower down in to a computer, its almost as if my power level gets that much closer to 9000 every time I get something more fundamental and or more complicated to work. I suppose you could say that its true that I am gaining a type of power but realistically its all for fun ^^
Currently I'm working on a larger project of my own witch I should probably pay more attention to. However that is a topic for an other thread on an other day.