FreeBSD Device Drivers
No Starch Press,US (Verlag)
978-1-59327-204-3 (ISBN)
The author of Designing BSD Rootkits (No Starch Press), Joseph Kong works on information security, operating system theory, reverse code engineering, and vulnerability assessment. Kong is a former system administrator for the City of Toronto.
Dedication; About the Technical Reviewer; Foreword; Acknowledgments; Introduction; Who Is This Book For?; Prerequisites; Contents at a Glance; Welcome Aboard!; Chapter 1: Building and Running Modules; 1.1 Types of Device Drivers; 1.2 Loadable Kernel Modules; 1.3 Hello, world!; 1.4 Compiling and Loading; 1.5 Character Drivers; 1.6 Mostly Harmless; 1.7 Block Drivers Are Gone; 1.8 Conclusion; Chapter 2: Allocating Memory; 2.1 Memory Management Routines; 2.2 malloc_type Structures; 2.3 Tying Everything Together; 2.4 Contiguous Physical Memory Management Routines; 2.5 A Straightforward Example; 2.6 Conclusion; Chapter 3: Device Communication and Control; 3.1 ioctl; 3.2 Defining ioctl Commands; 3.3 Implementing ioctl; 3.4 Invoking ioctl; 3.5 sysctl; 3.6 Implementing sysctls, Part 1; 3.7 sysctl Context Management Routines; 3.8 Creating Dynamic sysctls; 3.9 Implementing sysctls, Part 2; 3.10 Conclusion; Chapter 4: Thread Synchronization; 4.1 A Simple Synchronization Problem; 4.2 A More Complex Synchronization Problem; 4.3 Preventing Race Conditions; 4.4 Mutexes; 4.5 Mutex Management Routines; 4.6 Implementing Mutexes; 4.7 Shared/Exclusive Locks; 4.8 Shared/Exclusive Lock Management Routines; 4.9 Implementing Shared/Exclusive Locks; 4.10 Reader/Writer Locks; 4.11 Reader/Writer Lock Management Routines; 4.12 Condition Variables; 4.13 Condition Variable Management Routines; 4.14 General Guidelines; 4.15 Conclusion; Chapter 5: Delaying Execution; 5.1 Voluntary Context Switching, or Sleeping; 5.2 Implementing Sleeps and Condition Variables; 5.3 Kernel Event Handlers; 5.4 Callouts; 5.5 Callouts and Race Conditions; 5.6 Taskqueues; 5.7 Conclusion; Chapter 6: Case Study: Virtual Null Modem; 6.1 Prerequisites; 6.2 Code Analysis; 6.3 Conclusion; Chapter 7: Newbus and Resource Allocation; 7.1 Autoconfiguration and Newbus Drivers; 7.2 Tying Everything Together; 7.3 Hardware Resource Management; 7.4 Conclusion; Chapter 8: Interrupt Handling; 8.1 Registering an Interrupt Handler; 8.2 Interrupt Handlers in FreeBSD; 8.3 Implementing an Interrupt Handler; 8.4 Generating Interrupts on the Parallel Port; 8.5 Conclusion; Chapter 9: Case Study: Parallel Port Printer Driver; 9.1 Code Analysis; 9.2 Conclusion; Chapter 10: Managing and Using Resources; 10.1 I/O Ports and I/O Memory; 10.2 Memory Barriers; 10.3 Tying Everything Together; 10.4 Conclusion; Chapter 11: Case Study: Intelligent Platform Management Interface Driver; 11.1 Code Analysis; 11.2 Conclusion; Chapter 12: Direct Memory Access; 12.1 Implementing DMA; 12.2 Creating DMA Tags; 12.3 Tearing Down DMA Tags; 12.4 DMA Map Management Routines, Part 1; 12.5 Loading (DMA) Buffers into DMA Maps; 12.6 DMA Map Management Routines, Part 2; 12.7 A Straightforward Example; 12.8 Synchronizing DMA Buffers; 12.9 Conclusion; Chapter 13: Storage Drivers; 13.1 disk Structures; 13.2 disk Structure Management Routines; 13.3 Block I/O Structures; 13.4 Block I/O Queues; 13.5 Tying Everything Together; 13.6 Block I/O Completion Routines; 13.7 Conclusion; Chapter 14: Common Access Method; 14.1 How CAM Works; 14.2 A (Somewhat) Simple Example; 14.3 SIM Registration Routines; 14.4 Action Routines; 14.5 Conclusion; Chapter 15: USB Drivers; 15.1 About USB Devices; 15.2 More About USB Devices; 15.3 USB Configuration Structures; 15.4 USB Transfers (in FreeBSD); 15.5 USB Configuration Structure Management Routines; 15.6 USB Methods Structure; 15.7 Tying Everything Together; 15.8 Conclusion; Chapter 16: Network Drivers, Part 1: Data Structures; 16.1 Network Interface Structures; 16.2 Network Interface Structure Management Routines; 16.3 Network Interface Media Structures; 16.4 Network Interface Media Structure Management Routines; 16.5 Hello, world!; 16.6 mbuf Structures; 16.7 Message Signaled Interrupts; 16.8 Implementing MSI; 16.9 MSI Management Routines; 16.10 Conclusion; Chapter 17: Network Drivers, Part 2: Packet Reception and Transmission; 17.1 Packet Reception; 17.2 Packet Transmission; 17.3 Post Packet Transmission; 17.4 Conclusion; References; Colophon; UPDATES;
Erscheint lt. Verlag | 5.12.2012 |
---|---|
Verlagsort | San Francisco |
Sprache | englisch |
Maße | 178 x 234 mm |
Themenwelt | Informatik ► Betriebssysteme / Server ► Unix / Linux |
ISBN-10 | 1-59327-204-9 / 1593272049 |
ISBN-13 | 978-1-59327-204-3 / 9781593272043 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich