For those looking for a bottom-up approach to learning what OSes do:<p><a href="https://www.bottomupcs.com/" rel="nofollow">https://www.bottomupcs.com/</a><p>Pretty great resource, read through it just recently, and while it had some unfinished sections, it was just what I need to answer definitively a question like "How do threads work on linux", with excruciating detail.
My personal recommendation concerning OS development is xv6: <a href="https://pdos.csail.mit.edu/6.828/2016/xv6.html" rel="nofollow">https://pdos.csail.mit.edu/6.828/2016/xv6.html</a><p>Printout of important parts of the source code: <a href="https://pdos.csail.mit.edu/6.828/2016/xv6/xv6-rev9.pdf" rel="nofollow">https://pdos.csail.mit.edu/6.828/2016/xv6/xv6-rev9.pdf</a><p>Book: <a href="https://pdos.csail.mit.edu/6.828/2016/xv6/book-rev9.pdf" rel="nofollow">https://pdos.csail.mit.edu/6.828/2016/xv6/book-rev9.pdf</a><p>(both are linked in the menu at the top of the page)<p>Review by John Regehr: <a href="http://blog.regehr.org/archives/1114" rel="nofollow">http://blog.regehr.org/archives/1114</a><p>(Github Repositories:<p>> <a href="https://github.com/mit-pdos/xv6-public" rel="nofollow">https://github.com/mit-pdos/xv6-public</a><p>> <a href="https://github.com/mit-pdos/xv6-book" rel="nofollow">https://github.com/mit-pdos/xv6-book</a>).
Try this too: <a href="http://pages.cs.wisc.edu/~remzi/OSTEP/" rel="nofollow">http://pages.cs.wisc.edu/~remzi/OSTEP/</a>.
OS - Three Easy Pieces. It has the right mix of text and relevant code to drive down the concepts.
I love Allen Downey's books. His "How to Think Like a Computer Scientist" was the first CS book I used in high school, and it has given me the strongest fundamentals I could ever ask for.<p>I'm a college student now taking OS, so hoping this will be a good complement to my education.
As a comprehensive textbook on operating systems I would recommend reading "Modern Operating Systems" by Andrew S. Tanenbaum.<p>Yes, it's almost a 1000 pages, but it's written very accessibly and understandably.
How does this book compare with "Operating System Concepts" (aka the dinosaur book) ? I've read neither, but plan on teaching myself more about OS—after I complete "Elements of Computing" and "Computer Systems: A programmer's perspective." (hopefully in the next six months)