Brendan wrote:You wipe the disk clean so that nothing is on it; then install the boot manager, check it boots OK, and then use the boot manager's tools to create a new partition for FreeDOS. Then you install FreeDOS in that new partition. There are no other OSs installed, so which OS is the virtual machine running on at this point?
Later you decide to create a partition for my OS (which expect GPT) and install my OS, and play around with that for a while. Then you decide to boot FreeDOS again. My OS doesn't have any virtual machine, so which OS is the virtual machine (that's used to run FreeDOS) running on at this point?
Which PC is powerful enough to run your OS and also old enough that it makes sense to install FreeDOS as an everyday OS instead of using Windows or Linux with DOSBox?
Brendan wrote:The number of legacy OSs (that don't/can't support GPT) that are able to boot from extended partitions is approximately zero; and this has nothing to do with the MBR and everything to do with the OS's boot loader, installer, etc.
And your boot manager is in exactly the position to fix that. For example, Windows NT has no trouble booting from an extended partition, but the installer will only install onto primary partitions. Your boot manager is in the perfect position to shuffle primary and extended partitions to make it work.
Brendan wrote:A lot of people don't even know it's possible to install multiple OSs, which makes it harder to get them to install/try out a different OS. For my case (an OS designed for multiple computers) it gets worse; especially if they can't dual boot (e.g. use Windows on a computer most of the time, but then boot my OS to add that computer to the cluster whenever they aren't using Windows).
A lot of people don't
care. You must have some lofty goals with your OS if you think you'll ever convince the average user to attempt to install it (instead of paying someone else to do it, or buying a new computer with your OS preinstalled, or receiving a company laptop with your OS installed by the IT department).
Brendan wrote:Erm, OK; the MBR correctly checks and parses GPT, finds the UEFI system partition, uses its own FAT support to load the remainder of it's own code and data from the UEFI system partition, displays a nice graphical boot menu and waits for the user to select an OS to boot; then (after several million lines of code have been executed that did not fit in the MBR) the boot manager chain-loads the selected OS from one of the partitions that happened to have the "legacy BIOS bootable" attribute.
Uhh, okay. Or you could have the "legacy BIOS bootable" partition be like a second stage for your MBR. You don't even have to use the "legacy BIOS bootable" attribute - I only suggested it because UEFI leaves its purpose undefined. If you prefer, you can search for the GUID for your MBR's second stage instead of using the attribute. The MBR parses GPT, finds its second stage partition, loads and jumps to it, and the second stage is responsible for the rest (finding the UEFI system partition, using its own FAT support to load the remainder of the code and data, displaying the graphical boot menu, and loading the selected OS).
Brendan wrote:The UEFI spec says that (for GPT partitioned disks being booted by UEFI and not BIOS) those ~440 bytes "must" be zero.
Which UEFI spec have you been looking at? Maybe I'm missing something, but none of the specs I've looked at seem to say anything about those 440 bytes being zero. All I see is that those bytes are "boot code" and "unused by UEFI systems".