文件名称:Essential Linux-DeviceDrivers
文件大小:3.11MB
文件格式:7Z
更新时间:2021-05-10 10:53:23
Drivers
linux驱动圣经之一 Chapter 1, “Introduction”, starts our tryst with Linux. It hurries you through downloading the kernel sources, making trivial code changes, and building a bootable kernel image. Chapter 2, “A Peek Inside the Kernel” , takes a brisk look into the innards of the Linux kernel and teaches you some must-know kernel concepts. It first takes you through the boot process and then describes kernel services particularly relevant to driver development such as kernel timers, concurrency management, and memory allocation. Chapter 3, “Kernel Facilities ”, examines several kernel services that are useful components in the tool box of driver developers. The chapter starts by looking at kernel threads, which is a way to implement background tasks inside the kernel. It then moves on to helper interfaces such as linked lists, work queues, completion functions, and notifier chains. These helper facilities simplify your code, weed out redundancies from the kernel, and help long-term maintenance. Chapter 4, “Laying the Groundwork” , builds the foundation for mastering the art of writing Linux device drivers. It introduces devices and drivers by giving you a bird's eye view of the architecture of a typical PC-compatible system and an embedded device. It then looks at basic driver concepts such as interrupt handling and the kernel’s device model. Chapter 5, “Character Drivers” , looks at the architecture of character device drivers. Several concepts introduced in this chapter such as polling, asynchronous notification, and I/O control, are relevant to subsequent chapters as well, since many device classes discussed in the rest of the book are ‘super’ character devices. Chapter 6, “Serial Drivers” , explains the kernel layer that handles serial devices. Chapter 7 , “Input Drivers” , discusses the kernel’s input subsystem that is responsible for servicing devices such as keyboards, mice, and touch screen controllers. Chapter 8, “The Inter-Integrated Circuit Protocol ”, dissects drivers for devices such as EEPROMs that are connected to a system’s I2 C bus or SMBus. This chapter also looks at other serial interfaces such as SPI bus and 1-wire bus. Chapter 9, “PCMCIA and Compact Flash ”, delves into the PCMCIA subsystem. It teaches you to write drivers for devices having a PCMCIA or Compact Flash form factor. Chapter 10, “Peripheral Component Interconnect”, looks at kernel support for PCI and its derivatives. Chapter 11, “Universal Serial Bus” ,explores USB architecture and explains how you can use the services of the Linux-USB subsystem to write drivers for USB devices. Chapter 12, “Video Drivers” , examines the Linux-Video subsystem. It finds out the advantages offered by the frame buffer abstraction and teaches you to write frame buffer drivers. Chapter 13, “Audio Drivers” ,describes the Linux-Audio framework and explains how to implement audio drivers. Chapter 14, “Block Drivers” ,focuses on drivers for storage devices such as hard disks. In this chapter, you will also learn about the different I/O schedulers supported by the Linux Block subsystem. Chapter 15, “Network Interface Cards” , is devoted to network device drivers. You will learn about kernel networking data structures and how to interface network drivers with protocol layers. Chapter 16, “Linux without Wires” , looks at driving different wireless technologies such as Bluetooth, Infrared, WiFi, and cellular communication. Chapter 17, “Memory Technology Devices”, discusses flash memory enablement on embedded devices.The chapter ends by examining drivers for the Firmware Hub found on PC systems. Chapter 18, “Embedding Linux” , steps into the world of embedded Linux. It takes you through the main firmware components of an embedded solution such as bootloader, kernel, and device drivers. Given the soaring popularity of Linux in the embedded space, it’s more likely that you will use the device driver skills that you acquire from this book to enable embedded systems. Chapter 19, “Drivers in User Space”, looks at driving different types of devices from user space. Some device drivers, especially ones that are heavy on policy and light on performance requirements, are better off residing in user land. This chapter also explains how the Linux process scheduler affects the response times of user mode drivers. Chapter 20, “More Devices and Drivers” , takes a tour of a potpourri of driver families not covered thus far, such as Error Detection And Correction (EDAC), FireWire, and ACPI. Chapter 21, “Debugging Device Drivers” , teaches about different types of debuggers that you can use to debug kernel code. In this chapter, you will also learn to use trace tools, kernel probes, crash-dump, and profilers. When you develop a driver, be armed with the driver debugging skills that you learn in this chapter. Chapter 22, “Maintenance and Delivery” , provides perspective on the software development life cycle. Chapter 23, “Shutting Down” , takes you through a checklist of work items when you embark on Linux-enabling a new device. The book ends by pondering What next?
【文件预览】:
Essential Linux-DeviceDrivers.pdf