I had a great time following this a couple years ago. It inspired me to write a tiny micro-kernel with pre-emtive multitasking. It was probably a bug-ridden mess, but it was incredibly satisfying having a handful of threads printing 'Hello from thread #1', 'Hello from thread #2' etc.