At my University (Imperial College London), our operating systems coursework was built around a toy OS called Pintos (http://en.wikipedia.org/wiki/Pintos), which is written in assembly and C and runs on x86. The project was to fill in the blanks in the implementation (more advanced scheduling, memory management, swapping etc) and I think most people thought it was one of the most fun projects we had. Being more realistic wasn't really a problem as the really arcane parts were already implemented.