Writing a UNIX device driver - Egan, J.