If this type of thing interests you, check out http://wiki.osdev.org. I cannot recommend this site enough for someone who is interested in writing their own toy OS.
I'm really digging the systems posts that have been cropping up on HN recently; this and the toy OS post that was floating around are both really interesting.
Funny thing is that they both do basically the same thing, except one is done all in assembly and the other in C.
I would have liked this post to actually discuss the things that a bootloader is meant to do, like switching to 32-bit protected mode and loading the next block of code from the disk.
This brings back memories of reading through Norton's programmer's guide to the PC, figuring out how all the various interrupts worked. It was always faster to write to b800:0000 than use int 10h (assuming a color display of course!).
No, none of the description in this guide applies to UEFI. The UEFI firmware loads its bootloader as a PE binary from a FAT filesystem, not a binary blob from sector 0, and the CPU is already in 32- or 64-bit mode. The interface for calling firmware routines is also completely different.