Notes of Linux Device Driver, 3rd edition.