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:
Le informazioni nella sezione "Riassunto" possono far riferimento a edizioni diverse di questo titolo.
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 currently the co-founder and executive editor of Linux Weekly News (http://LWN.net/); he lives in Boulder, Colorado with his wife and two children.
Alessandro installed Linux 0.99.14 soon after getting his degree as electronic engineer. He then received a Ph.D. in computer science at the University of Pavia despite his aversion toward modern technology. He left the University after getting his Ph.D. because he didn't want to write articles. He now works as a free lancer 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.
Greg Kroah-Hartman has been writing Linux kernel drivers since 1999, and is currently the maintainer for the USB, PCI, I2C, driver core, and sysfs kernel subsystems. He is also the maintainer of the udev and hotplug userspace programs, as well as being a Gentoo kernel maintainer, ensuring that his email inbox is never empty. He is a contributing editor to Linux Journal Magazine, and works for IBM's Linux Technology Center, doing various Linux kernel related tasks.
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.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;
Le informazioni nella sezione "Su questo libro" possono far riferimento a edizioni diverse di questo titolo.
GRATIS per la spedizione in U.S.A.
Destinazione, tempi e costiEUR 7,06 per la spedizione in U.S.A.
Destinazione, tempi e costiDa: Zoom Books East, Glendale Heights, IL, U.S.A.
Condizione: good. Book is in good condition and may include underlining highlighting and minimal wear. The book can also include "From the library of" labels. May not contain miscellaneous items toys, dvds, etc. . We offer 100% money back guarantee and 24 7 customer service. Codice articolo ZEV.0596005903.G
Quantità: 1 disponibili
Da: ThriftBooks-Atlanta, AUSTELL, GA, U.S.A.
Paperback. Condizione: Fair. No Jacket. Readable copy. Pages may have considerable notes/highlighting. ~ ThriftBooks: Read More, Spend Less 2.07. Codice articolo G0596005903I5N00
Quantità: 1 disponibili
Da: ThriftBooks-Atlanta, AUSTELL, GA, U.S.A.
Paperback. Condizione: Good. No Jacket. Pages can have notes/highlighting. Spine may show signs of wear. ~ ThriftBooks: Read More, Spend Less 2.07. Codice articolo G0596005903I3N00
Quantità: 1 disponibili
Da: ThriftBooks-Dallas, Dallas, TX, U.S.A.
Paperback. Condizione: Very Good. No Jacket. May have limited writing in cover pages. Pages are unmarked. ~ ThriftBooks: Read More, Spend Less 2.07. Codice articolo G0596005903I4N00
Quantità: 1 disponibili
Da: clickgoodwillbooks, Indianapolis, IN, U.S.A.
Condizione: Acceptable. This is a paper back book: Used - Acceptable: All pages and the cover are intact, but shrink wrap, dust covers, or boxed set case may be missing. Pages may include limited notes, highlighting, or minor water damage but the text is readable. Item may be missing bundled media. Codice articolo 3O6JUN000ZLI_ns
Quantità: 1 disponibili
Da: Goodwill Books, Hillsboro, OR, U.S.A.
Condizione: Acceptable. Fairly worn, but readable and intact. If applicable: Dust jacket, disc or access code may not be included. Codice articolo 3IIK0I005DWK_ns
Quantità: 2 disponibili
Da: Seattle Goodwill, Seattle, WA, U.S.A.
Condizione: Good. May have some shelf-wear due to normal use. Your purchase funds free job training and education in the greater Seattle area. Thank you for supporting Goodwills nonprofit mission! Codice articolo 0KVOTW0045CC_ns
Quantità: 1 disponibili
Da: St Vincent de Paul of Lane County, Eugene, OR, U.S.A.
Condizione: Acceptable. paperback 100% of proceeds go to charity! Acceptable reading copy with obvious signs of use, wear, and/or cosmetic issues. Item is complete and remains readable despite notable condition issues. Codice articolo K-07-4738
Quantità: 1 disponibili
Da: HPB-Red, Dallas, TX, U.S.A.
Paperback. Condizione: Good. Connecting readers with great books since 1972! Used textbooks may not include companion materials such as access codes, etc. May have some wear or writing/highlighting. We ship orders daily and Customer Service is our top priority! Codice articolo S_406912924
Quantità: 1 disponibili
Da: Better World Books: West, Reno, NV, U.S.A.
Condizione: Good. 3 Edition. Used book that is in clean, average condition without any missing pages. Codice articolo 6140394-6
Quantità: 1 disponibili