A toy Raspberry Pi 3B kernel for learning.
I wanted to learn the basics of operating system development on something besides x86.
- UART
- Exception level switching
- Basic interrupt handling
- Generic timer
- MMU and paging
- Mailboxes
- FAT16 filesystem and disk driver
- processes and process scheduling
- system calls
- ELF and user space programs
- much more...
# setup cross compiler
make toolchain
# build
make build
# emulate via Qemu
make run
- https://wiki.osdev.org/ARM_Overview
- https://wiki.osdev.org/Raspberry_Pi_Bare_Bones
- https://en.wikipedia.org/wiki/Calling_convention#ARM_(A64)
- Building an Operating System for the Raspberry Pi
- Arm Cortex-A53 MPCore Processor Technical Reference Manual
- ARM Cortex-A Series Programmers Guide for ARMv8-A Instruction Set
- BCM2837 ARM Peripherals