To understand the inner workings of device drivers there is a fine book
called "Linux Device Drivers", second edition by Alessandro Rubini and
Jonathan Corbet published by O'Reilly [ISBN 0-596-00008-1]. The authors
and the publisher have unselfishly made this book available under the GNU
Free Documentation License (version 1.1). It can be found in html at
www.oreilly.com/catalog/linuxdrive2/chapter/book .