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

- (美)JONATHANLEVIN著;郑思遥,房佩慈译 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302348672
- 出版时间:2014
- 标注页数:713页
- 文件大小:315MB
- 文件页数:737页
- 主题词:操作系统
PDF下载
下载说明
深入解析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
热门推荐
- 3713348.html
- 3339809.html
- 1816606.html
- 2106265.html
- 3181709.html
- 1734957.html
- 2376343.html
- 3818192.html
- 2420678.html
- 2439770.html
- http://www.ickdjs.cc/book_2311445.html
- http://www.ickdjs.cc/book_10045.html
- http://www.ickdjs.cc/book_1405979.html
- http://www.ickdjs.cc/book_1924507.html
- http://www.ickdjs.cc/book_751961.html
- http://www.ickdjs.cc/book_118475.html
- http://www.ickdjs.cc/book_133867.html
- http://www.ickdjs.cc/book_3665033.html
- http://www.ickdjs.cc/book_34679.html
- http://www.ickdjs.cc/book_2139382.html