Mastering Linux Kernel Development: A kernel developer's reference manual