首页>参考读物>计算机科学与技术>综合

OpenSolaris设备驱动原理与开发
作者 : Sun中国工程研究院研发工程师
译者 :
出版日期 : 2010-03-17
ISBN : 4944
定价 : 23.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 269
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

全书共分10章,内容包括:概述、Solaris的设备管理、Solaris设备驱动程序、Solaris内核多线程与同步、Solaris内核内存、PCI、Solaris中断、DMA、电源管理、FMA(Solaris故障管理)。

作者简介

Sun中国工程研究院研发工程师:作者共五个人,都是现在Sun 中国工程研究院的工程师,其中有三人在Sun工作已经超过五年。团队的工作主要是在Solaris上开发设备驱动,包括存储,网络,USB等领域,在到 Sun之前,也从事Unix上设备驱动开发,所以有较丰富的开发经验。这本书应该是我们在Solaris上开发经验的总结,希望能帮助更多的人来了解Solaris以及设备驱动的开发。其实Solaris并不神秘,并有许多和Linux不一样的特性。

图书目录

前言

第1章  概述 1
1.1  Solaris 1
1.2  OpenSolaris 2
1.3  调试工具 14
第2章  Solaris的设备管理 25
2.1  设备的文件操作 25
2.2  设备文件系统(devfs) 25
2.2.1  dv_node 26
2.2.2  通过设备文件系统来配置设备驱动 27
2.3  设备信息结点(dev_info) 29
2.3.1  设备信息结点的属性 31
2.3.2  设备信息结点的生命周期 32
2.4  设备标识 34
2.4.1  devid 34
2.4.2  设备的物理路径 35
2.4.3  设备号(主设备结点,次设备结点) 36
2.5  设备树及其属性 37
2.5.1  Open Firmware简介 37
2.5.2  设备属性 38
2.5.3  总线属性 43
2.6  设备树的管理 43
2.6.1  devfsadm 43
2.6.2  Syseventd 46
2.6.3  驱动配置工具 47
2.7  动态重新配置 47
第3章  Solaris设备驱动程序 50
3.1  设备驱动程序模块 50
3.2  设备驱动程序中的设备管理 52
3.2.1  softstate 52
3.2.2  设备的功能提供 54
3.3  设备驱动程序中的操作 56
3.3.1  设备结点 56
3.3.2  设备的配置 58
3.3.3  设备操作 60
3.4  设备驱动程序中的硬件操作 61
3.4.1  attach() 61
3.4.2  timeout() 65
第4章  Solaris内核多线程与同步 66
4.1  多线程 66
4.1.1  多线程模型 66
4.1.2  线程调度 72
4.1.3  任务队列 77
4.1.4  cyclic子系统 81
4.1.5  callout和timeout 84
4.2  同步机制 87
4.2.1  锁的硬件原理 87
4.2.2  互斥锁 92
4.2.3  条件变量 96
4.2.4  锁的使用 97
第5章  Solaris内核内存 99
5.1  内核内存概述 99
5.1.1  Solaris内核内存虚拟地址空间布局 99
5.1.2  内核堆 103
5.1.3  内核内存分配和管理 103
5.2  slab分配程序 104
5.2.1  概述 104
5.2.2  slab分配程序接口 106
5.2.3  slab分配程序的分层实现 108
5.2.4  slab分配程序缓存统计信息 113
5.3  vmem分配器 115
5.3.1  vmem接口 115
5.3.2  vmem的实现 117
5.4  内核内存的跟踪和调试 119
5.4.1  检查已释放缓冲区:0xdeadbeef 120
5.4.2  使用Redzone进行调试:0xfeedface 120
5.4.3  检测未初始化数据:0xbaddcafe 122
5.4.4  内存分配日志 123
5.4.5  使用高级技巧分析内存 125
5.4.6  使用::kmem_verify找到被破坏的缓冲区 126
5.4.7  使用分配程序日志功能 127
第6章  PCI 130
6.1  PCI概述 130
6.1.1  I/O总线的发展 130
6.1.2  PCI简介 131
6.2  x86平台PCI设备配置过程 132
6.2.1  PCI资源管理 132
6.2.2  设备枚举 134
6.2.3  设备再编程 139
6.3  PCI空间访问 141
6.3.1  字节序 141
6.3.2  设备访问的数据一致性 146
6.3.3  设备访问机制 147
第7章  Solaris中断 152
7.1  Solaris上的中断简介 152
7.2  MSI和MSI-X 153
7.2.1  MSI 154
7.2.2  MSI-X 155
7.2.3  MSI和MSI-X的异同 157
7.2.4  MSI消息地址和消息数据 157
7.3  x86上的中断机制及Solaris中x86中断的实现 159
7.3.1  x86体系结构中的中断和异常处理机制 159
7.3.2  x86系统中的中断控制器 159
7.3.3  Solaris对x86系统中断的支持 162
7.4  SPARC系统上的中断机制及
Solaris中SPARC中断的实现 167
7.4.1  SPARC处理器在硬件实现上对中断
的支持 167
7.4.2  SPARC系统上的中断控制器 169
7.4.3  Solaris对SPARC系统中断的支持 170
7.5  Solaris上软中断的实现 175
7.5.1  x86系统中软中断的实现 175
7.5.2  SPARC系统中软中断的实现 178
7.6  Solaris中和中断相关的DDI/DKI 181
第8章  DMA 186
8.1  DMA概述 186
8.1.1  SG表和DMA控制器 186
8.1.2  DVMA和IOMMU 187
8.1.3  DMA的数据一致性 190
8.2  Solaris的DMA模型 194
8.2.1  DMA的属性 194
8.2.2  DMA模型概述 195
8.2.3  DMA对象 197
8.3  DMA绑定过程 199
8.4  DMA的同步 202
8.5  DMA内存分配机制 203
8.5.1  ddi_dma_mem_alloc()接口定义 203
8.5.2  x86平台DMA内存分配 203
第9章  电源管理 207
9.1  关于电源管理 207
9.2  电源管理的设计与实现 208
9.3  系统的电源管理 210
9.4  设备的电源管理 215
9.4.1  成员 215
9.4.2  属性 216
9.4.3  设备的电源管理过程 216
第10章  FMA(Solaris故障管理) 221
10.1  FMA原理和架构 221
10.1.1  Solaris FMA模型 221
10.1.2  故障边界 223
10.1.3  错误处理、故障诊断和响应 224
10.1.4  资源命名和事件协议 224
10.2  Solaris故障管理的实现 233
10.2.1  故障管理器fmd概述 233
10.2.2  系统拓扑 236
10.2.3  eversholt故障诊断语言 238
10.3  设备驱动程序中的FMA支持 238
10.3.1  FMA资源初始化 239
10.3.2  IO设备内部错误 241
10.3.3  IO访问和DMA错误 246
附录1  设备驱动(testdrv)的Makefile 252
附录2  dummy驱动程序 255
附录3  和中断相关的函数使用举例 258
参考文献 261

教学资源推荐
作者: W.Richard Stevens
作者: 徐洁磐 李臣明 史九林 编著
作者: (美)Behrouz Forouzam
参考读物推荐
作者: [美] 布鲁克·德拉姆(Brook Drumm) 詹姆斯·弗洛伊德·凯利(James Floyd Kelly) 布莱恩·罗伊(Brian Roe) 史蒂文·博林(Steven Bolin) 约翰·埃德加·帕克(John Edgar Park) 约翰·白赫泰(John Baichtal) 里克·文斯科特(Rick Winscot) 尼克·恩斯特(Nick Ernst) 凯莱布·科特尔(Caleb Cotter)著
作者: [印度]卡西克·拉玛苏布兰马尼安(Karthik Ramasubramanian)阿布舍克·辛格( Abhishek Singh)著