img
share 分享

VIP会员

作者:CSDN

出版社:CSDN《程序员》

ISBN:1111111111117

VIP会员免费 (仅需0.8元/天) ¥ 40000.0

温馨提示: 价值40000元的1000本电子书,VIP会员随意看哦!

电子书推荐

更多资源 展开

OS X与iOS内核编程 评分:

目 录   第1章 操作系统原理 1   1.1  操作系统的作用 3   1.2  进程管理 3   1.3  进程地址空间 4   1.4  操作系统服务 5   1.5  虚拟内存 6   1.6  调度 8   1.7  硬件和驱动程序 9   1.8  小结 11   第2章 Mac OS X和iOS 12   2.1  XNU内核 17   2.1.1  内核扩展(KEXT) 18   2.1.2  Mach 18   2.1.3  BSD层 27   2.1.4  I/O Kit 29   2.2  小结 31   第3章 Xcode和内核开发环境 32   3.1  语言的选择:C++ 32   3.2  Xcode 33   3.3  “Hello World”内核扩展 34   3.4  加载和卸载内核扩展 37   3.5  使用控制台查看输出 39   3.6  小结 40   第4章 I/O Kit框架 41   4.1  I/O Kit 模型 41   4.2  对象关系 43   4.3  Info.plist文件 43   4.3.1  驱动程序类 46   4.3.2  IORegistryExplorer 50   4.4  内核库:libkern 52   4.4.1  OSObject 52   4.4.2  容器类 54   4.5  小结 56   第5章 应用程序与驱动程序的交互 57   5.1  I/O Kit框架 58   5.2  查找驱动程序 58   5.3  观察设备移除 63   5.4  修改设备驱动程序属性 65   5.5  基于状态的交互 68   5.6  驱动程序的通知 79   5.7  小结 83   第6章 内存管理 84   6.1  内存类型 84   6.1.1  CPU物理地址 85   6.1.2  总线物理地址 85   6.1.3  用户和内核虚拟地址 85   6.1.4  内存顺序:大端序和小端序 86   6.1.5  32位和64位内存寻址 87   6.2  内存分配 88   6.2.1  底层分配机制 89   6.2.2  Mach内存域分配器 89   6.2.3  kalloc家族 89   6.2.4  BSD中的内存分配 90   6.2.5  I/O Kit内存分配 91   6.2.6  使用C++的new操作符分配内存 92   6.3  内存描述符 92   6.3.1  IOBufferMemoryDescriptor 94   6.3.2  其他的内存描述符 95   6.4  映射内存 95   6.4.1  用户空间任务到内核空间的内存映射 95   6.4.2  IOMemoryMap类 97   6.4.3  内核到用户空间任务的内存映射 98   6.4.4  将内存映射到指定的用户空间任务 99   6.4.5  物理地址映射 100   6.5  小结 101   第7章 同步和线程 102   7.1  同步原语 102   7.2  原子操作 104   7.3  锁 107   7.3.1  自旋锁 107   7.3.2  互斥 109   7.3.3  条件变量 110   7.3.4  读/写互斥 112   7.4  同步异步事件:工作环 113   7.4.1  IOCommandGate 115   7.4.2  定时器 116   7.4.3  释放工作环 117   7.5  内核线程 118   7.6  小结 119   第8章 USB 120   8.1  USB体系结构 120   8.1.1  USB传输速度 122   8.1.2  主机控制器 123   8.1.3  USB协议 124   8.1.4  端点 126   8.1.5  USB描述符 126   8.1.6  USB设备类 127   8.2  I/O Kit USB支持 128   8.2.1  USB设备和驱动程序处理 129   8.2.2  加载USB驱动程序 130   8.2.3  USB Prober 132   8.2.4  驱动程序示例:USB大容量存储器设备驱动程序 133   8.2.5  驱动程序启动 138   8.2.6  处理设备移除 138   8.2.7  枚举接口 139   8.2.8  枚举端点 140   8.2.9  执行设备请求 141   8.2.10  执行批量端点和中断端点的I/O 144   8.3  小结 147   第9章 PCI Express和Thunderbolt 148   9.1  I/O Kit中的PCI 150   9.1.1  匹配和加载驱动程序 151   9.1.2  驱动程序示例:一个简单的PCI驱动程序 154   9.1.3  访问配置空间寄存器 156   9.1.4  PCI I/O内存区 158   9.1.5  处理设备移除 161   9.2  中断 162   9.2.1  I/O Kit中断机制 163   9.2.2  注册接收中断 164   9.2.3  启用MSI 166   9.2.4  处理主中断 166   9.2.5  处理二级中断 168   9.3  直接内存访问 168   9.3.1  将物理地址转换为总线地址 170   9.3.2  为DMA准备内存 171   9.3.3  建立分散/聚集列表 172   9.3.4  IODMACommand类 173   9.4  小结 175   第10章 电源管理 177   10.1  响应电源状态改变 179   10.2  请求电源状态改变 184   10.3  处理设备空闲 185   10.4  观察设备电源状态改变 186   10.5  汇总 187   10.6  小结 191   第11章 串行端口驱动程序 192   11.1  Mac OS X串行端口体系结构概览 192   11.2  串行端口驱动程序 194   11.3  实现IOSerialDriverSync类 197   11.4  串行端口状态 200   11.5  串行端口事件 204   11.6  串行数据传输 207   11.7  从用户空间访问串行端口 211   11.8  小结 214   第12章 音频驱动程序 215   12.1  数字音频和音频设备简介 215   12.2  Core Audio 217   12.3  I/O Kit音频支持 218   12.4  实现一个音频驱动程序 219   12.4.1  驱动程序和硬件初始化 221   12.4.2  注册音频控制 223   12.4.3  实现音频引擎 225   12.4.4   I/O引擎初始化 226   12.4.5  其他的音频引擎功能 235   12.5  小结 236   第13章 网络 238   13.1  网络内核扩展 242   13.1.1  内核控制KPI 242   13.1.2  套接字过滤器 242   13.1.3  因特网协议过滤器 250   13.1.4  接口过滤器 255   13.2  调试和测试网络扩展 258   13.3  I/O Kit中的网络 259   13.3.1  构建简单以太网控制器驱动程序 261   13.3.2  MyEthernetDriver设计 262   13.3.3  驱动程序初始化和启动 264   13.3.4  介质和状态选择 266   13.3.5  配置设备硬件地址 268   13.3.6  启用和禁用设备 268   13.3.7  传输网络分组 270   13.3.8  接收分组 271   13.3.9  对MyEthernetDriver进行测试 274   13.4  小结 276   第14章 存储系统 277   14.1  传输层驱动程序 278   14.2  IOBlockStorageDevice接口 279   14.3  构建RAM磁盘设备 282   14.4  分区规则 292   14.4.1  实现一个示例分区规则 293   14.4.2  媒介内容线索属性 300   14.5  媒介过滤器驱动程序 300   14.5.1  加密过滤器规则示例 302   14.5.2  创建一个自定义GUID分区表 306   14.6  小结 308   第15章 用户空间USB驱动程序 310   15.1  背景 310   15.2  IOUSBLib框架 311   15.3  处理异步操作 315   15.4  IOUSBDeviceInterface类 316   15.5  IOUSBInterfaceInterface类 320   15.5.1  属性方法 321   15.5.2  端点数据传输方法 322   15.5.3  低延迟同步传输 328   15.6  小结 330   第16章 调试 331   16.1  常见的问题类型 331   16.2  内核恐慌 332   16.3  调试机制 333   16.3.1  启动时修复崩溃 335   16.3.2  采用IOLog()追踪 335   16.3.3  输出栈跟踪 336   16.3.4  通过FireWire远程跟踪 337   16.3.5  远程内核核心转储 339   16.3.6  KDB 340   16.3.7  通过以太网或FireWire使用GDB远程调试 340   16.3.8  实时调试运行的内核 344   16.3.9  使用虚拟机调试 344   16.3.10  在内核中使用GDB调试 344   16.3.11  使用Activity Monitor诊断挂起进程 354   16.3.12  查找内存和资源泄漏 355   16.4  小结 356   第17章 高级内核编程 357   17.1  内核中的SSE和浮点 357   17.2  多功能驱动程序 358   17.3  编写I/O Kit族 358   17.4  内核控制KPI 359   17.4.1  内核控制注册 361   17.4.2  客户端连接 362   17.4.3  获取和设置选项 363   17.4.4  从用户空间访问内核控制 364   17.5  内核中的进程处理 365   17.6  加载资源 366   17.7  KEXT资源之外的内容 367   17.8  内核驱动程序通知 368   17.9  小结 371   第18章 部署 372   18.1  安装和加载内核扩展 372   18.2  加载首选项和设置 374   18.3  内核扩展的版本管理 375   18.4  测试和品质保证 375   18.5  打包KEXT和软件 376   18.5.1  构建Hello World内核扩展安装包 378   18.5.2  将内容添加至安装包 378   18.5.3  配置安装包 379   18.5.4  构建安装包 382   18.5.5  卸载安装包 383   18.6  小结 383   索引 385

...展开详情
上传时间:2018-01 大小:50.71MB
热门图书