How do I get started writing an operating system that runs on the arm architecture? I want to write a bootloader if possible and my own kernel. Can anyone help me get started?
I'd start by familiarising yourself with what is already out there - Linux is a good start. Look at the bootloaders used in the distributions on the rPi - what is used in Debian Squeeze for example, uBoot and BareBox. Another option is CFE - which is under BSD license and good during debugging/early development.
Another thing is to look at the ucLinux and ucLibC systems, along with buildroot and OpenWRT - all designed to squeeze it onto a small system.
Of course - building your own kernel - you are going to want to go far deeper - and spend time understanding MMU's, process management/multitasking, interrupts and so on. A good background in programming microcontrollers, a knowledge of assembler language and CPU/SOC architecture would be essential. With the ARM family - you'll want to know the various instruction sets supported, and which chips have features like MMU's, FPU's and similar.
Good luck - it sounds like an interesting project.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With