Understanding the Linux Kernel: From I/O Ports to Process Management - Daniel P. Bovet