This is an in depth tutorial on how to write an operating system for the raspberry pi. It assumes prior knowledge of the C language, but does not assume any prior OS Dev knowledge. The tutorial is broken up into pieces, where each piece is a differenet OS Concept. Each concept has explantions for how to do it, why it is done, and what purpose it serves.