书籍详情
LINUX设备驱动程序(第3版影印版 英文版)
作者:(美)乔纳森·科比特,亚历山德罗·鲁比尼,格雷格·K.哈特曼
出版社:东南大学出版社
出版时间:2019-05-01
ISBN:9787564183394
定价:¥142.00
购买这本书可以去
内容简介
《LINUX设备驱动程序(第3版 影印版 英文版)》的作者均是Linux社区的领导者。Jonathan Corbet虽不是专职的内核代码贡献者,但他是备受关注的LwN.net新闻及信息网站的执行编辑。Alessandro Rubini是一名Linux代码贡献者,也是活跃的意大利Linux社区的灵魂人物。Greg Kroah-Hartman是目前内核中USB、PCI和驱动程序核心子系统的维护者。《LINUX设备驱动程序(第3版 影印版 英文版)》的这个版本已针对Linux内核的2.6.10版本彻底更新过。内核的这个版本针对常见任务完成了合理化设计及相应的简化,如即插即用、利用sysfs文件系统和用户空间交互,以及标准总线上的多设备管理等等。要阅读并理解《LINUX设备驱动程序(第3版 影印版 英文版)》,您不必首先成为内核黑客;只要您理解c语言并具有unix系统调用的一些背景知识即可。您将学到如何为字符设备、块设备和网络接口编写驱动程序。为此,《LINUX设备驱动程序(第3版 影印版 英文版)》提供了完整的示例程序,您不需要特殊的硬件即可编译和运行这些示例程序。《LINUX设备驱动程序(第3版 影印版 英文版)》还在单独的章节中讲述了PCI、UsB和tty(终端)子系统。对期望了解操作系统内部工作原理的读者来讲,《LINUX设备驱动程序(第3版 影印版 英文版)》也深入阐述了地址空间、异步事件以及I/O等方面的内容。
作者简介
暂缺《LINUX设备驱动程序(第3版影印版 英文版)》作者简介
目录
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_flee_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. PCl Drivers
The PCI Interface
A LookBackl. 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
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_flee_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. PCl Drivers
The PCI Interface
A LookBackl. 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
猜您喜欢