My question is more related to Unix/Linux development rather than administration itself.
I think its directed for Unix/Linux low level system programmers rather than administrators. It will help me start kernel development and/or understanding Linux system development
What information specifically about the hardware do I need to start learning about how Linux interacts with hardware peripherals and modules. For example, the bus architecture and how to communicate with controllers.
Also, I'd like to mention that in most environments now the virtual machine is what Linux runs on. So, what is seen by the OS below it that's what I meant.
I need some references, please, or how to start learning about that.
I know basic x86 instructions but my questions is more about the memory and buses controllers around the processor itself; the programmer model I mean in the modern parallel programming environment.