Thanks for sharing. I may try to follow in your footsteps on this. After completing all of the lab assignments what do you feel would be the next logical step if you wanted to follow a path all the way to Linux or FreeBSD? Straight to them or with another educational OS?
How did you find working on this outside of a class context? What did you do when you got stuck or had questions?
xv is, without no doubt, my favourite educational OS. It provides both kernel space and userspace. You can find many people extending various aspects of it (memory management, file system, etc) on Github.
I still tinker with the x86 version (which isn't maintained anymore): https://github.com/mit-pdos/xv6-public. Doesn't need much effort to build it on macOS.
The codebase is pretty compact that it can be understood in a few days, and also rebuilding it is very quick. Can't say the same thing about Linux, but hey as real world OS, guess some complexities are simply unavoidable.