图书介绍

OS X与IOS内核编程PDF|Epub|txt|kindle电子书版本下载

OS X与IOS内核编程
  • (澳)OleHenryHalvorsen,(澳)DouglasClarke;贾伟译者 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115318244
  • 出版时间:2013
  • 标注页数:388页
  • 文件大小:168MB
  • 文件页数:402页
  • 主题词:操作系统-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

OS X与IOS内核编程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第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和iOS12

2.1 XNU内核17

2.1.1内核扩展(KEXT)18

2.1.2 Mach18

2.1.3 BSD层27

2.1.4 I/O Kit29

2.2小结31

第3章Xcode和内核开发环境32

3.1语言的选择:C++32

3.2 Xcode33

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 IORegistryExplorer50

4.4内核库:libkern52

4.4.1 OSObject52

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 IOBufferMemoryDescriptor94

6.3.2其他的内存描述符95

6.4映射内存95

6.4.1用户空间任务到内核空间的内存映射95

6.4.2IOMemoryMap类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 IOCommandGate115

7.4.2定时器116

7.4.3释放工作环117

7.5内核线程118

7.6小结119

第8章USB120

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 Prober132

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/O144

8.3小结147

第9章PCI Express和Thunderbolt148

9.1 I/O Kit中的PCI150

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启用MSI166

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.4IODMACommand类173

94小结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 OSX串行端口体系结构概览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 Audio217

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内核控制KPI242

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 KDB340

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内核控制KPI359

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

热门推荐