Hacker News new | ask | show | jobs
by andrewguy9 2210 days ago
I also wrote a preemptive threaded operating system for AVR atmega 128.

At the start we had threads, pipes between threads, serial io, interrupts.

After we finished the project, I ported the system to standard UNIX system calls. Now I can tinker on it, and get full access to GDB/prints/profilers. I use signals, timers and pipes to simulate interrupts, clock and serial ports respectively.

Because I’m targeting UNIX it’s pretty easy to get started and build little toy experiments. I haven’t gotten it to compile on AVR for 10 years. But I have been maintaining it as a playground for new ideas.

Some recent additions are resumable functions (like python generators), A lisp user space, and a performance regression test suite.

https://github.com/andrewguy9/kernelpanic