Owen wrote:I fully expect that after everyone gets used to UEFI most of the old hardware (everything except CMOS/RTC?) will be removed from the chipset, and a PC BIOS layer won't be possible (without expensive full system emulation/virtualisation) because the hardware needed for compatibility doesn't exist anymore. I'd estimate that it won't be too long before we start seeing "legacy free UEFI" systems, starting from embedded systems and thin clients (maybe in as little as 2 years), and then moving up to mobile devices. After maybe 5 years "legacy free UEFI" might leap over to high-end servers, and eventually find it's way to normal desktop/server systems after that.
The tricky thing for OS developers is not just supporting UEFI, but also making sure their code doesn't rely on the existence of legacy hardware. For example, in the past (during boot, for starting other CPUs) I've assumed there's a PIT and assumed the PIT's IRQ is routed via. the PIC chips (until after the OS sets up IO APIC) - that's 2 assumptions that I wouldn't be comfortable with for UEFI for a start.
Aren't things becoming too dificult for a single person to achieve a practical development of a product?
If everything keeps being as standarized as regular PCs, it might not be too bad, but if PC hardware and specification become as closed and non-regular as in the case of mobile devices and their endless variations right from the base machine, then it would become a big problem for many people, maybe most of them. The ideal thing would be to standarize the whole PC instead of complicating it further. It's enough with all of the different hardware vendors and hundreds of different drivers.
In such a case, I think that completely emulating a classical PC would be very useful. First off, it could serve as the basis of a virtual PC platform, with absolutely all of its "hardware" normalized and publicly known, and could serve to simplify and turn any current machine, including tablets, into an easily programmable PC.
That can prove as useful and rewarding, as well as relevant, as creating yet another OS. On impossibility of creating hardware, let hardware vendors create it as they like, but attempt to make it look like a standarized machine (on top of another OS?) to get something actually done in real life and to mainly work with.
Of course that's just an option, but maybe it would be easier to allow a single person progress in one way instead of pretending to master so many emerging and highly complex new platform standards so easily every couple of years without even having mastered the previous one, and then suddenly having to potentially start over.