Guys, let me try to be fair. I see valid arguments on both the sides. Also, I wrote both a BIOS bootloader and a UEFI one from scratch, so I believe I have enough data, even if I'm
definitively not so experienced as
Octocontrabass nor
rdos.
Octocontrabass wrote:No one needs that, so it's not a problem.
Well, having a fixed range of usable mem is convenient for simple operating systems because it doesn't require relocation nor a special mapping using the virtual memory just for the kernel. But, I recognize that having such fixed ranges would give less flexibility for the hardware and for the firmware. In general, all the new standards like UEFI, ACPI, USB etc. are designed to work well with big & complex mainstream operating systems. For consumers and big companies that's fine, but for "small OS" developers like us, sometimes that makes our life more complicated. It's trade-off that has been made, as it's very hard to optimize for both the use cases. It's a bit a like small-scale vs. large-scale software: the large-scale solutions look insanely bloated and complicated when people try to use them for the small-scale. The small-scale solutions look totally insufficient to solve the "big" problems.
kzinti wrote:UEFI is great.
UEFI does a good job, I totally agree. But I hope you agree that calling it "great" is not objective: it's like for me saying that "Linux is great". Not a very objective statement, even if Linux is used everywhere. It's hard to make everyone agree on what "greatness" really is.
kzinti wrote: But it's still a huge improvement over the non-standard that is the BIOS.
I agree here. Even if it's designed with a very different
taste than mine, writing an UEFI bootloader is way simpler than writing a legacy one. Also, UEFI is really powerful. For example, the ability to make a network connection is unimaginable with the old BIOS interface. And of course, I like a lot the standardization. Being able to use the same interface on all the UEFI-compatible machines is a big deal for me.
Finally, the increased difficulty in supporting both a legacy and a UEFI bootloader does not exist in the eyes of the big companies who created UEFI, simply because they don't care (while many of us do) about the older machines. Now they could simplify their code by just dropping the support for the legacy boot. Their world-view is: write code for recent machines and forget about the old legacy stuff. OSdev people with the same mindset could greatly simplify their bootloaders by supporting just UEFI, that is a simple fact.
kzinti wrote: Even if you don't like it, it is the present and the foreseeable future.
Correct.