`

OS X与iOS内核编程

阅读更多
《OS X与iOS内核编程》
基本信息
原书名:OS X and iOS kernel programming
作者: (澳)哈尔沃森(Halvorsen,O.H.) (澳)克拉克(Clarke,D.)
译者: 贾伟
丛书名: 图灵程序设计丛书
出版社:人民邮电出版社
ISBN:9787115318244
上架时间:2013-5-16
出版日期:2013 年6月
开本:16开
页码:1
版次:1-1
所属分类:计算机
更多关于 》》》《OS X与iOS内核编程
内容简介
计算机书籍
  《os x与ios内核编程》面向mac os x 和ios 操作系统,介绍了操作系统和内核架构等基础知识,以及内存管理、线程同步、i/o kit 框架等基本概念。通过最贴近实战的方法帮助读者编写高效的内核级代码。本书两位作者具备丰富的计算机硬软件以及设备驱动程序开发经验,在他们的指引下,读者定能为usb 和thunderbolt 等设备开发设备驱动程序。
   如果你对ios 和mac os x 操作系统感兴趣,关注内核开发实践,或者你是驱动程序开发人员,那么本书适合你阅读。
   与传统的用户应用程序开发不同,内核环境更加复杂多变,任何问题都会严重影响系统的稳定性、安全性和性能,所以一定要确保内核代码中没有任何错误。本书介绍了非常实用的内核开发方法,是xnu内核开发者必备的“九阴真经”。
   《os x与ios内核编程》两位作者都活跃在计算机软硬件以及驱动程序开发一线,具有丰富的实战经验。ole henry halvorsen是最早一批为usb 3.0和thunderbolt创建视频硬件设备的开发人员。douglas clarke具有15年以上的麦金塔计算机专业软硬件开发经验。本书汇集了两位作者多年的实战经验与智慧感悟,展现了一幅xnu内核编程与设备驱动程序开发的斑斓画卷。相信在作者循循善诱、通俗易懂的讲解下,读者定能为书中的精彩内容深深吸引,渐入化境,在不知不觉中炼就内核开发的绝世武功。
   如果你对ios和mac os x操作系统感兴趣,关注内核开发,或者你本身就是驱动程序开发人员,那么如此精彩的一本好书绝对不容错过。
目录
《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
图书信息来源:中国互动出版网

分享到:
评论

相关推荐

    OS X与IOS内核编程.pdf

    《OS X与iOS内核编程》是一本深入探讨苹果操作系统内核的专业书籍,主要针对Mac OS X(现称为macOS)和iOS系统。在苹果的设备上,无论是台式机、笔记本还是移动设备,其核心操作系统都基于Darwin,一个开放源代码的...

    OS X与IOS内核编程.pdf.zip

    《OS X与iOS内核编程》是一本深入探讨苹果操作系统内核的专业书籍,涵盖了OS X和iOS两大平台。这本书旨在帮助开发者和系统工程师理解这两款操作系统的核心机制,从而能够更高效地进行系统优化、安全性和性能提升等...

    OS X与IOS内核编程

    《OS X与iOS内核编程》是一本深入探讨苹果操作系统内核开发的书籍,它涵盖了OS X和iOS这两个苹果主流操作系统的核心技术。本书分为两部分,中文版和英文原版,分别为《OS X与iOS内核编程123.pdf》和《OS X and iOS ...

    OS X和iOS核心编程(Apress.OS.X.and.iOS.Kernel.Programming)

    《OS X和iOS核心编程》是一本深入探讨Apple操作系统内核技术的专业书籍,涵盖了OS X与iOS两大平台。这本书共18章,旨在帮助开发者理解并掌握操作系统底层的工作原理,特别是涉及USB、串行端口驱动及USB驱动程序的...

    OS X与IOS内核编程(英文PDF原版-OS.X.and.iOS.Kernel.Programming.Dec.2011)

    本书汇集了两位作者多年的实战经验与智慧感悟,展现了一幅XNU内核编程与设备驱动程序开发的斑斓画卷。相信在作者循循善诱、通俗易懂的讲解下,读者定能为书中的精彩内容深深吸引,渐入化境,在不知不觉中炼就内核...

    OS X与IOS内核编程【填补XUN内核开发实践图书的市场空白 】

    版 次:5 印刷时间:2013年06月01日 包 装:平装 国际标准书号ISBN:9787115318244 丛书名:图灵程序设计丛书 ...**专注XNU内核开发实践的图书 一线设备驱动程序开发人员现身说法 轻松理解内核开发的复杂难懂之处

    OS X及IOS内核编程

    ### OS X及iOS内核编程相关知识点 #### 一、引言 内核编程是一项具有挑战性的任务,它与编写传统的用户应用程序大相径庭。内核环境更加不稳定且复杂,因此在编写内核代码时必须格外小心,确保其无误,因为任何问题...

    OSX-and-iOS-Kernel-Programming:来自 OS X 和 iOS 内核编程书籍的代码

    OS X 与iOS 内核编程不要忘记使用sudo Don't forget use sudo uname -r 查看系统内核版本sudo chown -R root:wheel HelloWorld.kext 更改权限sudo kextload HelloWorld.kext 加载内核扩展kextstat 查看当前内核扩展...

    OS X and iOS Kernel Programming

    总结来看,《OS X and iOS Kernel Programming》是一本全面覆盖OS X和iOS内核编程理论与实践的书籍。它不仅适用于想要深入了解苹果操作系统内核工作的开发者,也适用于那些希望开发出高效设备驱动程序和硬件控制软件...

    Mac OS X and iOS Internals

    第八章详细解析了 OS X 和 iOS 内核的架构,包括 XNU(XNU 是 OS X 和 iOS 内核的核心名称)。XNU 结合了 Mach 微内核、BSD 层和 I/O Kit 的功能,这部分内容对于理解内核如何管理和调度资源至关重要。 ##### 3.2 ...

    苹果OSX和iOS内核编程

    本书《苹果OSX和iOS内核编程》由Ole Henry Halvorsen与Douglas Clarke共同编写,为读者提供了深入理解苹果操作系统内核(包括OSX和iOS)的基础理论与实践技能。以下是对该书中各章节涉及的重要知识点的详细解析: 1...

    OS X and iOS KernelProgramming

    《OS X和iOS内核编程》是一本深入探讨Apple操作系统内核开发的书籍,涵盖了从基本概念到高级技术的广泛内容。在OS X和iOS这两个苹果公司的主要操作系统中,内核是系统的基石,负责管理硬件资源,提供系统服务,并...

    OS X and iOS Kernel Programming.pdf

    根据提供的文件信息,本书《OS X 和 iOS Kernel Programming》由 Ole Henry Halvorsen 和 Douglas Clarke 著作,旨在帮助读者掌握 OS X 和 iOS 内核编程的基础知识和技术细节。接下来,我们将从书中的各个章节提取...

    OSX_and_iOS_Kernel_Prog:源代码形式的书“ OS X和iOS内核编程”-Form source code

    《OS X和iOS内核编程》是一本深入探讨苹果操作系统内核开发的书籍,源代码形式的呈现方式为读者提供了亲自动手实践的机会。这本书涵盖了从基础到高级的内核编程概念,对于想要深入理解Apple操作系统底层工作原理的...

    OS X and iOS Kernel Programming2011年

    接着,书中详细讲解了Mach微内核,这是OS X和iOS内核的基础。Mach内核提供了诸如任务、端口、服务器等抽象概念,这些概念是理解苹果系统内核工作原理的关键。此外,还涉及到了BSD层,它是Mach内核上的一层,提供了...

    Mac OS X and iOS Internals--非扫描版.7z

    1. **系统架构**:Mac OS X和iOS都是基于Darwin操作系统,一个开源的类Unix系统,它包含了FreeBSD的内核和工具集。书中会详细介绍这两个系统的微内核架构,如Mach和XNU内核。 2. **内存管理**:书中可能会讨论如何...

    Apress.OS.X.and.iOS.Kernel.Programming.2011

    《Apress.OS.X.and.iOS.Kernel.Programming.2011》是一本深入探讨苹果操作系统内核编程技术的专业书籍。本书旨在为开发者提供一个全面理解OS X(现称为macOS)和iOS操作系统的内核机制的平台,帮助他们掌握如何在...

Global site tag (gtag.js) - Google Analytics