I just skimmed the PDF and it&#x27;s really a good undergraduate text. I learned off the classic Tanenbaum stuff which is probably still good as a supplementary text, though it might be suffering the Dragon Book Syndrome at this point.<p>The Linux kernel itself is really well documented. Between the docs you can pull, KernelNewbies.org, the IRC channel, and the O&#x27;Reilly text &quot;Understanding the Linux Kernel, 3rd ed&quot;, you can get up to speed re: conventions and develop a pretty good top-down view.<p>Then use strace&#x2F;ltrace excessively on everything to get a bottom-up view. Strace is a great skill to have in general to help identify bugs in live code by attaching to the PID. Way more granular than a standard GDB attach. It&#x27;s got a learning curve about on par with reading pre-C++11 template error msgs, but after a few months you&#x27;ll start to recognize patterns, just as in tmpl error msgs, to the point where you can just skim the last few hundred lines strace piped to stdout and you&#x27;ll know what sort of bug to deal with.<p>I haven&#x27;t played with FreeBSD in nearly a decade but I do remember their documentation was second to none, including the IBM Red Books. So if you want to see another approach to a POSIX implementation (obviously Tanenbaum talks about MINIX which is semi-POSIX, so yeah, read that supplementary text), going through the Handbook from an end-user perspective then the mailing lists + source will give you a real interesting view as to why certain engineering decisions were made. I.e., why ipfw was replaced, the gradual progression of standard file systems from UFS all the way up to modern day ZFS, etc. The list offers a rare view behind the curtain exploring engineering decisions that end-users aren&#x27;t often privy to, and the caliber of conversation is ridiculously high