이미 소장하고 있다면 판매해 보세요.
|
Foreword
Preface Acknowledgments About the Author Chapter 1 Introduction Evolution The GNU Copyleft Kernelorg Mailing Lists and Forums Linux Distributions Looking at the Sources Building the Kernel Loadable Modules Before Starting Chapter 2 A Peek Inside the Kernel Booting Up Kernel Mode and User Mode Process Context and Interrupt Context Kernel Timers HZ and Jiffies Long Delays Short Delays Pentium Time Stamp Counter Real Time Clock Concurrency in the Kernel Spinlocks and Mutexes Atomic Operators Reader-Writer Locks Debugging Process Filesystem Allocating Memory Looking at the Sources Chapter 3 Kernel Facilities Kernel Threads Creating a Kernel Thread Process States and Wait Queues User Mode Helpers Helper Interfaces Linked Lists Hash Lists Work Queues Notifier Chains Completion Interface Kthread Helpers Error-Handling Aids Looking at the Sources Chapter 4 Laying the Groundwork Introducing Devices and Drivers Interrupt Handling Interrupt Context Assigning IRQs Device Example: Roller Wheel Softirqs and Tasklets The Linux Device Model Udev Sysfs, Kobjects, andDevice Classes Hotplug and Coldplug Microcode Download Module Autoload Memory Barriers Power Management Looking at the Sources Chapter 5 Character Drivers Char Driver Basics Device Example: System CMOS Driver Initialization Open and Release Exchanging Data Seek Control Sensing Data Availability Poll Fasync Talking to the Parallel Port Device Example: Parallel Port LED Board RTC Subsystem Pseudo Char Drivers Misc Drivers Device Example: Watchdog Timer Character Caveats Looking at the Sources _Bookindb i_ix // :: AM Chapter 6 Serial Drivers Layered Architecture UART Drivers Device Example: Cell Phone RS- TTY Drivers Line Disciplines Device Example: Touch Controller Looking at the Sources Chapter 7 Input Drivers Input Event Drivers The Evdev Interface Input Device Drivers Serio Keyboards Mice Touch Controllers Accelerometers Output Events Debugging Looking at the Sources Chapter 8 The Inter-Integrated Circuit Protocol What's IC/SMBus? IC Core Bus Transactions Device Example: EEPROM Initializing Probing the Device Checking Adapter Capabilities Accessing the Device More Methods Device Example: Real Time Clock IC-dev Hardware Monitoring Using LM-Sensors The Serial Peripheral Interface Bus The -Wire Bus Debugging Looking at the Sources Chapter 9 PCMCIA and Compact Flash What's PCMCIA/CF? Linux-PCMCIA Subsystem Host Controller Drivers PCMCIA Core Driver Services Client Drivers Data Structures Device Example: PCMCIA Card Tying the Pieces Together PCMCIA Storage Serial PCMCIA Debugging Looking at the Sources Chapter 10 Peripheral Component Interconnect The PCI Family Addressing and Identification Accessing PCI Regions Configuration Space I/O and Memory Direct Memory Access Device Example: Ethernet-Modem Card Initializing and Probing Data Transfer Debugging Looking at the Sources Chapter 11 Universal Serial Bus USB Architecture Bus Speeds Host Controllers Transfer Types Addressing Linux-USB Subsystem Driver Data Structures The usb_device Structure USB Request Blocks Pipes Descriptor Structures Enumeration Device Example: Telemetry Card Initializing and Probing Accessing Registers Data Transfer Class Drivers Mass Storage USB-Serial Human Interface Devices Bluetooth Gadget Drivers Debugging Looking at the Sources Chapter 12 Video Drivers Display Architecture Linux-Video Subsystem Display Parameters The Frame Buffer API Frame Buffer Drivers Device Example: Navigation System Console Drivers Device Example: Cell Phone Revisited Boot Logo Debugging Looking at the Sources Chapter 13 Audio Drivers Audio Architecture Linux-Sound Subsystem Device Example: MP Player Driver Methods and Structures ALSA Programming Debugging Looking at the Sources Chapter 14 Block Drivers Storage Technologies Linux Block I/O Layer I/O Schedulers Block Driver Data Structures and Methods Device Example: Simple Storage Controller Initialization Block Device Operations Disk Access Advanced Topics Debugging Looking at the Sources Chapter 15 Network Interface Cards Driver Data Structures Socket Buffers The Net Device Interface Activation Data Transfer Watchdog Statistics Configuration Bus Specific Talking with Protocol Layers Receive Path Transmit Path Flow Control Buffer Management and Concurrency Control Device Example: Ethernet NIC ISA Network Drivers Asynchronous Transfer Mode Network Throughput Driver Performance Protocol Performance Looking at the Sources Chapter 16 Linux Without Wires Bluetooth BlueZ Device Example: CF Card Device Example: USB Adapter RFCOMM Networking Human Interface Devices Audio Debugging Looking at the Sources Infrared Linux-IrDA Device Example: Super I/O Chip Device Example: IR Dongle IrComm Networking IrDA Sockets Linux Infrared Remote Control Looking at the Sources WiFi Configuration Device Drivers Looking at the Sources Cellular Networking GPRS CDMA Current Trends Chapter 17 Memory Technology Devices What's Flash Memory? Linux-MTD Subsystem Map Drivers Device Example: Handheld NOR Chip Drivers NAND Chip Drivers User Modules Block Device Emulation Char Device Emulation JFFS YAFFS MTD-Utils Configuring MTD eXecute In Place The Firmware Hub Debugging Looking at the Sources Chapter 18 Embedding Linux Challenges Component Selection Tool Chains Embedded Bootloaders Memory Layout Kernel Porting Embedded Drivers Flash Memory UART Buttons and Wheels PCMCIA/CF SD/MMC USB RTC Audio Touch Screen Video CPLD/FPGA Connectivity Domain-Specific Electronics More Drivers The Root Filesystem NFS-Mounted Root Compact Middleware Test Infrastructure Debugging Board Rework Debuggers Chapter 19 Drivers in User Space Process Scheduling and Response Times The Original Scheduler The O() Scheduler The CFS Scheduler Response Times Accessing I/O Regions Accessing Memory Regions User Mode SCSI User Mode USB User Mode IC UIO Looking at the Sources Chapter 20 More Devices and Drivers ECC Reporting Device Example: ECC-Aware Memory Controller Frequency Scaling Embedded Controllers ACPI ISA and MCA FireWire Intelligent Input/Output Amateur Radio Voice over IP High-Speed Interconnects InfiniBand RapidIO Fibre Channel iSCSI Chapter 21 Debugging Device Drivers Kernel Debuggers Entering a Debugger Kernel Debugger (kdb) Kernel GNU Debugger (kgdb) GNU Debugger (gdb) JTAG Debuggers Downloads Kernel Probes Kprobes Jprobes Return Probes Limitations Looking at the Sources Kexec and Kdump Kexec Kexec with Kdump Kdump Looking at the Sources Profiling Kernel Profiling with OProfile Application Profiling with Gprof Tracing Linux Trace Toolkit Linux Test Project User Mode Linux Diagnostic Tools Kernel Hacking Config Options Test Equipment Chapter 22 Maintenance and Delivery Coding Style Change Markers Version Control Consistent Checksums Build Scripts Portable Code Chapter 23 Shutting Down Checklist What Next? Appendix A Linux Assembly Debugging Appendix B Linux and the BIOS Real Mode Calls Protected Mode Calls BIOS and Legacy Drivers Appendix C Seq Files The Seq File Advantage Updating the NVRAM Driver Looking at the Sources |