应用程序正常初始化失败是什么原因(应用程序正常初始化失败是什么原因338)

一、书籍简介应用程序正常初始化失败是什么原因(应用程序正常初始化失败是什么原因338)

深入Linux设备驱动程序内核机制

作者: 陈学松出版社: 电子工业出版社出品方: 博文视点出版年: 2012-1页数: 522

二、获取方式转发本文,私信发送:0214,获取下载链接。

三、书籍目录目录· · · · · ·第1章 内核模块 11.1 内核模块的文件格式 21.2 EXPORT_SYMBOL的内核实现 51.3 模块的加载过程 81.3.1 sys_init_module(第一部分) 91.3.2 struct module 91.3.3 load_module 131.3.4 sys_init_module(第二部分) 491.3.5 模块的卸载 541.4 本章小结 55第2章 字符设备驱动程序 572.1 应用程序与设备驱动程序互动实例 582.2 struct file_operations 622.3 字符设备的内核抽象 632.4 设备号的构成与分配 652.4.1 设备号的构成 652.4.2 设备号的分配与管理 662.5 字符设备的注册 712.6 设备文件节点的生成 742.7 字符设备文件的打开操作 772.8 本章小结 85第3章 分配内存 873.1 物理内存的管理 873.1.1 内存节点node 873.1.2 内存区域zone 883.1.3 内存页 893.2 页面分配器(page allocator) 903.2.1 gfp_mask 913.2.2 alloc_pages 953.2.3 __get_free_pages 963.2.4 get_zeroed_page 973.2.5 __get_dma_pages 973.3 slab分配器(slab allocator) 983.3.1 管理slab的数据结构 993.3.2 kmalloc与kzalloc 1053.3.3 kmem_cache_create与kmem_cache_alloc 1083.4 内存池(mempool) 1103.5 虚拟内存的管理 1113.5.1 内核虚拟地址空间构成 1113.5.2 vmalloc与vfree 1123.5.3 ioremap 1153.6 per-CPU变量 1153.6.1 静态per-CPU变量的声明与定义 1163.6.2 静态per-CPU变量的链接脚本 1173.6.3 setup_per_cpu_areas函数 1183.6.4 使用per-CPU变量 1213.7 本章小结 125第4章 互斥与同步 1274.1 并发的来源 1274.2 local_irq_enable与local_irq_disable 1284.3 自旋锁 1294.3.1 spin_lock 1304.3.2 spin_lock的变体 1334.3.3 单处理器上的spin_lock函数 1364.3.4 读取者与写入者自旋锁rwlock 1374.4 信号量(semaphore) 1414.4.1 信号量的定义与初始化 1414.4.2 DOWN操作 1424.4.3 UP操作 1454.4.4 读取者与写入者信号量rwsem 1464.5 互斥锁mutex 1484.5.1 互斥锁的定义与初始化 1484.5.2 互斥锁的DOWN操作 1494.5.3 互斥锁的UP操作 1504.6 顺序锁seqlock 1524.7 RCU 1554.7.1 读取者的RCU临界区 1564.7.2 写入者的RCU操作 1564.7.3 RCU使用的特点 1574.8 原子变量与位操作 1594.9 等待队列 1624.9.1 等待队列头wait_queue_head_t 1624.9.2 等待队列的节点 1634.9.3 等待队列的应用 1644.10 完成接口completion 1644.11 本章小结 168第5章 中断处理 1695.1 中断的硬件框架 1695.2 PIC与软件中断号 1705.3 通用的中断处理函数 1715.4 do_IRQ函数 1725.5 struct irq_chip 1785.6 struct irqaction 1795.7 irq_set_handler 1805.8 handle_irq_event 1845.9 request_irq 1865.10 中断处理的irq_thread机制 1905.11 free_irq 1915.12 SOFTIRQ 1925.13 irq的自动探测 1965.14 中断处理例程 2005.15 中断共享 2015.16 本章小结 202第6章 延迟操作 2036.1 tasklet 2036.1.1 tasklet机制初始化 2046.1.2 提交一个tasklet 2056.1.3 tasklet_action 2096.1.4 tasklet的其他操作 2126.2 工作队列work queue 2146.2.1 数据结构 2146.2.2 create_singlethread_workqueue和create_workqueue 2166.2.3 工人线程worker_thread 2196.2.4 destroy_workqueue 2216.2.5 提交工作节点queue_work 2246.2.6 内核创建的工作队列 2296.3 本章小结 230第7章 设备文件的高级操作 2317.1 ioctl文件操作 2317.1.1 ioctl的系统调用 2317.1.2 ioctl的命令编码 2357.1.3 copy_from_user和copy_to_user 2387.2 字符设备的I/O模型 2437.3 同步阻塞型I/O 2447.3.1 wait_event_interruptible 2447.3.2 wake_up_interruptible 2467.4 同步非阻塞型I/O 2507.5 异步阻塞型I/O 2517.6 异步非阻塞型I/O 2587.7 驱动程序的fsync例程 2597.8 fasync例程 2607.9 llseek例程 2697.10 访问权能 2727.11 本章小结 273第8章 时间管理 2748.1 jiffies 2748.1.1 时间比较 2778.1.2 时间转换 2788.2 延时操作 2798.2.1 长延时 2808.2.2 短延时 2858.3 内核定时器 2868.3.1 init_timer 2898.3.2 add_timer 2898.3.3 del_timer和del_timer_sync 2938.4 本章小结 293第9章 Linux设备驱动模型 2959.1 sysfs文件系统 2959.2 kobject和kset 2989.2.1 kobject 2989.2.2 kobject的类型属性 3059.2.3 kset 3089.2.4 热插拔中的uevent和call_usermodehelper 3119.2.5 实例源码 3209.3 总线、设备与驱动 3289.3.1 总线及其注册 3289.3.2 总线的属性 3359.3.3 设备与驱动的绑定 3389.3.4 设备 3399.3.5 驱动 3489.4 class 3519.5 本章小结 355第10章 内存映射与DMA 35610.1 设备缓存与设备内存 35610.2 mmap 35610.2.1 struct vm_area_struct 35710.2.2 用户空间虚拟地址布局 35810.2.3 mmap系统调用过程 36210.2.4 驱动程序中mmap方法的实现 36810.2.5 mmap使用范例 37310.2.6 munmap 38310.3 DMA 38410.3.1 内核中的DMA层 38410.3.2 物理地址与总线地址 38610.3.3 dma_set_mask 38710.3.4 DMA映射 38810.3.5 回弹缓冲区(bounce buffer) 40110.3.6 DMA池 40110.4 本章小结 405第11章 块设备驱动程序 40711.1 块子系统初始化 40811.2 ramdisk源码实例 41011.2.1 make_request版本的RAM DISK源码 41111.2.2 request版本的RAM DISK源码 41611.2.3 ramdisk的使用 42011.3 块设备号的注册与管理 42211.4 block_device 42411.5 struct gendisk 42511.6 struct hd_struct 42811.7 用alloc_disk分配gendisk对象 42811.8 向系统添加一个块设备add_disk 43011.9 block_device_operations 43911.10 块设备文件的打开 44011.11 blk_init_queue 44811.12 blk_queue_make_request 45911.13 向队列提交请求 46011.14 块设备的请求处理函数 46611.15 bio结构 46711.16 本章小结 472第12章 网络设备驱动程序 47312.1 net_device 47512.2 网络设备的注册 48812.3 设备方法 49212.3.1 设备初始化 49412.3.2 设备接口的打开与停止 49512.3.3 数据包的发送 49512.3.4 网络数据包发送过程中的流控机制 50012.3.5 传输超时(watchdog timeout) 50312.3.6 数据包的接收 50612.4 套接字缓冲区 51012.5 中断处理 51812.6 NAPI 52012.7 本章小结 522

(0)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@ZLME.COM 举报,一经查实,立刻删除。

相关推荐