If you are looking to understand linux and how the overal picture works with the kernel down to the hardware a great book to use is Computer Systems: A Programer’s Perspective. The thing I really liked about this book is it first walks you through how the processor is set up and gives a great basic idea of pipelining. Following that you learn what the standard errors are and what the operating system or kernel needs to handle. The best part of this book is learning how the operating system works with the hardware and what is required in an operating system. There are many books that teach this, but after trying a few I really prefer this one and strongly recommend it.