Operating Systems: Three Easy Pieces
pages.cs.wisc.edu
pages.cs.wisc.edu
I also find it charming that the book is co-authored by a married couple.
The bulk of my effort went into a very focused two day push. 200 pages in total: Chapters 1-6, 11-16, 18-24. Postponing all the homework.
I did all this reading on an ipad, highlighting everything in different colors, and adding blank pages every now and then for personal notes.
I then built and booted xv6 under emulation and started hacking. I would then look up areas of interest from my exploration of XV6 in the Linux 1.0 sources (super easy if you use something like [bootlin]) and tried to find the corresponding concepts. Then I slowly stepped forward through the linux releases. 2.4, 2.6, etc. until I had some ideas about how those concepts manifest in the current Linux kernel.
I self-taught CS, so not surprisingly there were lots of "void" and "dots" in my knowledge space. This book connected lots of dots together.
Edit: Just noticed my professor for that class contributed some new chapters! Cool!
I'm planning to follow through it this year to brush up my OS knowledge and will also use 6.828 as a guide for labs and video lectures [1].
I feel like it needs a fourth piece, maybe 'distribution', focused on networking.
Don't let it deter you though, it's a fantastic book.
I see the changelog has a lot of fixes and improvements for v1.01, but the print version is still being sold for v1.0