Linux Device Drivers - Alessandro Rubini

Linux Device Drivers

Buch
570 Seiten
2001 | 2nd Revised edition
O'Reilly Media (Verlag)
978-0-596-00008-0 (ISBN)
31,95 inkl. MwSt
zur Neuauflage
  • Titel erscheint in neuer Auflage
  • Artikel merken
Zu diesem Artikel existiert eine Nachauflage
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.
This text is aimed at 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. 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.
It also shows how to maximize portability among hardware platforms; examples were tested on IA32 (PC) and IA64, PowerPC, SPARC and SPARC64, Alpha, ARM, and MIPS.

Alessandro Rubini installed Linux 0.99.14 soon after getting his degree as an electronic engineer. He then received a Ph.D. in computer science at the University of Pavia. He left the University soon afterward because he didn't want to write articles. He now works freelancer writing device drivers and, um...articles. He used to be a young hacker before his babies were born; he's now an old advocate of Free Software who developed a bias for non-PC computer platforms. Jonathan Corbet got his first look at the BSD Unix source back in 1981, when an instructor at the University of Colorado let him "fix" the paging algorithm. He has been digging around inside every system he could get his hands on ever since, working on drivers for VAX, Sun, Ardent, and x86 systems on the way. He got his first Linux system in 1993, and has never looked back. Mr. Corbet is the co-founder and executive editor of Linux Weekly News; he lives in Boulder, Colorado with his wife and two children.

Preface. Chapter 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. Chapter 2. Building and Running Modules Kernel Modules Versus Applications Compiling and Loading The Kernel Symbol Table Initialization and Shutdown Using Resources Automatic and Manual Configuration Doing It in User Space Backward Compatibility Quick Reference. Chapter 3. Char Drivers The Design of scull Major and Minor Numbers File Operations The file Structure open and release scull's Memory Usage A Brief Introduction to Race Conditions read and write Playing with the New Devices The Device Filesystem Backward Compatibility Quick Reference. Chapter 4. Debugging Techniques Debugging by Printing Debugging by Querying Debugging by Watching Debugging System Faults Debuggers and Related Tools. Chapter 5. Enhanced Char Driver Operations ioctl Blocking I/O poll and select Asynchronous Notification Seeking a Device Access Control on a Device File Backward Compatibility Quick Reference. Chapter 6. Flow of Time Time Intervals in the Kernel Knowing the Current Time Delaying Execution Task Queues Kernel Timers Backward Compatibility Quick Reference. Chapter 7. Getting Hold of Memory The Real Story of kmalloc Lookaside Caches get_free_page and Friends vmalloc and Friends Boot-Time Allocation Backward Compatibility Quick Reference Chapter 8. Hardware Management I/O Ports and I/O Memory Using I/O Ports Using Digital I/O Ports Using I/O Memory Backward Compatibility Quick Reference. Chapter 9. Interrupt Handling Overall Control of Interrupts Preparing the Parallel Port Installing an Interrupt Handler Implementing a Handler Tasklets and Bottom-Half Processing Interrupt Sharing Interrupt-Driven I/O Race Conditions Backward Compatibility 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 Linked Lists Quick Reference. Chapter 11. kmod and Advanced Modularization Loading Modules on Demand Intermodule Communication Version Control in Modules Backward Compatibility Quick Reference. Chapter 12. Loading Block Drivers Registering the Driver The Header File blk.h Handling Requests: A Simple Introduction Handling Requests: The Detailed View How Mounting and Unmounting Works The ioctl Method Removable Devices Partitionable Devices Interrupt-Driven Block Drivers Backward Compatibility Quick Reference. Chapter 13. mmap and DMA Memory Management in Linux The mmap Device Operation The kiobuf Interface Direct Memory Access and Bus Mastering Backward Compatibility Quick Reference. Chapter 14. 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 Changes in Link State The Socket Buffers MAC Address Resolution Custom ioctl Commands Statistical Information Multicasting Backward Compatibility Quick Reference. Chapter 15. Overview of Peripheral Buses The PCI Interface A Look Back: ISA PC/104 and PC/104+ Other PC Buses SBus NuBus External Buses Backward Compatibility Quick Reference. Chapter 16. Physical Layout of the Kernel Source Booting the Kernel Before Booting The init Process The kernel Directory The fs Directory The mm Directory The net directory ipc and lib include and arch Drivers. Glossary. Index

Erscheint lt. Verlag 31.7.2001
Überarbeitung Jonathan Corbet
Verlagsort Sebastopol
Sprache englisch
Maße 179 x 234 mm
Gewicht 840 g
Einbandart kartoniert
Themenwelt Informatik Betriebssysteme / Server Unix / Linux
ISBN-10 0-596-00008-1 / 0596000081
ISBN-13 978-0-596-00008-0 / 9780596000080
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
das umfassende Handbuch

von Dirk Deimeke; Daniel van Soest; Stefan Kania

Buch | Hardcover (2023)
Rheinwerk (Verlag)
69,90
das umfassende Handbuch

von Michael Kofler

Buch | Hardcover (2023)
Rheinwerk (Verlag)
49,90
Das umfassende Handbuch

von Michael Kofler; Charly Kühnast; Christoph Scherbeck

Buch | Hardcover (2024)
Rheinwerk (Verlag)
44,90