Home   FAQs   New Arrivals   Specials   Pricing & Shipping   Location   Corporate Services   Why Choose Bookware?  
 Search:   
Call our store: 9922 6266 (from within Sydney) or 1800 734 567 (from outside Sydney)
 View Cart   Check Out   
 
Browse by Subject
 Nepean TAFE 2012
I.T
 .NET
 Windows 7
 Adobe CS5
 Cisco
 CCNA 2012
 CCNP 2012
 Java
 VB
 ASP
 Web Design
 E-Commerce
 Project Management
 ITIL
 Macintosh
 Linux
 Windows Server 2008
 SAP
 Sharepoint 2010
Certification
 MCITP
 MCTS
Economics and Business
 Accounting
 Business Information Systems
 Economics
 Finance
 Management
 Marketing
 TAX
 Human Resources
Academic
 Law
 Nursing
 Medical

Linux Device Drivers, 3rd Edition

by: Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman

Notify me when in stock

On-line Price: $52.95 (includes GST)

Paperback package 636

20%Off Retail Price

You save: $13.00

Please call us to check availability

Retail Price: $65.95

Publisher: O'REILLY,28.2.2005

Category: LINUX Level:

ISBN: 0596005903
ISBN13: 9780596005900

Add to Shopping Cart

Device drivers literally drive everything you're interested in--disks, monitors, keyboards, modems--everything outside the computer chip and memory. And writing device drivers is one of the few areas of programming for the Linux operating system that calls for unique, Linux-specific knowledge. For years now, programmers have relied on the classic Linux Device Drivers from O'Reilly to master this critical subject. Now in its third edition, this bestselling guide provides all the information you'll need to write drivers for a wide range of devices.

Over the years the book has helped countless programmers learn:

how to support computer peripherals under the Linux operating system

how to develop and write software for new hardware under Linux

the basics of Linux operation even if they are not expecting to write a driver

The new edition of Linux Device Drivers is better than ever. The book covers all the significant changes to Version 2.6 of the Linux kernel, which simplifies many activities, and contains subtle new features that can make a driver both more efficient and more flexible. Readers will find new chapters on important types of drivers not covered previously, such as consoles, USB drivers, and more.

Best of all, you don't have to be a kernel hacker to understand and enjoy this book. All you need is an understanding of the C programming language and some background in Unix system calls. And for maximum ease-of-use, the book uses full-featured examples that you can compile and run without special hardware.

Today Linux holds fast as the most rapidly growing segment of the computer market and continues to win over enthusiastic adherents in many application areas. With this increasing support, Linux is now absolutely mainstream, and viewed as a solid platform for embedded systems. If you're writing device drivers, you'll want this book. In fact, you'll wonder how drivers are ever written without it.

Table of Contents

Preface
1. An Introduction to Device Drivers


      The Role of the Device Driver


      Splitting the Kernel


      Classes of Devices and Modules


      Security Issues


      Version Numbering


      License Terms


      Joining the Kernel Development Community


      Overview of the Book
2. Building and Running Modules


      Setting Up Your Test System


      The Hello World Module


      Kernel Modules Versus Applications


      Compiling and Loading


      The Kernel Symbol Table


      Preliminaries


      Initialization and Shutdown


      Module Parameters


      Doing It in User Space


      Quick Reference
3. Char Drivers


      The Design of scull


      Major and Minor Numbers


      Some Important Data Structures


      Char Device Registration


      open and release


      scull's Memory Usage


      read and write


      Playing with the New Devices


      Quick Reference
4. Debugging Techniques


      Debugging Support in the Kernel


      Debugging by Printing


      Debugging by Querying


      Debugging by Watching


      Debugging System Faults


      Debuggers and Related Tools
5. Concurrency and Race Conditions


      Pitfalls in scull


      Concurrency and Its Management


      Semaphores and Mutexes


      Completions


      Spinlocks


      Locking Traps


      Alternatives to Locking


      Quick Reference
6. Advanced Char Driver Operations


      ioctl


      Blocking I/O


      poll and select


      Asynchronous Notification


      Seeking a Device


      Access Control on a Device File


      Quick Reference
7. Time, Delays, and Deferred Work


      Measuring Time Lapses


      Knowing the Current Time


      Delaying Execution


      Kernel Timers


      Tasklets


      Workqueues


      Quick Reference
8. Allocating Memory


      The Real Story of kmalloc


      Lookaside Caches


      get--free--page and Friends


      vmalloc and Friends


      Per-CPU Variables


      Obtaining Large Buffers


      Quick Reference
9. Communicating with Hardware


      I/O Ports and I/O Memory


      Using I/O Ports


      An I/O Port Example


      Using I/O Memory


      Quick Reference
10. Interrupt Handling


      Preparing the Parallel Port


      Installing an Interrupt Handler


      Implementing a Handler


      Top and Bottom Halves


      Interrupt Sharing


      Interrupt-Driven I/O


      Quick Reference
11. Data Types in the Kernel


      Use of Standard C Types


      Assigning an Explicit Size to Data Items


      Interface-Specific Types


      Other Portability Issues


      Linked Lists


      Quick Reference
12. PCI Drivers


      The PCI Interface


      A Look Back: ISA


      PC/104 and PC/104+


      Other PC Buses


      SBus


      NuBus


      External Buses


      Quick Reference
13. USB Drivers


      USB Device Basics


      USB and Sysfs


      USB Urbs


      Writing a USB Driver


      USB Transfers Without Urbs


      Quick Reference
14. The Linux Device Model


      Kobjects, Ksets, and Subsystems


      Low-Level Sysfs Operations


      Hotplug Event Generation


      Buses, Devices, and Drivers


      Classes


      Putting It All Together


      Hotplug


      Dealing with Firmware


      Quick Reference
15. Memory Mapping and DMA


      Memory Management in Linux


      The mmap Device Operation


      Performing Direct I/O


      Direct Memory Access


      Quick Reference
16. Block Drivers


      Registration


      The Block Device Operations


      Request Processing


      Some Other Details


      Quick Reference
17. Network Drivers


      How snull Is Designed


      Connecting to the Kernel


      The net--device Structure in Detail


      Opening and Closing


      Packet Transmission


      Packet Reception


      The Interrupt Handler


      Receive Interrupt Mitigation


      Changes in Link State


      The Socket Buffers


      MAC Address Resolution


      Custom ioctl Commands


      Statistical Information


      Multicast


      A Few Other Details


      Quick Reference
18. TTY Drivers


      A Small TTY Driver


      tty--driver Function Pointers


      TTY Line Settings


      ioctls


      proc and sysfs Handling of TTY Devices


      The tty--driver Structure in Detail


      The tty--operations Structure in Detail


      The tty--struct Structure in Detail


      Quick Reference
Bibliography
Index