# How does scheduling work on Redox?

This is the second installment in my ongoing series where I read through “Operating Systems: Three Easy Pieces” and attempt to map its theoretical concepts directly to the Rust codebase of Redox OS. The first post covered the fundamental abstraction: a Context (or a thread).

Chapters 5-6 cover the mechanisms: trap handlers, timer interrupts, and context switching. Although they might appear simple on the surface, the assembly-level mechanics required to safely cross the kernel/userspace boundary are a beast of their own. I am deferring that deep-dive for now, but I will circle back to trap handlers once I’ve mapped out the higher-level abstractions.

Chapters 7-10 cover CPU scheduling, which I actually just spent the entire summer implementing for Redox. You can read the full architectural breakdown in this post, so I won’t repeat myself here.

On a personal note, I recently finished reading “Slaughterhouse-Five” and have immediately jumped into “Catch-22”, with Camus’ “The Myth of Sisyphus” queued up next. You might be recognizing a pattern here. It feels deeply satisfying to finally put a vocabulary and a philosophical name to the worldview I’ve quietly held since childhood.

Next: Memory Management in Redox - Pt. 1 Page Tables
My avatar

Thanks for reading! I’m a systems software engineer and CS undergrad at JNU, currently looking for a Systems/Rust internship for Jan-April 2027 (transitioning to full-time after).

If your team is building low-level infrastructure, operating systems, or high-performance backends, I’d love to connect. You can grab my Resume or reach out via the social links in the footer!


OSTEP & Redox Series

Comments