# 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.