Jonathan Corbet Alessandro Rubini Greg Kroah-Hartman - Linux Device Drivers, 3rd Edition