Hi,
TheRussianFail wrote:I'm still reasonably new to the osdev thing and i need to ask a question that has always been in the back of my mind.
Should a begginner use (U)EFI and/or x86-64 to make his OS instead of the old BIOS and x86?
For a serious attempt at creating a modern OS (e.g. that is designed to have at least have some chance of success, for some unknown/random definition of "success"); I'd recommend designing some sort of "intermediate boot state", where all boot loaders put the computer into that "intermediate boot state", and later boot code relies on that "intermediate boot state" and nothing else (and doesn't know or care what the boot loader was). The idea is to allow you to write more boot loaders (BIOS, UEFI, OpenFirmware,
"kexec", OS installed in ROM, etc) whenever you like, without having to change any other part of the OS at all.
However; for your first ever OS you're mostly learning, gaining experience and refining ideas; and it's very unlikely that your first OS will be your final OS, and much more likely that (eventually) you'll start "your OS version 2" to take advantage of what you've learned doing "version 1". With this in mind, I'd be tempted to suggest that a beginner should focus on gaining knowledge (and probably shouldn't be trying to create a serious modern OS on their very first attempt).
If your goal is "gaining knowledge faster", then it can make sense to cut corners (e.g. use something like multi-boot) instead of doing things properly.
Cheers,
Brendan