出版社:清华大学出版社
年代:2014
定价:108.0
本书由苹果系统专家执笔,深入Mac OS X和iOS的内部,剖析苹果系统的内核及本质,并详解各种内核工具的用法。内容包括内核的任务和基本组成、进程管理和调度、内存管理、虚拟内存、锁与进程间通信、模块、虚拟文件系统、网络、系统调用、内核活动、时间管理、页缓存和块缓存、数据同步、页面收回和交换、审计等主题。
第Ⅰ部分 高级用户指南
第1章 达尔文主义:OS X的进化史
1.1 前达尔文时代:Mac OS Classic
1.2 浪子回头:NeXTSTEP
1.3 走进新时代:OS X操作系统
1.4 迄今为止的所有OS X版本
1.4.1 10.0——Cheetah,初出茅庐
1.4.2 10.1——Puma,更强大
1.4.3 10.2——Jaguar,渐入佳境
1.4.4 10.3——Panther和Safari
1.4.5 10.4——Tiger,转投Intel的怀抱
1.4.6 10.5——Leopard和UNIX
1.4.7 10.6——Snow Leopard
1.4.8 10.7——Lion
1.4.9 10.8——Mountain Lion
1.5 iOS——走向移动平台的OS X
1.5.1 1.x——Heavenly,第一代iPhone
1.5.2 2.x——App Store、3G和企业级的特性
1.5.3 3.x——告别第一代,迎来iPad
1.5.4 4.x——iPhone 4、Apple TV和iPad 2
1.5.5 5.x——iPhone 4S和更新的硬件
1.5.6 iOS和OS X对比
1.6 OS X的未来
1.7 本章小结
参考文献
第2章 合众为一:OS X和iOS的架构
2.1 OS X架构概述
2.2 用户体验层
2.2.1 Aqua
2.2.2 QuickLook
2.2.3 Spotlight
2.3 Darwin——UNIX核心
2.3.1 Shell
2.3.2 文件系统
2.4 UNIX的系统目录
2.4.1 OS X特有的目录
2.4.2 iOS文件系统的区别
2.5 bundle
2.6 应用程序和app
2.6.1 Info.plist
2.6.2 Resources目录
2.6.3 NIB文件
2.6.4 通过.lproj文件实现国际化
2.6.5 图标文件(.icns)
2.6.6 CodeResources
2.7 框架
2.7.1 框架bundle格式
2.7.2 OS X和iOS公共框架列表
2.8 库
2.9 其他应用程序类型
2.9.1 Java(仅限于OS X)
2.9.2 Widget
2.9.3 BSD/Mach原生程序
2.10 系统调用
2.10.1 POSIX
2.10.2 Mach系统调用
2.11 XNU概述
2.11.1 Mach
2.11.2 BSD层
2.11.3 libkern
2.11.4 I/O Kit
2.12 本章小结
参考文献
第3章 站在巨人的肩膀上:OS X和iOS使用的技术
3.1 BSD相关的特性
3.1.1 sysctl
3.1.2 kqueue
3.1.3 审计(OS X)
3.1.4 强制访问控制
3.2 OS X和iOS特有的技术
3.2.1 用户和组的管理(OS X)
3.2.2 系统配置
3.2.3 记录日志
3.2.4 Apple事件和AppleScript
3.2.5 FSEvents
3.2.6 通知
3.2.7 其他重要的API
3.3 OS X和iOS的安全机制
3.3.1 代码签名
3.3.2 隔离机制(沙盒化)
3.3.3 Entitlement:更严格的沙盒
3.3.4 沙盒机制的实施
3.4 本章小结
参考文献
第4章 庖丁解进程:Mach-O格式、进程以及线程内幕
4.1 关键概念回顾
4.1.1 进程和线程
4.1.2 进程生命周期
4.1.3 UNIX信号
4.2 可执行文件
4.3 通用二进制格式
4.3.1 Mach-O二进制格式
4.3.2 加载命令
4.4 动态库
4.4.1 启动时库的加载
4.4.2 库的运行时加载
4.4.3 dyld的特性
4.5 进程地址空间
4.5.1 进程入口点
4.5.2 地址空间布局随机化
4.5.3 32位地址空间(Intel)
4.5.4 64位地址空间
4.5.5 32位地址空间(iOS)
4.6 进程内存分配(用户态)
4.6.1 alloca()
4.6.2 堆分配
4.6.3 虚拟内存——系统管理员的角度
4.7 线程
参考文献
第5章 进程跟踪和调试
5.1 DTrace
5.1.1 D语言
5.1.2 dtruss
5.1.3 DTrace工作原理
5.2 其他剖析机制
5.2.1 CHUD的衰落
5.2.2 继任者AppleProfileFamily
5.3 进程信息
5.3.1 sysctl
5.3.2 proc_info
5.4 进程和系统快照
5.4.1 system_profiler(8)
5.4.2 sysdiagnose(1)
5.4.3 allmemory(1)
5.4.4 stackshot(1)
5.4.5 stack_snapshot系统调用
5.5 kdebug
5.5.1 基于kdebug的工具
5.5.2 kdebug代码
……
第Ⅱ部分 内核
《深入解析Mac OS X & iOS操作系统》不是一开始就讲解内核,而是从现象出发,首先从“超级用户”的角度来讲解苹果的内核提供的各种功能,以及有自己特色的地方。然后再进入内核,从Mach和BSD的角度分别讲解内核中各个子系统的实现原理。讲解内核的时候,基本上以各个子系统提供的API和数据结构为脉络,全面而深入地涵盖内核实现的各种细节。 《深入解析Mac OS X & iOS操作系统》不仅涉及开源XNU核心的内容,还涉及不少关于iOS的闭源XNU核心的内容,这也是《深入解析Mac OS X & iOS操作系统》的一大特色。由于iOS的核心是闭源的,所以本书多采用逆向工程的方法,对汇编代码进行分析,顺便介绍了各种逆向工程方法在越狱中的应用,使读者可以了解神秘的越狱过程。此外,书中还有各种和苹果操作系统开发或越狱相关的八卦趣闻,因此本书也是一本有趣的书。
(美) 林兹梅尔 (Linzmayer,O.) , 著
(美) 兰格 (Langer,M.) , 著
(美) 怀特 (White,K.M.) , (美) 戴维逊 (Davisson,G.) , 编著
(美) 凯文·M.怀特 (Kevin M. White) , (美) 戈登·戴维逊 (Gordon Davisson) , 著
(美) 怀特 (White,K.M.) , (美) 戴维逊 (Davisson,G.) , 编著
(美) 阿米特·辛格 (Amit Singh) , 著
袁烨, 编著
( ) 威廉姆斯 (Williams,R.) , 著
(美) 迈泽 (Miser,B.) , 著