bk99.de entertain the web since 1997

Operating system development on the Raspberry Pi

Summary

Sergey Matyukevich leads in lessons that build on each other from ARM64 boot code to interrupts, scheduler, user space and virtual memory. The project targets the Raspberry Pi 3 and ARM64. The lessons contain source code and explanations.

Ideas

  • Early assembly code sets up the stack and execution state.
  • UART provides simple diagnostic output without a complete driver environment.
  • Timer interrupts enable preemptive scheduling.
  • Page tables separate virtual and physical addresses.

Insights

  • Bare-metal work reveals operating system assumptions that are otherwise hidden.
  • A serial console remains valuable while higher layers are still missing.
  • Small steps that build on each other make hardware diagnosis easier.

Facts

  • The example kernel is started without Linux.

Recommendations

  • Use a serial console for early boot messages.
  • Keep known-good SD card images under version control for reproducible tests.

References

Read the original article

Search the Web Archive