I was recently frustrated with the IDEs and tooling in general imposed by some of the hardware brands (the FPGA was especially kiling me!). I decided to explore would it be possible to program a microcontroller without annoying IDEs and expensive accessories, and I didn't want any pre-made development board either. So I got an AVR microcontroller, programmed it with mainline GCC only and flashed it with avrdude (another free and open source tool, easy to use) via AVR Dragon. The AVR Dragon bit I admit is a bit fancy, I just had it laying around, but even a spare Arduino can be used to program another AVR chip.
I have redone the classical exercise of writing a tiny OS kernel with time sharing, which manages a couple of user threads. My goal was to experiment specifically on RISC-V + OpenSBI. Additionally, I wanted to explore Zig a little bit, so that was the language used instead of the traditional C, but it should be straightforward how to do the same experiment in either C or Rust.
It's definitely very rough around the edges, and it's more of an experiment and an intro for people who want to go through step 0 of learning OS kernel development and computer architecture. Nevertheless, I hope it is still a fun experimental thing to play with over the weekend!
The full walkthrough and the GitHub link are available at the link posted!