I recommend the xv6 source and commentary. Here's the link: http://pdos.csail.mit.edu/6.828/2012/xv6.html (has a pdf you can print out along with C code listing, and with nice references). It's very similar in idea to Lyon's commentary but with a more modern C code base.