Linux设备驱动程序

内容简介

[

  《LINUX设备驱动程序(第3版 影印版 英文版)》的作者均是Linux社区的领导者。Jonathan Corbet虽不是专职的内核代码贡献者,但他是备受关注的LwN.net新闻及信息网站的执行编辑。Alessandro Rubini是一名Linux代码贡献者,也是活跃的意大利Linux社区的灵魂人物。Greg Kroah-Hartman是目前内核中USB、PCI和驱动程序核心子系统的维护者。  《LINUX设备驱动程序(第3版 影印版 英文版)》的这个版本已针对Linux内核的2.6.10版本彻底更新过。内核的这个版本针对常见任务完成了合理化设计及相应的简化,如即插即用、利用sysfs文件系统和用户空间交互,以及标准总线上的多设备管理等等。  要阅读并理解《LINUX设备驱动程序(第3版 影印版 英文版)》,您不必首先成为内核黑客;只要您理解c语言并具有unix系统调用的一些背景知识即可。您将学到如何为字符设备、块设备和网络接口编写驱动程序。为此,《LINUX设备驱动程序(第3版 影印版 英文版)》提供了完整的示例程序,您不需要特殊的硬件即可编译和运行这些示例程序。《LINUX设备驱动程序(第3版 影印版 英文版)》还在单独的章节中讲述了PCI、UsB和tty(终端)子系统。对期望了解操作系统内部工作原理的读者来讲,《LINUX设备驱动程序(第3版 影印版 英文版)》也深入阐述了地址空间、异步事件以及I/O等方面的内容。

]

目录

Preface1. An Introduction to Device DriversThe Role of the Device DriverSplitting the KernelClasses of Devices and ModulesSecurity IssuesVersion NumberingLicense TermsJoining the Kernel Development CommunityOverview of the Book2. Building and Running ModulesSetting Up Your Test SystemThe Hello World ModuleKernel Modules Versus ApplicationsCompiling and LoadingThe Kernel Symbol TablePreliminariesInitialization and ShutdownModule ParametersDoing It in User SpaceQuick Reference3. Char DriversThe Design of scullMajor and Minor NumbersSome Important Data StructuresChar Device Registrationopen and releasescull’s Memory Usageread and writePlaying with the New DevicesQuick Reference4. Debugging TechniquesDebugging Support in the KernelDebugging by PrintingDebugging by QueryingDebugging by WatchingDebugging System FaultsDebuggers and Related Tools5. Concurrency and Race ConditionsPitfalls in scullConcurrency and Its ManagementSemaphores and MutexesCompletionsSpinlocksLocking TrapsAlternatives to LockingQuick Reference6. Advanced Char Driver OperationsioctlBlocking I/Opoll and selectAsynchronous NotificationSeeking a DeviceAccess Control on a Device FileQuick Reference7. Time, Delays, and Deferred WorkMeasuring Time LapsesKnowing the Current TimeDelaying ExecutionKernel TimersTaskletsWorkqueuesQuick Reference8. Allocating MemoryThe Real Story of kmallocLookaside Cachesget_flee_page and Friendsvmalloc and FriendsPer-CPU VariablesObtaining Large BuffersQuick Reference9. Communicating with HardwareI/O Ports and I/O MemoryUsing I/O PortsAn I/O Port ExampleUsing I/O MemoryQuick Reference10. Interrupt HandlingPreparing the Parallel PortInstalling an Interrupt HandlerImplementing a HandlerTop and Bottom HalvesInterrupt SharingInterrupt-Driven I/OQuick Reference11. Data Types in the KernelUse of Standard C TypesAssigning an Explicit Size to Data ItemsInterface-Specific TypesOther Portability IssuesLinked ListsQuick Reference12. PCl DriversThe PCI InterfaceA LookBackl. ISAPC/104 and PC/104+Other PC BusesSBusNuBusExternal BusesQuick Reference13. USB DriversUSB Device BasicsUSB and SysfsUSB UrbsWriting a USB DriverUSB Transfers Without UrbsQuick Reference14. The Linux Device ModelKobjects, Ksets, and SubsystemsLow-Level Sysfs OperationsHotplug Event GenerationBuses, Devices, and DriversClassesPutting It All TogetherHotplugDealing with FirmwareQuick Reference15. Memory Mapping and DMAMemory Management in LinuxThe mmap Device OperationPerforming Direct I/ODirect Memory AccessQuick Reference16. Block DriversRegistrationThe Block Device OperationsRequest ProcessingSome Other DetailsQuick Reference17. Network DriversHow snull Is DesignedConnecting to the KernelThe net_device Structure in DetailOpening and ClosingPacket TransmissionPacket ReceptionThe Interrupt HandlerReceive Interrupt MitigationChanges in Link StateThe Socket BuffersMAC Address ResolutionCustom ioctl CommandsStatistical InformationMulticastA Few Other DetailsQuick Reference18. TTY DriversA Small TTY Drivertty_driver Function PointersTTY Line Settingsioctlsproc and sysfs Handling of TTY DevicesThe tty_driver Structure in DetailThe tty_operations Structure in DetailThe tty_struct Structure in DetailQuick ReferenceBibliographyIndex

封面

Linux设备驱动程序

书名:Linux设备驱动程序

作者:Jonathan Corbet,Ales

页数:20,615页

定价:¥142.0

出版社:东南大学出版社

出版日期:2019-05-01

ISBN:9787564183394

PDF电子书大小:33MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注