
Over 500,000 lines of code are excerpted and explained in detail in this book featuring a horizontal format for exhaustive cross-referencing. The CD-ROM includes the Linux code (Red Hat) and software that allows the code to be easily searched for specific features.
Very similar approach to Lions. There's a second volume that covers the networking stack as well.
The Linux Core Kernel Commentary [1]
It takes only the parts of the kernel you need to understand, leaving out the drivers, device classes, and much of te ancillary pieces. For the parts it chooses, it goes through them line by line and follows the boot process, explains the concepts of a Unix and SYSV-like kernel.
The 15M lines becomes much less intractible.
[1] https://books.google.com/books/about/Linux_Core_Kernel_Comme...
As for OS theory, "Operating Systems Vade Macum" and "Operating Systems Design and Implementation" are my favorites.
There's a Xinu book which is similar, but without the accompanying source code.
Once you have the basics sorted, the real learning comes from reading some open source project. There are lot of conventions and patterns in use. They are dictated by the compiler (and other tools) being used and the project's conventions.
Personally I learnt a great deal from studying Unix kernel sources from the John Lions books. A more modern equivalent is "Linux Core Kernel Commentary".
Once you read up on different open source projects, you will see that there is no one way of using C.