If you are looking to learn operating system concepts using RPi there is a new textbook by Prof. Vanderbauwhede, under ARM textbook initiative [1].<p>I think for educational purposes it will be very interesting and useful if someone develop from scratch a simple System V UNIX for RPi based on Bach's description in his seminal book on "The Design of the UNIX Operating System" [2]. The book also covers multi processors topic as supported by modern platforms such as RPi.<p>[1]<a href="https://www.arm.com/resources/education/books/operating-systems" rel="nofollow">https://www.arm.com/resources/education/books/operating-syst...</a><p>[2]<a href="https://github.com/suvratapte/Maurice-Bach-Notes/blob/master/README.md" rel="nofollow">https://github.com/suvratapte/Maurice-Bach-Notes/blob/master...</a>
Might be a bit controversial but I found writing drivers for Linux on my raspberry pi helped me understand kernels, virtual memory etc. I used Linux Device Drivers (ldd3) which is free online. The book was written for the 2.6 kernel but someone on GitHub updated the code for the latest kernels.
The offical Raspberry Pi distro of Linux is already called “Raspberry Pi OS”:<p><a href="https://www.raspberrypi.org/downloads/raspberry-pi-os/" rel="nofollow">https://www.raspberrypi.org/downloads/raspberry-pi-os/</a>
In terms of teaching fundamentals of operating system theory and systems programming, is there such a thing as an operating system kernel written in Python or some language which is meant to be easy to hack on for educational purposes? I wonder how useful that would be for a CS student, taking the complexity of C, C++, or Rust out of the picture and just running a kernel in a VM for educational purposes.
I want to learn about firmware development. I have been playing with rpi gpio and arduino i2c but have no idea how to start with firmware development. please throw at me references, i'm very fragile but i'll take it and learn from.