目录
目??录
第1章 Mac OS X起源 1
1.1 Apple对操作系统的探求 1
1.1.1 Star Trek 2
1.1.2 Raptor 2
1.1.3 NuKernel 3
1.1.4 TalOS 3
1.1.5 Copland 3
1.1.6 Gershwin 5
1.1.7 BeOS 5
1.1.8 A计划 6
1.2 NeXT篇章 7
1.2.1 NEXTSTEP 7
1.2.2 OpenStep 10
1.3 Mach因素 11
1.3.1 罗切斯特智能网关 11
1.3.2 Accent 12
1.3.3 Mach 13
1.3.4 MkLinux 16
1.3.5 音乐名称 17
1.4 战略 17
1.4.1 Mac OS 8和
???Mac OS 9 18
1.4.2 Rhapsody 20
1.5 朝着Mac OS X前进 22
1.5.1 Mac OS X Server 1.x 23
1.5.2 Mac OS X Developer
?? ?Previews 23
1.5.3 Mac OS X Public Beta
???版本 24
1.5.4 Mac OS X 10.x 25
第2章 Mac OS X概述 30
2.1 固件 31
2.2 引导加载程序 32
2.3 Darwin 32
2.3.1 Darwin程序包 32
2.3.2 Darwin的优点 33
2.3.3 Darwin和Mac OS X 33
2.4 xnu内核 33
2.4.1 Mach 34
2.4.2 BSD 35
2.4.3 I/O Kit 36
2.4.4 libkern库 37
2.4.5 libsa库 38
2.4.6 Platform Export 38
2.4.7 内核扩展 39
2.5 文件系统的用户空间视图 39
2.5.1 文件系统域 40
2.5.2 /System/Library/目录 40
2.6 运行时体系结构 42
2.6.1 Mach-O文件 43
2.6.2 胖二进制文件 45
2.6.3 链接 48
2.7 C库 52
2.8 捆绑组件和框架 54
2.8.1 捆绑组件 54
2.8.2 属性列表文件 58
2.8.3 框架 59
2.8.4 预绑定 62
2.9 Core Services 64
2.10 应用程序服务 65
2.10.1 图形和多媒体服务 65
2.10.2 其他应用程序服务 72
2.11 应用程序环境 73
2.11.1 BSD 73
2.11.2 X Window System 74
2.11.3 Carbon 74
2.11.4 Cocoa 76
2.11.5 WebObjects 81
2.11.6 Java 81
2.11.7 QuickTime 82
2.11.8 Classic 82
2.11.9 Rosetta 83
2.12 用户界面 84
2.12.1 可视化效果 84
2.12.2 与分辨率无关的
??? 用户界面 85
2.12.3 效率特性 85
2.12.4 通用访问支持 86
2.13 编程 87
2.13.1 Xcode 87
2.13.2 编译器和库 89
2.13.3 解释器 89
2.13.4 工具 92
2.14 安全 94
2.14.1 内核空间的安全 95
2.14.2 用户空间的安全 96
2.14.3 系统管理 100
2.14.4 审计系统 103
2.15 Mac OS X Server 105
2.15.1 Xgrid 105
2.15.2 Xsan 108
2.16 网络 111
第3章 Apple内幕 112
3.1 Power Mac G5 113
3.1.1 U3H系统控制器 113
3.1.2 K2 I/O设备控制器 114
3.1.3 PCI-X和PCI
???Express 115
3.1.4 HyperTransport 117
3.1.5 Elastic I/O互连 118
3.2 G5:血统和路线图 120
3.2.1 G5的基本方面 121
3.2.2 新一代POWER 122
3.2.3 PowerPC 970、970FX
???和970MP 123
3.2.4 Intel Core Duo 125
3.3 PowerPC 970FX 125
3.3.1 基本知识 125
3.3.2 缓存 126
3.3.3 内存管理单元
?? (MMU) 130
3.3.4 各式各样的内部
???缓冲区和队列 133
3.3.5 预取 134
3.3.6 寄存器 135
3.3.7 重命名寄存器 141
3.3.8 指令集 142
3.3.9 970FX核心 146
3.3.10 AltiVec 153
3.3.11 电源管理 158
3.3.12 64位体系结构 160
3.3.13 软补丁功能 161
3.4 软件约定 161
3.4.1 字节序 162
3.4.2 寄存器使用 163
3.4.3 栈使用 166
3.4.4 函数形参和返回值 172
3.5 示例 173
3.5.1 递归阶乘函数 174
3.5.2 原子式比较和存储
???函数 177
3.5.3 函数重定向 179
3.5.4 970FX的周期精确
???的模拟 188
第4章 固件和引导加载程序 193
4.1 简介 193
4.1.1 固件的种类 194
4.1.2 优先存储 194
4.2 全新的世界 195
4.2.1 “新”是好消息 196
4.2.2 现代的Boot ROM
?? (PowerPC) 197
4.3 上电复位 199
4.4 Open Firmware 199
4.4.1 与Open Firmware
???交互 200
4.4.2 Open Firmware
???仿真器 204
4.5 Forth 204
4.5.1 基本单元 204
4.5.2 栈 204
4.5.3 字 205
4.5.4 字典 206
4.5.5 调试 212
4.6 设备树 213
4.6.1 属性 216
4.6.2 方法 220
4.6.3 数据 220
4.7 Open Firmware接口 221
4.7.1 用户接口 222
4.7.2 客户接口 222
4.7.3 设备接口 222
4.8 编程示例 222
4.8.1 转储NVRAM内容 223
4.8.2 确定屏幕尺寸 224
4.8.3 处理颜色 224
4.8.4 绘制颜色填充的
???矩形 225
4.8.5 创建“汉诺塔”问题
???的动画式解决方案 226
4.8.6 创造和使用鼠标
???指针 236
4.8.7 窃取字体 239
4.8.8 实现时钟 241
4.8.9 绘制图像 242
4.8.10 创建窗口 243
4.9 固件引导序列 244
4.9.1 脚本 246
4.9.2 锁键 246
4.10 BootX 247
4.10.1 文件格式 247
4.10.2 结构 249
4.10.3 操作 249
4.11 备用的引导方案 257
4.11.1 引导备用内核 257
4.11.2 从软件RAID设备
??? 引导 259
4.11.3 通过网络引导 262
4.12 固件安全 264
4.12.1 管理固件安全 264
4.12.2 找回Open Firmware
??? 密码 266
4.13 启动内核 266
4.14 BootCache优化 267
4.15 引导时的内核参数 268
4.16 EFI 273
4.16.1 遗留的伤痛 273
4.16.2 新的开始 275
4.16.3 EFI 276
4.16.4 EFI的抽样 278
4.16.5 EFI的好处 285
第5章 内核和用户级启动 287
5.1 安排内核执行 287
5.1.1 异常和异常矢量 288
5.1.2 内核符号 290
5.1.3 运行内核 291
5.2 低级处理器初始化 292
5.2.1 每个处理器的数据 292
5.2.2 复位类型 296
5.2.3 处理器类型 298
5.2.4 内存补丁 301
5.2.5 特定于处理器的
???初始化 303
5.2.6 其他早期的初始化 304
5.3 高级处理器初始化 307
5.3.1 在虚拟内存之前 308
5.3.2 低级虚拟内存
???初始化 311
5.3.3 在虚拟内存之后 316
5.4 Mach子系统初始化 320
5.4.1 调度器初始化 322
5.4.2 高级虚拟内存子系统
???初始化 322
5.4.3 IPC初始化 327
5.4.4 完成VM和IPC
???初始化 327
5.4.5 初始化其他的子系统 328
5.4.6 任务和线程 328
5.4.7 启动内核自举线程 329
5.5 第一个线程 329
5.6 I/O Kit初始化 331
5.7 BSD初始化 338
5.7.1 其他的BSD初始化
?? (第1部分) 339
5.7.2 文件系统初始化 341
5.7.3 其他的BSD初始化
?? (第2部分) 342
5.7.4 网络子系统初始化 343
5.7.5 其他的BSD初始化
?? (第3部分) 346
5.7.6 挂接根文件系统 348
5.7.7 创建进程1 355
5.7.8 共享内存区域 357
5.8 启动第一个用户空间的
???程序 359
5.9 从处理器 360
5.10 用户级启动 362
5.10.1 launchd 362
5.10.2 多用户启动 374
5.10.3 单用户启动 382
5.10.4 安装启动 382
第6章 xnu内核 386
6.1 xnu源 386
6.2 Mach 391
6.2.1 内核基础 392
6.2.2 异常处理 396
6.3 Mach API的性质 397
6.3.1 显示主机信息 397
6.3.2 访问内核的时钟
???服务 399
6.3.3 使用时钟服务发出
???警报 402
6.3.4 显示主机统计信息 404
6.4 进入内核 407
6.4.1 控制转移的类型 408
6.4.2 实现系统进入机制 410
6.5 异常处理 418
6.5.1 硬件中断 423
6.5.2 各种陷阱 424
6.5.3 系统调用 426
6.6 系统调用处理 426
6.7 系统调用类别 429
6.7.1 BSD系统调用 429
6.7.2 Mach陷阱 446
6.7.3 I/O Kit陷阱 453
6.7.4 仅支持PowerPC的
???系统调用 453
6.7.5 超快陷阱 454
6.7.6 公共页 460
6.8 对调试、诊断和跟踪的
??内核支持 467
6.8.1 GDB(基于网络或
???者基于FireWire的
???调试) 467
6.8.2 KDB(基于串行线路
???的调试) 468
6.8.3 CHUD支持 470
6.8.4 内核分析(kgmon和
???gprof) 476
6.8.5 每个进程的内核
???跟踪(ktrace(2)和
???kdump) 480
6.8.6 审计支持 482
6.8.7 细粒度的内核事件
???跟踪(kdebug) 486
6.8.8 低级诊断和调试
???接口 499
6.8.9 低级内核跟踪 508
6.9 虚拟机监视器 516
6.9.1 特性 517
6.9.2 使用VMM设施 518
6.9.3 示例:在虚拟机中
???运行代码 519
6.10 编译内核 533
6.10.1 获取必要的
??? 程序包 533
6.10.2 编译必要的
??? 程序包 534
6.10.3 编译xnu程序包 536
6.10.4 DarwinBuild 536
第7章 进程 538
7.1 进程:从早期的UNIX到
?? Mac OS X 538
7.1.1 Mac OS X进程
???限制 539
7.1.2 Mac OS X执行
???风格 540
7.2 Mach抽象、数据结构和
??API 541
7.2.1 关系总结 542
7.2.2 处理器集 542
7.2.3 处理器 544
7.2.4 任务和任务API 553
7.2.5 线程 555
7.2.6 线程相关的抽象 561
7.3 新系统的许多线程 571
7.3.1 Mach任务和线程 572
7.3.2 BSD进程 592
7.3.3 POSIX线程
?? (Pthreads) 602
7.3.4 Java线程 604
7.3.5 Cocoa中的NSTask
???类 605
7.3.6 Cocoa中的NSThread
???类 606
7.3.7 Carbon Process
???Manager 609
7.3.8 Carbon Multiprocessing
???Services 611
7.3.9 Carbon Thread
???Manager 613
7.4 调度 616
7.4.1 调度基础设施
???初始化 616
7.4.2 调度器操作 628
7.4.3 调度策略 639
7.5 execve()系统调用 647
7.5.1 Mach-O二进制文件 650
7.5.2 胖(通用)二进制
???文件 658
7.5.3 解释器脚本 658
7.6 启动应用程序 660
7.6.1 把实体映射到处理
???程序 660
7.6.2 统一类型标识符 662
第8章 内存 665
8.1 回顾 665
8.1.1 虚拟内存和UNIX 665
8.1.2 虚拟内存和
???个人计算 666
8.1.3 Mac OS X虚拟内存
???子系统的根源 666
8.2 Mac OS X内存管理概览 667
8.2.1 从用户空间中读取
???内核内存 669
8.2.2 查询物理内存大小 673
8.3 Mach VM 674
8.3.1 概述 674
8.3.2 任务地址空间 676
8.3.3 VM映射 677
8.3.4 VM映射条目 677
8.3.5 VM对象 677
8.3.6 分页器 679
8.3.7 写时复制 685
8.3.8 物理映射(pmap) 687
8.4 驻留内存 690
8.4.1 vm_page结构 690
8.4.2 搜索驻留页 691
8.4.3 驻留页队列 692
8.4.4 页置换 692
8.4.5 物理内存簿记 693
8.4.6 页错误 696
8.5 自举期间的虚拟内存
??初始化 697
8.6 Mach VM用户空间的接口 698
8.6.1 mach_vm_map() 700
8.6.2 mach_vm_remap() 703
8.6.3 mach_vm_allocate() 703
8.6.4 mach_vm_
???deallocate() 703
8.6.5 mach_vm_protect() 704
8.6.6 mach_vm_inherit() 704
8.6.7 mach_vm_read() 704
8.6.8 mach_vm_write() 705
8.6.9 mach_vm_copy() 706
8.6.10 mach_vm_wire() 706
8.6.11 mach_vm_behavior_
??? set() 706
8.6.12 mach_vm_msync() 708
8.6.13 统计 709
8.7 使用Mach VM接口 710
8.7.1 控制内存继承 710
8.7.2 调试Mach VM
???子系统 713
8.7.3 保护内存 714
8.7.4 访问另一个任务的
???内存 715
8.7.5 命名和共享内存 718
8.8 内核和用户地址空间布局 724
8.9 通用页列表(UPL) 726
8.10 统一缓冲区缓存
??(UBC) 727
8.10.1 UBC接口 729
8.10.2 NFS缓冲区缓存 730
8.11 动态分页器程序 732
8.12 更新守护进程 734
8.13 系统共享内存 735
8.13.1 共享内存的应用 735
8.13.2 Shared Memory
?????Server子系统的
??? 实现 738
8.13.3 动态链接器的共享
????目标文件加载 742
8.13.4 通过系统应用程序
??? 使用shared_region_
?????map_file_np() 745
8.13.5 关于预绑定的
??? 注释 751
8.14 任务工作集检测和维护 752
8.14.1 TWS机制 752
8.14.2 TWS实现 753
8.15 用户空间中的内存分配 757
8.15.1 历史性突破 757
8.15.2 内存分配器内幕 759
8.15.3 malloc()例程 771
8.15.4 最大的单个分配
???(32位) 773
8.15.5 最大的单个分配
???(64位) 774
8.15.6 枚举所有指针 775
8.15.7 显示可伸缩区域的
??? 统计信息 778
8.15.8 记录malloc操作 780
8.15.9 实现malloc层 783
8.16 内核中的内存分配 784
8.16.1 页级分配 784
8.16.2 kmem_alloc 787
8.16.3 Mach区域
????分配器 788
8.16.4 kalloc函数家族 794
8.16.5 OSMalloc函数
??? 家族 795
8.16.6 I/O Kit中的内存
??? 分配 796
8.16.7 内核的BSD部分的
??? 内存分配 799
8.16.8 libkern的C++环境
??? 中的内存分配 801
8.17 内存映射的文件 802
8.18 64位计算 809
8.18.1 引入64位计算的
??? 原因 810
8.18.2 Mac OS X 10.4:
?????64位用户地址
??? 空间 813
8.18.3 为什么不使用
?????64位的可执行
??? 文件 817
8.18.4 64位“场景” 817
第9章 进程间通信 818
9.1 简介 818
9.1.1 IPC的演化 819
9.1.2 Mac OS X中的IPC 820
9.2 Mach IPC:概述 821
9.2.1 Mach端口 822
9.2.2 Mach IPC消息 825
9.3 Mach IPC:Mac OS X
???实现 832
9.3.1 IPC空间 833
9.3.2 Mach端口的构成 835
9.3.3 任务和IPC 838
9.3.4 线程和IPC 840
9.3.5 端口分配 841
9.3.6 消息传递实现 846
9.3.7 IPC子系统初始化 848
9.4 名称服务器和自举服务器 850
9.4.1 网络消息服务器 850
9.4.2 自举服务器 851
9.4.3 自举服务器API 854
9.5 使用Mach IPC 864
9.5.1 简单的客户-服务器
???示例 865
9.5.2 死名 869
9.5.3 端口集 870
9.5.4 介入 872
9.5.5 传输页外内存和
???端口权限 874
9.6 MIG 878
9.6.1 MIG规范文件 879
9.6.2 使用MIG创建
???客户-服务器系统 882
9.6.3 内核中的MIG 890
9.7 Mach异常 893
9.7.1 Mach的异常处理
???设施的程序员可见
???的方面 895
9.7.2 Mach异常处理链 898
9.7.3 示例:Mach异常
???处理程序 902
9.8 信号 908
9.8.1 可靠性 909
9.8.2 信号的数量 910
9.8.3 应用程序定义的
???信号 910
9.8.4 异步I/O的基于
???信号的通知 910
9.8.5 信号和多线程 913
9.8.6 信号动作 913
9.8.7 信号生成和递送 915
9.8.8 Mach异常与UNIX
???信号共存 917
9.8.9 异常、信号和调试 919
9.8.10 ptrace()系统调用 920
9.9 管道 920
9.10 命名管道(fifo) 921
9.11 文件描述符传递 922
9.12 XSI IPC 929
9.13 POSIX IPC 929
9.13.1 POSIX信号量 930
9.13.2 POSIX共享内存 934
9.14 Distributed Objects 938
9.15 Apple Events 945
9.15.1 在AppleScript中
??? 使用Apple Events
??? 平铺应用程序
??? 窗口 947
9.15.2 在C程序中构建和
??? 发送Apple Event 949
9.15.3 通过发送Apple
??? ?Event导致系统
??? ?睡眠 951
9.16 通知 953
9.16.1 Foundation通知 953
9.16.2 notify(3) API 956
9.16.3 内核事件通知机制
???(kqueue(2)) 963
9.16.4 Core Foundation
????通知 967
9.16.5 fsevents 967
9.16.6 kauth 967
9.17 Core Foundation IPC 967
9.17.1 通知 968
9.17.2 运行循环 971
9.18 同步 980
9.18.1 用于原子操作的
??? 接口 981
9.18.2 低级锁定 982
9.18.3 BSD条件变量 985
9.18.4 Mach锁集 986
9.18.5 Mach信号量 986
9.18.6 Pthreads同步
??? 接口 990
9.18.7 I/O Kit中的锁定 990
9.18.8 漏斗 991
9.18.9 SPL 996
9.18.10 劝告模式的文件
????锁定 996
第10章 扩展内核 999
10.1 沿着内存通道的驱动程序 999
10.1.1 驱动程序编程
??? 被认为是困难的 999
10.1.2 良好的继承 999
10.1.3 一切都是文件 1000
10.1.4 扩展内核不仅仅
????是驱动设备 1000
10.2 I/O Kit 1000
10.2.1 嵌入式C++ 1002
10.2.2 I/O Kit类层次
??? 结构 1003
10.2.3 I/O Kit家族 1004
10.2.4 I/O Kit驱动程序 1005
10.2.5 结点 1006
10.2.6 一般I/O Kit类 1006
10.2.7 工作循环 1008
10.2.8 I/O Registry 1013
10.2.9 I/O Catalog 1014
10.2.10 I/O Kit初始化 1014
10.2.11 I/O Kit中的
????驱动程序匹配 1016
10.3 DART 1017
10.4 动态扩展内核 1018
10.4.1 内核扩展的结构 1018
10.4.2 内核扩展的创建 1019
10.4.3 内核扩展的管理 1024
10.4.4 内核扩展的自动
??? 加载 1025
10.5 与内核通信 1026
10.6 创建内核扩展 1027
10.6.1 通用内核扩展 1027
10.6.2 使用通用kext
??? 实现sysctl变量 1031
10.6.3 I/O Kit设备驱动
??? 程序kext 1035
10.7 I/O Kit功能的编程之旅 1042
10.7.1 旋转帧缓冲区 1042
10.7.2 访问帧缓冲区
??? 内存 1046
10.7.3 获取固件变量的
??? 列表 1048
10.7.4 获取关于加载的
??? 内核扩展的信息 1049
10.7.5 从SMS获取加速
??? 计数据 1051
10.7.6 列出PCI设备 1055
10.7.7 获取计算机的序号
??? 和型号信息 1056
10.7.8 获取温度传感器
??? 读数 1057
10.7.9 获取以太网接口
??? 的MAC地址 1060
10.7.10 实现一种加密式
????磁盘过滤方案 1062
10.8 调试 1073
10.8.1 内核恐慌 1073
10.8.2 远程核心转储 1074
10.8.3 日志记录 1075
10.8.4 使用GDB进行
??? 调试 1078
10.8.5 使用KDB进行
??? 调试 1080
10.8.6 各种各样的调试
??? 工具 1085
10.8.7 stabs 1086
第11章 文件系统 1092
11.1 磁盘和分区 1092
11.1.1 Apple分区方案 1095
11.1.2 PC风格的分区 1097
11.1.3 基于GUID的
??? 分区 1098
11.2 Disk Arbitration 1098
11.2.1 获取磁盘的描述 1100
11.2.2 参与磁盘挂接
??? 决策 1102
11.2.3 从I/O Kit接收
??? 媒体通知 1103
11.3 磁盘设备的实现 1106
11.4 磁盘映像 1110
11.4.1 使用hdiutil程序 1110
11.4.2 RAM磁盘 1113
11.4.3 BSD虚拟结点
??? 磁盘驱动程序 1113
11.4.4 从头开始创建
??? 虚拟磁盘 1114
11.5 文件和文件描述符 1116
11.6 VFS层 1118
11.7 文件系统类型 1127
11.7.1 HFS+和HFS 1128
11.7.2 ISO 9660 1129
11.7.3 MS-DOS 1130
11.7.4 NTFS 1131
11.7.5 UDF 1131
11.7.6 UFS 1131
11.7.7 AFP 1133
11.7.8 FTP 1134
11.7.9 NFS 1135
11.7.10 SMB/CIFS 1135
11.7.11 WebDAV 1136
11.7.12 cddafs 1136
11.7.13 deadfs 1138
11.7.14 devfs 1139
11.7.15 fdesc 1139
11.7.16 specfs和fifofs 1140
11.7.17 synthfs 1141
11.7.18 联合 1142
11.7.19 volfs 1144
11.8 Spotlight 1145
11.8.1 Spotlight的体系
??? 结构 1146
11.8.2 fsevents机制 1151
11.8.3 导入元数据 1163
11.8.4 查询Spotlight 1165
11.8.5 Spotlight命令行
??? 工具 1173
11.8.6 克服粒度限制 1173
11.9 访问控制列表 1175
11.10 kauth授权子系统 1178
11.10.1 kauth概念 1179
11.10.2 实现 1182
11.10.3 虚拟结点级
??? 文件系统活动
????监视器 1184
第12章 HFS+文件系统 1201
12.1 分析工具 1202
12.1.1 HFSDebug 1202
12.1.2 用于获取文件
??? 系统基本属性的
??? 接口 1204
12.1.3 Mac OS X命令
??? 行工具 1204
12.1.4 HFS+源和技术
??? 说明TN1150 1204
12.2 基本概念 1205
12.2.1 卷 1205
12.2.2 分配块 1206
12.2.3 区段 1206
12.2.4 文件分支 1207
12.2.5 簇 1208
12.2.6 B树 1208
12.3 HFS+卷的结构 1215
12.4 保留区域 1216
12.5 卷头 1217
12.5.1 查看卷头 1217
12.5.2 查看卷控制块 1222
12.6 HFS包装器 1223
12.7 特殊文件 1226
12.7.1 分配文件 1226
12.7.2 编目文件 1230
12.7.3 区段溢出文件 1237
12.7.4 基本属性文件 1242
12.7.5 启动文件 1247
12.8 检查HFS+特性 1247
12.8.1 大小写敏感性 1247
12.8.2 文件名编码 1249
12.8.3 权限 1250
12.8.4 日志记录 1254
12.8.5 配额 1260
12.8.6 硬链接 1261
12.8.7 解除链接打开的
??? 文件 1265
12.8.8 符号链接 1266
12.8.9 别名 1267
12.8.10 资源分支 1268
12.9 优化 1270
12.9.1 即时的碎片整理 1270
12.9.2 元数据区域 1273
12.9.3 热文件群集 1274
12.10 其他各种特性 1280
12.10.1 特殊的系统
????调用 1280
12.10.2 冻结和解冻卷 1280
12.10.3 扩展和收缩卷 1281
12.10.4 卷通知 1281
12.10.5 对稀疏设备的
????支持 1283
12.11 比较Mac OS X文件
???系统 1284
12.12 比较HFS+与NTFS 1290
附录A 基于x86的Macintosh计算
????机上的Mac OS X 1293
A.1 硬件区别 1293
A.2 固件和引导 1294
A.3 分区 1295
A.4 通用二进制文件 1296
A.5 Rosetta 1297
A.6 字节序 1299
A.7 其他各种改变 1299
A.7.1 无双重映射的
???内核地址空间 1299
A.7.2 不可执行的栈 1299
A.7.3 线程创建 1300
A.7.4 系统调用 1301
A.7.5 没有/dev/mem或
????/dev/kmem 1302
A.7.6 新的I/O Kit平面 1302
20
Mac OS X技术内幕
19
目??录