- Rust 88.1%
- Shell 10.5%
- Linker Script 1.4%
| .cargo | ||
| src | ||
| .gitignore | ||
| build_flash.sh | ||
| Cargo.lock | ||
| Cargo.toml | ||
| config.yaml | ||
| hss-payload-generator | ||
| linker.ld | ||
| README.md | ||
A RISC-V OS on the PIC64GX1000 Curiosity Kit
I grew tired of x86's huge amount of legacy code and pitfalls and bloatedness, so I wanted to look for a different architecture to explore. RISC-V was the logical choice: It's an open architecture, it's simple, and it's efficient. So I bought a PIC64GX1000 Curiosity Kit from Microchip. Why specifically this board? Because the PIC64GX1000 is a new and modern quad-core 64-bit RISC-V MPU that you can actually buy from distributors like mouser as a consumer. And since I also love developing hardware, this is pure gold. Eventually I want to design my own board around this MPU, but for now this board is the perfect (and only) way to test if my own software works on the actual hardware.
AI usage disclosure
I hate LLMs, specifically how they're used by most people, and how they're distributed and hosted by the big corporations we all know. They're incredibly frustrating to use (especially in the free tiers), often very stupid, and often do stuff you didn't ask them to do. But I still use them for productivity. Also here, in this repository. I try to keep AI generated code to a minimum, and I try to only use AI generated code that I understand or plan to understand. This is not vibecoded and will never be. If this still turns you off, I can fully understand that. But please note:
This is an experimental project for myself, that I work on in my free time
I do not guarantee any functionality or features that I will implement. My goal is to have a usable OS, but that is more of an ultimate goal, as I mainly just want to play around with this chip and see my software run on it, for the dopamine hit.
Current Features
- Cooperative Scheduler, running on hart 1
- Processes framework with IPC
- Drivers as processes
- Easy implementation of new processes
Missing / Planned Features
- Multithreading
- Preemptive Scheduler
- Display output via HDMI
- SD/MMC driver