图书介绍

深入解析Mac OS XiOS操作系统2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

深入解析Mac OS XiOS操作系统
  • (美)JONATHANLEVIN著;郑思遥,房佩慈译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302348672
  • 出版时间:2014
  • 标注页数:713页
  • 文件大小:315MB
  • 文件页数:737页
  • 主题词:操作系统

PDF下载


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

下载说明

深入解析Mac OS XiOS操作系统PDF格式电子书版下载

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

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

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

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

图书目录

第Ⅰ部分 高级用户指南3

第1章 达尔文主义:OS X的进化史3

1.1前达尔文时代:Mac OS Classic3

1.2浪子回头:NeXTSTEP4

1.3走进新时代:OS X操作系统4

1.4迄今为止的所有OS X版本5

1.4.1 10.0——Cheetah,初出茅庐5

1.4.2 10.1——Puma,更强大5

1.4.3 10.2——Jaguar,渐入佳境6

1.4.4 10.3—— Panther和Safari6

1.4.5 10.4——Tiger,转投Intel的怀抱6

1.4.6 10.5—— Leopard和UNIX6

1.4.7 10.6——Snow Leopard7

1.4.8 10.7——Lion7

1.4.9 10.8——Mountain Lion8

1.5 iOS——走向移动平台的OS X9

1.5.1 1.x——Heavenly,第一代iPhone9

1.5.2 2.x——App Store、3G和企业级的特性10

1.5.3 3.x——告别第一代,迎来iPad10

1.5.4 4.x—— iPhone 4.Apple TV和iPad 210

1.5.5 5.x—— iPhone 4S和更新的硬件11

1.5.6 iOS和OS X对比11

1.6 OS X的未来13

1.7本章小结14

参考文献15

第2章 合众为一:OS X和iOS的架构17

2.1 OS X架构概述17

2.2用户体验层19

2.2.1 Aqua19

2.2.2 QuickLook20

2.2.3 Spotlight21

2.3 Darwin—— UNIX核心22

2.3.1 Shell22

2.3.2文件系统23

2.4 UNIX的系统目录23

2.4.1 OS X特有的目录24

2.4.2 iOS文件系统的区别25

2.5 bundle25

2.6应用程序和app26

2.6.1 Info.plist27

2.6.2 Resources目录29

2.6.3 NIB文件29

2.6.4通过.lproj文件实现国际化30

2.6.5图标文件(.icns)30

2.6.6 CodeResources30

2.7框架33

2.7.1框架bundle格式33

2.7.2 OS X和iOS公共框架列表35

2.8库41

2.9其他应用程序类型43

2.9.1 Java(仅限于OS X)43

2.9.2 Widget43

2.9.3 BSD/Mach原生程序44

2.10系统调用44

2.10.1 POSLX44

2.10.2 Mach系统调用45

2.11 XNU概述47

2.11.1 Mach47

2.11.2 BSD层48

2.11.3 libkern48

2.11.4 I/O Kit48

2.12本章小结48

参考文献49

第3章 站在巨人的肩膀上:OS X和iOS使用的技术51

3.1 BSD相关的特性51

3.1.1 sysctl51

3.1.2 kqueue53

3.1.3审计(OS X)54

3.1.4强制访问控制57

3.2 OS X和iOS特有的技术60

3.2.1用户和组的管理(OS X)60

3.2.2系统配置62

3.2.3记录日志64

3.2.4 Apple事件和AppleScript66

3.2.5 FSEvents68

3.2.6通知73

3.2.7其他重要的API73

3.3 OS X和iOS的安全机制73

3.3.1代码签名74

3.3.2隔离机制(沙盒化)75

3.3.3 Entitlement:更严格的沙盒77

3.3.4沙盒机制的实施82

3.4本章小结83

参考文献84

第4章 庖丁解进程:Mach-O格式、进程以及线程内幕85

4.1关键概念回顾85

4.1.1进程和线程85

4.1.2进程生命周期86

4.1.3 UNIX信号89

4.2可执行文件91

4.3通用二进制格式92

4.3.1 Mach-O二进制格式95

4.3.2加载命令98

4.4动态库104

4.4.1启动时库的加载105

4.4.2库的运行时加载113

4.4.3 dyld的特性115

4.5进程地址空间120

4.5.1进程入口点120

4.5.2地址空间布局随机化121

4.5.3 32位地址空间(Intel)122

4.5.4 64位地址空间123

4.5.5 32位地址空间(iOS)123

4.6进程内存分配(用户态)128

4.6.1 alloca()128

4.6.2堆分配128

4.6.3虚拟内存——系统管理员的角度130

4.7线程132

参考文献134

第5章 进程跟踪和调试135

5.1 DTrace135

5.1.1 D语言135

5.1.2 dtruss138

5.1.3 DTrace工作原理139

5.2其他剖析机制142

5.2.1 CHUD的衰落142

5.2.2继任者AppleProfileFamily142

5.3进程信息143

5.3.1 sysctl143

5.3.2 proc info144

5.4进程和系统快照146

5.4.1 system_profiiler(8)146

5.4.2 sysd agnose(1)146

5.4.3 allmemory(1)147

5.4.4 stackshot(1)148

5.4.5 stack snapshot系统调用149

5.5 kdebug152

5.5.1基于kdebug的工具152

5.5.2 kdebug代码152

5.5.3写入kdebug消息154

5.5.4读取kdebug消息155

5.6应用程序崩溃156

5.6.1应用程序挂起和采样159

5.6.2内存破坏的bug160

5.7内存泄漏161

5.7.1 heap(1)162

5.7.2 leaks(1)162

5.7.3 malloc_ history(1)163

5.8标准UNIX工具163

5.8.1通过ps(I)列出进程列表164

5.8.2 top(1):系统全局视图164

5.8.3通过lsof 1)和fuser(1)进行文件诊断165

5.9使用GDB165

5.9.1 GDB的Darwin扩展166

5.9.2 GDB用于iOS166

5.9.3 LLDB166

5.10本章小结167

参考文献和深入阅读167

第6章 引导过程:EFI和iBoot169

6.1传统形式的引导169

6.2揭秘EFI171

6.2.1 E FI的基本概念171

6.2.2 EFI服务173

6.2.3 NVRAM变量177

6.3 OS X和boot.efii178

6.3.1 boot.efii的执行流程179

6.3.2引导内核185

6.3.3内核对 EFI的回调187

6.3.4 Lion中boot.efi的变化187

6.3.5 Boot Camp187

6.3.6 bless(8)188

6.4 iOS和iBoot192

6.4.1初期:引导ROM193

6.4.2普通引导194

6.4.3恢复模式引导195

6.4.4设备固件更新(DFU)模式195

6.4.5降级和回放攻击196

6.5安装镜像196

6.5.1 OS X安装过程196

6.5.2 iOS文件系统镜像(.ipsw文件)201

6.6本章小结206

参考文献和深入阅读206

第7章 贯穿始终——Iaunchd207

7.1 launchd207

7.1.1启动launchd207

7.1.2系统范围和用户范围的launchd208

7.1.3守护程序和代理程序208

7.1.4多面手launchd209

7.2 LaunchDaemon列表220

7.3 GUI shell程序224

7.3.1 Finder(OS X)224

7.3.2 SpringBoard(iOS)225

7.4 XPC(Lion和iOS)230

7.5本章小结234

参考文献和深入阅读235

第Ⅱ部分 内核239

第8章 内核架构239

8.1内核基础知识239

8.2用户态和内核态243

8.2.1 Intel架构—ring243

8.2.2 ARM架构—CPSR244

8.3内核态/用户态转换机制245

8.3.1 Intel上的陷阱处理程序246

8.3.2自愿的内核转换254

8.4系统调用的处理259

8.4.1 POSIX/BSD系统调用260

8.4.2 Mach陷阱263

8.4.3机器相关的调用267

8.4.4诊断调用268

8.5 XNU和硬件抽象270

8.6本章小结272

参考文献272

第9章 由生到死——内核引导和内核崩溃273

9.1 XNU源代码273

9.1.1获得源代码273

9.1.2 make XNU274

9.1.3一个内核,多种架构支持276

9.1.4 XNU源代码树278

9.2引导XNU281

9.2.1引导过程概览281

9.2.2 OS X: vstart282

9.2.3 iOS: start283

9.2.4 [i386|arm]_init283

9.2.5 i386_ init_slave()285

9.2.6 machine_startup285

9.2.7 kernel bootstrap286

9.2.8 kernel bootstrap_thread289

9.2.9 bsd init291

9.2.10 bsdinit task296

9.2.11睡眠和唤醒299

9.3引导参数300

9.4内核调试302

9.4.1“不要害怕”——避免panic303

9.4.2 panic的实现304

9.4.3 panic报告306

9.5本章小结310

参考文献310

第10章Mach原语:一切以消息为媒介311

10.1 Mach概述311

10.1.1 Mach设计原则312

10.1.2 Mach设计目标313

10.2 Mach消息313

10.2.1简单消息313

10.2.2复杂消息314

10.2.3发送消息315

10.2.4端口316

10.2.5 Mach接口生成器(MIG)318

10.3深入IPC323

10.4同步原语326

10.4.1锁组对象326

10.4.2互斥体对象327

10.4.3读写锁对象328

10.4.4自旋锁对象329

10.4.5信号量对象329

10.4.6锁集对象331

10.5机器原语332

10.5.1主机对象332

10.5.2时钟对象341

10.5.3处理器对象343

10.5.4处理器集对象346

10.6本章小结350

参考文献350

第11章 刹那之间——Mach调度351

11.1调度原语351

11.1.1线程351

11.1.2任务356

11.1.3任务和线程相关的API360

11.1.4任务相关的API361

11.1.5线程相关的API365

11.2调度369

11.2.1概述369

11.2.2优先级370

11.2.3运行队列373

11.3 Mach调度器的独特特性376

11.3.1控制权转交376

11.3.2续体376

11.3.3抢占模式378

11.3.4异步软件陷阱(AST)383

11.3.5调度算法386

11.4定时器中断389

11.4.1中断驱动的调度389

11.4.2 XNU中的定时器中断处理390

11.5异常394

11.5.1 Mach异常模型394

11.5.2实现细节395

11.6本章小结403

参考文献403

第12章Mach虚拟内存405

12.1虚拟内存架构405

12.1.1虚拟内存全貌405

12.1.2虚拟内存概述406

12.1.3用户态视角410

12.2物理内存管理419

12.2.1 pmap的API420

12.2.2 API在Intel架构上的实现示例421

12.3 Mach Zone423

12.3.1 Mach Zone的结构424

12.3.2引导期间的zone设置426

12.3.3 zone垃圾回收427

12.3.4 zone调试428

12.4内核内存分配器429

12.4.1 kernel_ memory_allocate()429

12.4.2 kmem_alloc()系列函数431

12.4.3 kalloc432

12.4.4 OSMalloc433

12.5 Mach分页器434

12.5.1 Mach分页器接口435

12.5.2 Universal Page List438

12.5.3分页器类型440

12.6分页策略管理447

12.6.1 Pageout守护程序448

12.6.2处理页错误450

12.6.3 dynamic_pager(8)(OS X)451

12.7本章小结452

参考文献452

第13章BSD层453

13.1 BSD简介453

13.1.1一统天下454

13.1.2 POSIX标准中的内容454

13.1.3实现BSD455

13.1.4 XNU不是完整的BSD455

13.2进程和线程455

13.2.1 BSD进程结构456

13.2.2进程列表和进程组458

13.2.3线程459

13.2.4对应到Mach461

13.3进程创建463

13.3.1用户态的角度463

13.3.2内核态的角度464

13.3.3加载和执行二进制文件467

13.3.4 Mach-O二进制文件472

13.4进程控制和跟踪475

13.4.1 ptrace (#26)475

13.4.2 proc_info (#336)476

13.4.3策略476

13.4.4进程挂起和恢复477

13.5信号478

13.5.1 UNIX异常处理程序478

13.5.2硬件产生的信号483

13.5.3软件产生的信号484

13.5.4受害者的信号处理484

13.6本章小结485

参考文献485

第14章 有新有旧:BSD高级功能487

14.1内存管理487

14.1.1 POSIX内存和页面管理系统调用487

14.1.2 BSD内部的内存函数489

14.1.3内存压力492

14.1.4 Jetsam(iOS)493

14.1.5内核地址空间布局随机化495

14.2工作队列496

14.3换个角度看BSD层499

14.3.1 sysctl499

14.3.2 kqueue501

14.3.3审计(OS X)503

14.3.4强制访问控制(MAC)504

14.4苹果的策略模块506

14.5本章小结509

参考文献509

第15章 文件系统和虚拟文件系统交换511

15.1磁盘设备和分区511

15.2通用文件系统的概念522

15.2.1文件522

15.2.2扩展属性522

15.2.3权限522

15.2.4时间戳522

15.2.5快捷方式和连接523

15.3苹果生态圈中的文件系统524

15.3.1苹果原生的文件系统524

15.3.2 DOS/Windows文件系统524

15.3.3 CD/DVD文件系统525

15.3.4基于网络的文件系统526

15.3.5伪文件系统528

15.4挂载文件系统(仅限于OS X)531

15.4.1 automount531

15.4.2磁盘仲裁531

15.5磁盘镜像文件533

15.5.1原始DMG文件533

15.5.2从磁盘镜像引导(Lion)534

15.6虚拟文件系统交换534

15.6.1文件系统条目535

15.6.2挂载条目535

15.6.3 vnode对象538

15.7 FUSE——用户空间的文件系统541

15.8进程的文件I/O操作543

15.9本章小结547

参考文献和深入阅读547

第16章 基于B树的HFS+文件系统549

16.1 HFS+文件系统概念549

16.1.1时间戳549

16.1.2访问控制表550

16.1.3扩展属性550

16.1.4 fork552

16.1.5压缩553

16.1.6 Unicode支持558

16.1.7 Finder集成558

16.1.8大小写敏感(HFSX)559

16.1.9日志560

16.1.10动态大小调节561

16.1.11元数据区域561

16.1.12热文件562

16.1.13动态碎片整理562

16.2 HFS+的设计概念564

16.3组件570

16.3.1 HFS+宗卷头571

16.3.2编录文件572

16.3.3 extent溢出文件579

16.3.4属性B树579

16.3.5热文件B树580

16.3.6分配文件581

16.3.7 HFS日志581

16.4 VFS和内核的整合584

16.4.1 fsctl(2)的整合584

16.4.2 sysctl(2)的整合585

16.4.3文件系统状态通知585

16.5本章小结586

参考文献586

第17章 遵守协议:网络协议栈587

17.1用户态接口回顾588

17.1.1 UNIX Domain套接字589

17.1.2 IPv4网络协议589

17.1.3路由套接字590

17.1.4网络驱动程序套接字590

17.1.5 IPSec Key Management套接字592

17.1.6 IPv6网络协议592

17.1.7系统套接字593

17.2套接字和协议统计信息595

17.3第5层:套接字597

17.3.1套接字描述符597

17.3.2 mbuf598

17.3.3内核态中的套接字603

17.4第4层:传输层协议604

17.4.1域和protosw605

17.4.2初始化域609

17.5第3层:网络层协议610

17.6第2层:网络接口层613

17.6.1 OS X和iOS中的网络接口613

17.6.2数据链路接口层614

17.6.3 ifnet结构体614

17.6.4案例研究:utun616

17.7整合所有层:网络协议栈620

17.7.1接收数据620

17.7.2发送数据623

17.8数据包过滤626

17.8.1套接字过滤器627

17.8.2 ipfw(8)628

17.8.3 PF包过滤器(Lion和iOS)629

17.8.4 IP过滤器630

17.8.5接口过滤器632

17.8.6伯克利数据包过滤器633

17.9流量整形和QoS637

17.9.1综合服务模型637

17.9.2区分服务模型637

17.9.3实现dummynet638

17.9.4在用户态控制参数638

17.10本章小结639

参考文献和深入阅读639

第18章 内核扩展模块641

18.1扩展内核的功能641

18.2内核扩展(kext)643

18.2.1 kext结构645

18.2.2 kext安全需求647

18.2.3内核扩展的相关操作647

18.2.4 kernelcache647

18.2.5 multi-kext651

18.2.6从程序员的视角看kext651

18.2.7 kext的内核支持652

18.3本章小结661

参考文献662

第19章 驱动力——I/O Kit驱动程序框架663

19.1 I/O Kit简介664

19.1.1设备驱动程序的编程约束664

19.1.2 I/O Kit是什么664

19.1.3 I/O Kit不是什么666

19.2 libkem: I/O Kit的基类667

19.2.1 OSObject668

19.2.2 OSMetaClass668

19.3 I/O Registry669

19.3.1 IORegistryEntry671

19.3.2 IOService671

19.4用户态的I/O Kit671

19.4.1访问I/O Registry672

19.4.2获得/设置驱动程序属性674

19.4.3即插即用(通知端口)675

19.4.4 I/O Kit电源管理676

19.4.5其他I/O Kit子系统677

19.4.6 I/O Kit诊断678

19.5 I/O Kit内核驱动程序680

19.5.1驱动程序匹配680

19.5.2 I/O Kit族682

19.5.3 I/O Kit驱动程序模型685

19.5.4 IOWorkLoop687

19.5.5中断处理689

19.5.6 I/O Kit内存管理691

19.6整合BSD693

19.7本章小结694

参考文献和深入阅读695

附录A了解机器架构697

热门推荐