Linux Device Drivers - Alessandro Rubini , Jonathan Corbet - 2ème... - Librairie Eyrolles

Déjà client ? Identifiez-vous

Mot de passe oublié ?

Nouveau client ?

CRÉER VOTRE COMPTE
Linux Device Drivers
Ajouter à une liste

Librairie Eyrolles - Paris 5e
Indisponible

Linux Device Drivers

Linux Device Drivers

Alessandro Rubini, Jonathan Corbet

564 pages, parution le 01/07/2001 (2eme édition)

Résumé

This practical guide is for anyone who wants to support computer peripherals under the Linux operating system. It shows step-by-step how to write a driver for character devices, block devices, and network interfaces, illustrating with examples you can compile and run. The second edition covers Kernel 2.4 and adds discussions of symmetric multiprocessing (SMP), Universal Service Bus (USB), and some new platforms.

This book is for anyone who wants to support computer peripherals under the Linux operating system or who wants to develop new hardware and run it under Linux. As the fastest-growing segment of the Unix market, Linux is winning over enthusiastic adherents in many application areas, and is being viewed more and more as a good platform for embedded systems. Linux Device Drivers shows how to write drivers for a wide range of devices, revealing information heretofore available only by word-of-mouth or in cryptic source code comments.

You don't have to be a kernel hacker to understand and enjoy this book; all you need is an understanding of C and some background in Unix system calls. Drivers for character devices, block devices, and network interfaces are all described in step-by-step form and are illustrated with full-featured examples that show driver design issues and can be executed without special hardware. Major changes in the second edition include support for symmetric multiprocessing (SMP), Universal Service Bus (USB), and some new platforms.

For those who are curious about how an operating system does its job, this book provides insights into address spaces, asynchronous events, and I/O.

Portability is a major concern in the text. The book is centered on kernel version 2.4, but includes information for kernels back to 2.0 where feasible. You'll also learn how to maximize portability among hardware platforms; examples were tested on IA32 (PC) and IA64, PowerPC, SPARC and SPARC64, Alpha, ARM, and MIPS.

Contents include:

  • Building a driver and loading modules
  • Complete character, block, and network drivers
  • Debugging a driver
  • Timing
  • Handling symmetric multiprocessing (SMP) systems
  • Memory management and DMA
  • Interrupts
  • Portability issues
  • Peripheral Component Interconnect (PCI)

Contents

  • Preface
  • Chapter 1. An Introduction to the Linux Kernel
    • The Role of the Driver Writer
    • Splitting the Kernel
    • Classes of Devices and Modules
    • Security Issues
    • Version Numbering
    • License Terms
    • Overview of the Book
  • Chapter 2. Building and Running Modules
    • Modules Versus Applications
    • Compiling and Loading
    • The Kernel Symbol Table
    • Initialization and Shutdown
    • Using Resources
    • Automatic and Manual Configuration
    • Doing It in User Space
    • Quick Reference
  • Chapter 3. Char Drivers
    • The Design of scull
    • Major and Minor Numbers
    • File Operations
    • The file Structure
    • Open and Close
    • Scull's Memory Usage
    • Read and Write
    • Playing with the New Devices
    • Quick Reference
  • Chapter 4. Debugging Techniques
    • Debugging by Printing
    • Debugging by Querying
    • Debugging by Watching
    • Debugging System Faults
    • Using a Debugger
  • Chapter 5. Enhanced Char Driver Operations
    • ioctl
    • Blocking I/O
    • Select
    • Asynchronous Notification
    • Seeking a Device
    • Access Control on a Device File
    • Quick Reference
  • Chapter 6. Flow of Time
    • Time Intervals in the Kernel
    • Knowing the Current Time
    • Delaying Execution
    • Task Queues
    • Kernel Timers
    • Quick Reference
  • Chapter 7. Getting Hold of Memory
    • The Real Story of kmalloc
    • get_free_page and Friends
    • vmalloc and Friends
    • Playing Dirty
    • Quick Reference
  • Chapter 8. Hardware Management
    • Using I/O Ports
    • Using the Parallel Port
    • Accessing Memory on Device Boards
    • Accessing the Text-Mode Video Buffer
    • Quick Reference
  • Chapter 9. Interrupt Handling
    • Preparing the Parallel Port
    • Installing an Interrupt Handler
    • Implementing a Handler
    • Bottom Halves
    • Interrupt Sharing
    • Interrupt-Driven I/O
    • Race Conditions
    • Version Dependencies of IRQ Handling
    • Quick Reference
  • Chapter 10. Judicious Use of Data Types
    • Use of Standard C Types
    • Assigning an Explicit Size to Data Items
    • Interface-Specific Types
    • Other Portability Issues
    • Quick Reference
  • Chapter 11. Kerneld and Advanced Modularization
    • Loading Modules on Demand
    • Version Control in Modules
    • Persistent Storage Across Unload/Load
    • Quick Reference
  • Chapter 12. Loading Block Drivers
    • Registering the Driver
    • The Header File blk.h
    • Handling Requests
    • How Mounting Works
    • The ioctl Method
    • Removable Devices
    • Partitionable Devices
    • Interrupt-Driven Block Drivers
    • Quick Reference
  • Chapter 13. Mmap and DMA
    • Memory Management in Linux
    • The mmap Device Operation
    • Direct Memory Access
    • Quick Reference
  • Chapter 14. Network Drivers
    • How snull Is Designed
    • Connecting to the Kernel
    • The device Structure in Detail
    • Opening and Closing
    • Packet Transmission
    • Packet Reception
    • Interrupt-Driven Operation
    • The Socket Buffers
    • Address Resolution
    • Load-Time Configuration
    • Run-Time Configuration
    • Custom ioctl Commands
    • Statistical Information
    • Multicasting
    • Quick Reference
  • Chapter 15. Overview of Peripheral Buses
    • The PCI Interface
    • A Look Back: ISA
    • Other PC Buses
    • Sbus
    • Quick Reference
  • Chapter 16. Physical Layout of the Kernel Source
    • Booting the Kernel
    • Before Booting
    • The Init Process
    • The kernel Directory
    • The mm Directory
    • The fs Directory
    • Networking
    • IPC and lib Functions
    • Drivers
    • Architecture Dependencies
  • Chapter 17. Recent Developments
    • Modularization
    • File Operations
    • Accessing User Space
    • Task Queues
    • Interrupt Management
    • Bit Operations
    • Conversion Functions
    • vremap
    • Virtual Memory
    • Handling Kernel-Space Faults
    • Other Changes
  • Index

L'auteur - Alessandro Rubini

Alessandro Rubini est un « gourou » de la communauté linuxienne et a largement contribué à l'évolution du code. Il a beaucoup écrit pour le Linux Journal.

L'auteur - Jonathan Corbet

Depuis 1994, il exploite Linux qu'il a déployé sur nombre de réseaux d'entreprise et adapté au temps réel. M. Corbet est co-fondateur et rédacteur en chef de LWN.net (Linux Weekly News), célèbre site d'informations pratiques sur Linux.

Caractéristiques techniques

  PAPIER
Éditeur(s) O'Reilly
Auteur(s) Alessandro Rubini, Jonathan Corbet
Parution 01/07/2001
Édition  2eme édition
Nb. de pages 564
Format 17,8 x 23,4
Couverture Broché
Poids 800g
Intérieur Noir et Blanc
EAN13 9780596000080

Avantages Eyrolles.com

Livraison à partir de 0,01 en France métropolitaine
Paiement en ligne SÉCURISÉ
Livraison dans le monde
Retour sous 15 jours
+ d'un million et demi de livres disponibles
satisfait ou remboursé
Satisfait ou remboursé
Paiement sécurisé
modes de paiement
Paiement à l'expédition
partout dans le monde
Livraison partout dans le monde
Service clients sav@commande.eyrolles.com
librairie française
Librairie française depuis 1925
Recevez nos newsletters
Vous serez régulièrement informé(e) de toutes nos actualités.
Inscription