RPi is great. It is cheap and based on ARM processor which should be a MUST KNOW for every embedded programmer. This project is for learning purposes: *) How to program bare metal. *) How to create own OS. *) How to use assambler. *) How to use linker scripts and make files. *) How to use assambler and ARM specific features - interrupts, thumb mode. *) How to create low level drivers. Code is fully bare metal. Everything created from zero. Because I am learning my self, the code is EXTENSIVELY COMMENTED. I hope it will help someone out. Many ideas are taken form similar projects (which are not so much commented :) ) and from this online course http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/os/ . The course is great, but it is only in assambler, and I do think that it sometimes makes your eyes bleed :) Thats why I am trying to use mostly C. Future plans (for learning): *) RPi u-boot. *) RPi Linux kernel porting. *) Port MINE drivers (created here) into Linux kernel.