搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
深入解析Mac OS X &IOS操作系统
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787302348672
  • 作      者:
    (美)Jonathan Levin著
  • 出 版 社 :
    清华大学出版社
  • 出版日期:
    2014
收藏
作者简介
  JonathanLevin是一位经验丰富的技术培训师和咨询师,他的关注点是"三大系统"(Windows、Linux和MacOS)以及它们的移动版本(Android和iOS)原理。15年来,Jonathan坚持传播内核工程和修改技术的真知灼见,在DefCON会议上发表了很多技术演讲。他是Technologeeks.com公司的创始人和首席技术官(CTO)这是由一些志趣相投的专家合伙创办的公司,致力于通过技术培训传播知识,通过咨询解决棘手的技术难题。他们的专业领域覆盖软件架构中的实时及其他关键部分、系统/核级编程、调试、逆向工程以及性能优化。
展开
内容介绍
  《深入解析Mac OS X & iOS操作系统》不是一开始就讲解内核,而是从现象出发,首先从“超级用户”的角度来讲解苹果的内核提供的各种功能,以及有自己特色的地方。然后再进入内核,从Mach和BSD的角度分别讲解内核中各个子系统的实现原理。讲解内核的时候,基本上以各个子系统提供的API和数据结构为脉络,全面而深入地涵盖内核实现的各种细节。
  《深入解析Mac OS X & iOS操作系统》不仅涉及开源XNU核心的内容,还涉及不少关于iOS的闭源XNU核心的内容,这也是《深入解析Mac OS X & iOS操作系统》的一大特色。由于iOS的核心是闭源的,所以本书多采用逆向工程的方法,对汇编代码进行分析,顺便介绍了各种逆向工程方法在越狱中的应用,使读者可以了解神秘的越狱过程。此外,书中还有各种和苹果操作系统开发或越狱相关的八卦趣闻,因此本书也是一本有趣的书。
展开
精彩书摘
    Mac OS X使用了Hierarchical File System Plus(简称HFS+)文件系统。名称中的“Plus”表示HFS+是原来在OSX之前的系统中使用的老Hierarchical File System文件系统的继任。    HFS+有4个不同的变种:    大小写敏感,不敏感:HFs+总是会保存大小写的区别,但是可以对大小写敏感或不敏感。当设置为大小写敏感时,HFS+指的就是HFSX。HFSX大概是在Panther引入的,尽管没有在OS X中使用,但是是iOS上默认的文件系统。    可选的日志功能:HFS+还可以选择打开日志功能,这种情况下通常称为JHFS(或mFSX)。通过使用日志,文件系统可以在强行卸载(例如电力中断)的情况下更加健壮,因为日志文件系统通过一个日志记录文件系统事务完成的过程。如果文件系统在挂载时发现日志中包含了事务,那么既可以重放事务(即完成事务),也可以抛弃事务。尽管有可能会丢失数据,但是文件系统更有可能维护一致性的状态。    在OS X的大小写不敏感的文件系统中,文件创建时可以选择任何大小写组合的文件名,而且显示时会完全按照创建时采用的方式显示,但是访问时却可以使用任何大小写组合。因此,两个文件绝对不可以采用同一个不考虑大小写完全相同的名字。然而,不小心打开caps lock却不会影响文件系统的操作。不信的话可以试试LS/ETC/PASSWD命令。    在iOS中,默认使用的是大小写敏感的HFSX。在这个文件系统中,不仅会保留大小写,而且多个文件可以具有除了大小写之外其他字符都相同的文件名。很自然,大小写敏感也意味着输入错误会导致完全不同的命令或引用完全不同的文件,通常情况下都会产生错误。    HFS文件系统具有独特的特性,例如扩展属性和透明压缩,第15章会深入讨论这些特性。然而从编程的角度看,HFS+和HFSX的接口与其他文件系统都是一样的,因为内核提供的APl实际上是通过一个公共的文件系统适配层提供的,这个适配层名为虚拟文件交换(Vmual File systemSwitch,YES)。VFS是内核中使用的所有文件系统的统一接口,既适用于UNIX的文件系统也适用于外部文件系统。同样,HFS+和HFSX都提供了用户“默认”会使用的功能,这些功能是UN/X文件系统共有的体验——权限、硬连接和软连接、文件所有权和类型,这些体验和其他UNIX都是一样的。    2.4 UNIX的系统目录    OS X是一个符合UNIX标准的系统,因此也有那些标准UNIX具有的目录结构:    /bin:UNIX中的二进制程序。这是常用UNIX命令(例如ls、rm、mv和df等)所在的地方。    /sbin:系统程序。这些二进制程序用于系统管理,例如文件系统管理和网络配置等。    /usr:User目录。这并不是说这个目录是给用户用的,而更像是Windows中的ProgramFiles目录,第三方的软件可以安装在这里。    /usr:目录中包含的bin、sbin和lib。/usr/lib用于存放共享的目标文件(类似于Windows中存放DLL文件的\windows\system32目录)。这个目录还包含一个include/子目录,所有标准的C头文件都存放在此。 
展开
目录
第Ⅰ部分 高级用户指南
第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代码
……
第Ⅱ部分 内核
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证