Linux Device Drivers (3rd Edition) [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Linux Device Drivers (3rd Edition) [Electronic resources] - نسخه متنی

Jonathan Corbet, Greg Kroah-Hartman, Alessandro Rubini

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید


















  • Sitemap

    Linux Device Drivers, 3rd Edition

    Table of Contents

    Preface

    Jon's Introduction

    Alessandro's Introduction

    Greg's Introduction

    Audience for This Book

    Organization of the Material

    Background Information

    Online Version and License

    Conventions Used in This Book

    Using Code Examples

    We'd Like to Hear from You

    Safari Enabled

    Acknowledgments

    Chapter 1. An Introduction to Device Drivers

    1.1. The Role of the Device Driver

    1.2. Splitting the Kernel

    1.3. Classes of Devices and Modules

    1.4. Security Issues

    1.5. Version Numbering

    1.6. License Terms

    1.7. Joining the Kernel Development Community

    1.8. Overview of the Book

    Chapter 2. Building and Running Modules

    2.1. Setting Up Your Test System

    2.2. The Hello World Module

    2.3. Kernel Modules Versus Applications

    2.4. Compiling and Loading

    2.5. The Kernel Symbol Table

    2.6. Preliminaries

    2.7. Initialization and Shutdown

    2.8. Module Parameters

    2.8. Module Parameters

    2.9. Doing It in User Space

    2.10. Quick Reference

    Chapter 3. Char Drivers

    3.1. The Design of scull

    3.2. Major and Minor Numbers

    3.3. Some Important Data Structures

    3.4. Char Device Registration

    3.5. open and release

    3.6. scull's Memory Usage

    3.7. read and write

    3.8. Playing with the New Devices

    3.9. Quick Reference

    Chapter 4. Debugging Techniques

    4.1. Debugging Support in the Kernel

    4.2. Debugging by Printing

    4.3. Debugging by Querying

    4.4. Debugging by Watching

    4.5. Debugging System Faults

    4.6. Debuggers and Related Tools

    Chapter 5. Concurrency and Race Conditions

    5.1. Pitfalls in scull

    5.2. Concurrency and Its Management

    5.3. Semaphores and Mutexes

    5.4. Completions

    5.5. Spinlocks

    5.6. Locking Traps

    5.7. Alternatives to Locking

    5.8. Quick Reference

    Chapter 6. Advanced Char Driver Operations

    6.1. ioctl

    6.2. Blocking I/O

    6.3. poll and select

    6.4. Asynchronous Notification

    6.5. Seeking a Device

    6.6. Access Control on a Device File

    6.7. Quick Reference

    Chapter 7. Time, Delays, and Deferred Work

    7.1. Measuring Time Lapses

    7.2. Knowing the Current Time

    7.3. Delaying Execution

    7.4. Kernel Timers

    7.5. Tasklets

    7.6. Workqueues

    7.7. Quick Reference

    Chapter 8. Allocating Memory

    8.1. The Real Story of kmalloc

    8.2. Lookaside Caches

    8.3. get_free_page and Friends

    8.4. vmalloc and Friends

    8.5. Per-CPU Variables

    8.6. Obtaining Large Buffers

    8.7. Quick Reference

    Chapter 9. Communicating with Hardware

    9.1. I/O Ports and I/O Memory

    9.2. Using I/O Ports

    9.3. An I/O Port Example

    9.4. Using I/O Memory

    9.5. Quick Reference

    Chapter 10. Interrupt Handling

    10.1. Preparing the Parallel Port

    10.2. Installing an Interrupt Handler

    10.3. Implementing a Handler

    10.4. Top and Bottom Halves

    10.5. Interrupt Sharing

    10.6. Interrupt-Driven I/O

    10.7. Quick Reference

    Chapter 11. Data Types in the Kernel

    11.1. Use of Standard C Types

    11.2. Assigning an Explicit Size to Data Items

    11.3. Interface-Specific Types

    11.4. Other Portability Issues

    11.5. Linked Lists

    11.6. Quick Reference

    Chapter 12. PCI Drivers

    12.1. The PCI Interface

    12.2. A Look Back: ISA

    12.3. PC/104 and PC/104+

    12.4. Other PC Buses

    12.5. SBus

    12.6. NuBus

    12.7. External Buses

    12.8. Quick Reference

    Chapter 13. USB Drivers

    13.1. USB Device Basics

    13.2. USB and Sysfs

    13.3. USB Urbs

    13.4. Writing a USB Driver

    13.5. USB Transfers Without Urbs

    13.6. Quick Reference

    Chapter 14. The Linux Device Model

    14.1. Kobjects, Ksets, and Subsystems

    14.2. Low-Level Sysfs Operations

    14.3. Hotplug Event Generation

    14.4. Buses, Devices, and Drivers

    14.5. Classes

    14.6. Putting It All Together

    14.7. Hotplug

    14.8. Dealing with Firmware

    14.9. Quick Reference

    Chapter 15. Memory Mapping and DMA

    15.1. Memory Management in Linux

    15.2. The mmap Device Operation

    15.3. Performing Direct I/O

    15.4. Direct Memory Access

    15.5. Quick Reference

    Chapter 16. Block Drivers

    16.1. Registration

    16.2. The Block Device Operations

    16.3. Request Processing

    16.4. Some Other Details

    16.5. Quick Reference

    Chapter 17. Network Drivers

    17.1. How snull Is Designed

    17.2. Connecting to the Kernel

    17.3. The net_device Structure in Detail

    17.4. Opening and Closing

    17.5. Packet Transmission

    17.6. Packet Reception

    17.7. The Interrupt Handler

    17.8. Receive Interrupt Mitigation

    17.9. Changes in Link State

    17.10. The Socket Buffers

    17.11. MAC Address Resolution

    17.12. Custom ioctl Commands

    17.13. Statistical Information

    17.14. Multicast

    17.15. A Few Other Details

    17.16. Quick Reference

    Chapter 18. TTY Drivers

    18.1. A Small TTY Driver

    18.2. tty_driver Function Pointers

    18.3. TTY Line Settings

    18.4. ioctls

    18.5. proc and sysfs Handling of TTY Devices

    18.6. The tty_driver Structure in Detail

    18.7. The tty_operations Structure in Detail

    18.8. The tty_struct Structure in Detail

    18.9. Quick Reference

    Chapter 19. Bibliography

    19.1. Books

    19.2. Web Sites

    Index

    index_SYMBOL

    index_A

    index_B

    index_C

    index_D

    index_E

    index_F

    index_G

    index_H

    index_I

    index_J

    index_K

    index_L

    index_M

    index_N

    index_O

    index_P

    index_Q

    index_R

    index_S

    index_T

    index_U

    index_V

    index_W

    index_X

    index_Z




  • / 202