首页 > 图书中心 > Mac OS X 技术内幕

目录

目??录

第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

目??录

  

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘