Writing your own bootloader is actually an excellent exercise in getting to know the intricacies of the memory mapping on the PC architecture. After you're done you can always decide to go for a read-made one but rolling your own is definitely useful if you plan on writing your own OS.
NIH applies like always, but if you plan on taking control of the machine you might as well begin at the beginning. Rolling your own BIOS would be a step too far I think :)
I suppose it depends what you want to get out of it. There's certainly educational value in going as deep as you have the stomach for. But, for me at least, learning the specifics of how to get a processor on the PC architecture into a usable state gets tedious fast.
If I were to write a basic OS, I'd do it for one of the microcontroller kits that are available, e.g. http://www.pjrc.com/teensy/ or something similar with an ARM7 cpu. Having a cleaner CPU architecture than x86 is bound to save a lot of headache...
The biggest challenge I found was not to adapt to CPU architecture headaches but to get to the point where the OS was self hosting its development. That took considerably longer than I ever bargained for and at the time virtual machines were pretty much non-existent so djgpp was used to bridge the gap. An edit-compile-test cycle of several minutes + a hang or so quickly eats up the days.
An edit-compile-test cycle of several minutes + a hang or so quickly eats up the days.
That's why the micros are an interesting option, they're running on real hardware but can be flashed in seconds and debugged in realtime with a JTAG cable. Very convenient. But on the other hand they tend not to have much storage or network connectivity, so it depends on what you're interested in if they're the right choice. Blinking LEDs and controlling step motors is always fun, though!
NIH applies like always, but if you plan on taking control of the machine you might as well begin at the beginning. Rolling your own BIOS would be a step too far I think :)