* Books or articles to read? Hopefully with a hands-on and practical approach.
* Target environment: VM or real hardware, and what specifically?
* Books or articles to read? Hopefully with a hands-on and practical approach.
* Target environment: VM or real hardware, and what specifically?
VMs would be the most common target, but the Raspberry Pi is also quite popular.
Another common recommendation is to find a hackable existing OS/kernel. You already have a working OS, but you can inspect and rewrite portions without having to do everything yourself upfront. http://www.minix3.org/ seems to be a popular one. Various BSDs seem to be mentioned, as well.
Back in undergrad in the early 90s, our OS course was we spent the semester building a crappy x86 OS which could boot, run a couple of processes with basic I/O and simple signals and memory management. Even though it had nearly zero concepts relevant to modern OS's, it was so much fun. It didn't set me up in any way to be a serious OS designer, but it was the essence of programming a CPU and some devices, with nothing in between us. I'd love to experience that again. But I don't know where to find resources for the lowest levels: booting into a raw CPU and connecting directly to devices (including display and keyboard). To be sure, I can find plenty of OS texts on advanced memory and process management schemes and so on, but what about the lowest level?
Unfortunately, this isn't updated to work with current RISC V specs, so you will run into a number of problems which can be frustrating...
https://www.amazon.com/Developing-32-Bit-Operating-System-Cd...