We are using Xv6 in my OS class this semester and have had some pretty fun and interesting assignments. We started off with learning how system calls and traps work by adding our own system calls to the existing system. The next assignment was to implement a signal system with support for user signal handlers. Our current assignment is to implement a user level thread library followed by kernel level threads in a few weeks. Working with Xv6 has been a real pleasure.