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?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
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.