Writing a simple operating system from scratch (2010) [pdf]
If you're interested in this type of stuff I can personally recommend MIT's 6.828 course (Operating Systems Engineering) as an additional resource. Specifically, you'll want to take a look at xv6, a teaching OS implemented for the course (<a href="http://pdos.csail.mit.edu/6.828/2014/xv6.html" rel="nofollow">http://pdos.csail.mit.edu/6.828/2014/xv6.html</a>). The OS is small enough to print as cross referenced code listing (<a href="http://pdos.csail.mit.edu/6.828/2014/xv6/xv6-rev8.pdf" rel="nofollow">http://pdos.csail.mit.edu/6.828/2014/xv6/xv6-rev8.pdf</a>) and has a book that fully explains each piece (<a href="http://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf" rel="nofollow">http://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf</a>). You  are only 9,000 lines of code away from fully understanding basic operating systems concepts!<p>It's been a few years since I took the class but it was an absolute blast. The offering in 2011 has recorded lecture videos (<a href="http://pdos.csail.mit.edu/6.828/2011/schedule.html" rel="nofollow">http://pdos.csail.mit.edu/6.828/2011/schedule.html</a>).