Understanding the LINUX Kernel: From I/O Ports to Process Management