飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 18509|回复: 94

[iOS/OSX] 【推荐】OS X和iOS核心编程(Apress.OS.X.and.iOS.Kernel.Programming)(英文原版...

  [复制链接]
  • TA的每日心情
    开心
    2019-3-25 14:18
  • 签到天数: 881 天

    [LV.10]以坛为家III

    发表于 2015-8-4 08:51:24 | 显示全部楼层 |阅读模式
    内容简介
      与传统的用户应用程序开发不同,内核环境更加复杂多变,任何问题都会严重影响系统的稳定性、安全性和性能,所以一定要确保内核代码中没有任何错误。《OS X与iOS内核编程》介绍了非常实用的内核开发方法,是XNU内核开发者必备的“九阴真经”。
      《OS X与iOS内核编程》两位作者都活跃在计算机软硬件以及驱动程序开发一线,具有丰富的实战经验。Ole Henry Halvorsen是最早一批为USB 3.0和Thunderbolt创建视频硬件设备的开发人员。Douglas Clarke具有15年以上的麦金塔计算机专业软硬件开发经验。本书汇集了两位作者多年的实战经验与智慧感悟,展现了一幅XNU内核编程与设备驱动程序开发的斑斓画卷。相信在作者循循善诱、通俗易懂的讲解下,读者定能为书中的精彩内容深深吸引,渐入化境,在不知不觉中炼就内核开发的绝世武功。
      如果你对iOS和Mac OS X操作系统感兴趣,关注内核开发,或者你本身就是驱动程序开发人员,那么如此精彩的一本好书绝对不容错过。
    目录
    第1章 操作系统原理  
    1.1  操作系统的作用  
    1.2  进程管理  
    1.3  进程地址空间  
    1.4  操作系统服务  
    1.5  虚拟内存  
    1.6  调度  
    1.7  硬件和驱动程序  
    1.8  小结  

    第2章 Mac OS X和iOS  
    2.1  XNU内核  
    2.1.1  内核扩展(KEXT)  
    2.1.2  Mach  
    2.1.3  BSD层  
    2.1.4  I/O Kit  
    2.2  小结  

    第3章 Xcode和内核开发环境  
    3.1  语言的选择:C++  
    3.2  Xcode  
    3.3  “Hello World”内核扩展  
    3.4  加载和卸载内核扩展  
    3.5  使用控制台查看输出  
    3.6  小结  

    第4章 I/O Kit框架  
    4.1  I/O Kit 模型  
    4.2  对象关系  
    4.3  Info.plist文件  
    4.3.1  驱动程序类  
    4.3.2  IORegistryExplorer  
    4.4  内核库:libkern  
    4.4.1  OSObject  
    4.4.2  容器类  
    4.5  小结  

    第5章 应用程序与驱动程序的交互  
    5.1  I/O Kit框架  
    5.2  查找驱动程序  
    5.3  观察设备移除  
    5.4  修改设备驱动程序属性  
    5.5  基于状态的交互  
    5.6  驱动程序的通知  
    5.7  小结  

    第6章 内存管理  
    6.1  内存类型  
    6.1.1  CPU物理地址  
    6.1.2  总线物理地址  
    6.1.3  用户和内核虚拟地址  
    6.1.4  内存顺序:大端序和小端序  
    6.1.5  32位和64位内存寻址  
    6.2  内存分配  
    6.2.1  底层分配机制  
    6.2.2  Mach内存域分配器  
    6.2.3  kalloc家族  
    6.2.4  BSD中的内存分配  
    6.2.5  I/O Kit内存分配  
    6.2.6  使用C++的new操作符分配内存  
    6.3  内存描述符  
    6.3.1  IOBufferMemoryDescriptor  
    6.3.2  其他的内存描述符  
    6.4  映射内存  
    6.4.1  用户空间任务到内核空间的内存映射  
    6.4.2  IOMemoryMap类  
    6.4.3  内核到用户空间任务的内存映射  
    6.4.4  将内存映射到指定的用户空间任务  
    6.4.5  物理地址映射  
    6.5  小结 
     
    第7章 同步和线程  
    7.1  同步原语  
    7.2  原子操作  
    7.3  锁  
    7.3.1  自旋锁  
    7.3.2  互斥  
    7.3.3  条件变量  
    7.3.4  读/写互斥  
    7.4  同步异步事件:工作环  
    7.4.1  IOCommandGate  
    7.4.2  定时器  
    7.4.3  释放工作环  
    7.5  内核线程  
    7.6  小结  

    第8章 USB  
    8.1  USB体系结构  
    8.1.1  USB传输速度  
    8.1.2  主机控制器  
    8.1.3  USB协议  
    8.1.4  端点  
    8.1.5  USB描述符  
    8.1.6  USB设备类  
    8.2  I/O Kit USB支持  
    8.2.1  USB设备和驱动程序处理  
    8.2.2  加载USB驱动程序  
    8.2.3  USB Prober  
    8.2.4  驱动程序示例:USB大容量存储器设备驱动程序  
    8.2.5  驱动程序启动  
    8.2.6  处理设备移除  
    8.2.7  枚举接口  
    8.2.8  枚举端点  
    8.2.9  执行设备请求  
    8.2.10  执行批量端点和中断端点的I/O  
    8.3  小结 
     
    第9章 PCI Express和Thunderbolt  
    9.1  I/O Kit中的PCI  
    9.1.1  匹配和加载驱动程序  
    9.1.2  驱动程序示例:一个简单的PCI驱动程序  
    9.1.3  访问配置空间寄存器  
    9.1.4  PCI I/O内存区  
    9.1.5  处理设备移除  
    9.2  中断  
    9.2.1  I/O Kit中断机制  
    9.2.2  注册接收中断  
    9.2.3  启用MSI  
    9.2.4  处理主中断  
    9.2.5  处理二级中断  
    9.3  直接内存访问  
    9.3.1  将物理地址转换为总线地址  
    9.3.2  为DMA准备内存  
    9.3.3  建立分散/聚集列表  
    9.3.4  IODMACommand类  
    9.4  小结  

    第10章 电源管理  
    10.1  响应电源状态改变  
    10.2  请求电源状态改变  
    10.3  处理设备空闲  
    10.4  观察设备电源状态改变  
    10.5  汇总  
    10.6  小结 
     
    第11章 串行端口驱动程序  
    11.1  Mac OS X串行端口体系结构概览  
    11.2  串行端口驱动程序  
    11.3  实现IOSerialDriverSync类  
    11.4  串行端口状态  
    11.5  串行端口事件  
    11.6  串行数据传输  
    11.7  从用户空间访问串行端口  
    11.8  小结  

    第12章 音频驱动程序  
    12.1  数字音频和音频设备简介  
    12.2  Core Audio  
    12.3  I/O Kit音频支持  
    12.4  实现一个音频驱动程序  
    12.4.1  驱动程序和硬件初始化  
    12.4.2  注册音频控制  
    12.4.3  实现音频引擎  
    12.4.4   I/O引擎初始化  
    12.4.5  其他的音频引擎功能  
    12.5  小结  

    第13章 网络  
    13.1  网络内核扩展  
    13.1.1  内核控制KPI  
    13.1.2  套接字过滤器  
    13.1.3  因特网协议过滤器  
    13.1.4  接口过滤器  
    13.2  调试和测试网络扩展  
    13.3  I/O Kit中的网络  
    13.3.1  构建简单以太网控制器驱动程序  
    13.3.2  MyEthernetDriver设计  
    13.3.3  驱动程序初始化和启动  
    13.3.4  介质和状态选择  
    13.3.5  配置设备硬件地址  
    13.3.6  启用和禁用设备  
    13.3.7  传输网络分组  
    13.3.8  接收分组  
    13.3.9  对MyEthernetDriver进行测试  
    13.4  小结  

    第14章 存储系统  
    14.1  传输层驱动程序  
    14.2  IOBlockStorageDevice接口  
    14.3  构建RAM磁盘设备  
    14.4  分区规则  
    14.4.1  实现一个示例分区规则  
    14.4.2  媒介内容线索属性  
    14.5  媒介过滤器驱动程序  
    14.5.1  加密过滤器规则示例  
    14.5.2  创建一个自定义GUID分区表  
    14.6  小结  

    第15章 用户空间USB驱动程序  
    15.1  背景  
    15.2  IOUSBLib框架  
    15.3  处理异步操作  
    15.4  IOUSBDeviceInterface类  
    15.5  IOUSBInterfaceInterface类  
    15.5.1  属性方法  
    15.5.2  端点数据传输方法  
    15.5.3  低延迟同步传输  
    15.6  小结 
     
    第16章 调试  
    16.1  常见的问题类型  
    16.2  内核恐慌  
    16.3  调试机制  
    16.3.1  启动时修复崩溃  
    16.3.2  采用IOLog()追踪  
    16.3.3  输出栈跟踪  
    16.3.4  通过FireWire远程跟踪  
    16.3.5  远程内核核心转储  
    16.3.6  KDB  
    16.3.7  通过以太网或FireWire使用GDB远程调试  
    16.3.8  实时调试运行的内核  
    16.3.9  使用虚拟机调试  
    16.3.10  在内核中使用GDB调试  
    16.3.11  使用Activity Monitor诊断挂起进程  
    16.3.12  查找内存和资源泄漏  
    16.4  小结 
     
    第17章 高级内核编程  
    17.1  内核中的SSE和浮点  
    17.2  多功能驱动程序  
    17.3  编写I/O Kit族  
    17.4  内核控制KPI  
    17.4.1  内核控制注册  
    17.4.2  客户端连接  
    17.4.3  获取和设置选项  
    17.4.4  从用户空间访问内核控制  
    17.5  内核中的进程处理  
    17.6  加载资源  
    17.7  KEXT资源之外的内容  
    17.8  内核驱动程序通知  
    17.9  小结  

    第18章 部署  
    18.1  安装和加载内核扩展  
    18.2  加载首选项和设置  
    18.3  内核扩展的版本管理  
    18.4  测试和品质保证  
    18.5  打包KEXT和软件  
    18.5.1  构建Hello World内核扩展安装包  
    18.5.2  将内容添加至安装包  
    18.5.3  配置安装包  
    18.5.4  构建安装包  
    18.5.5  卸载安装包  
    18.6  小结  

    下载地址:
    游客,如果您要查看本帖隐藏内容请回复




    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?加入我们

    x
    PYG19周年生日快乐!
  • TA的每日心情
    难过
    5 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2015-8-4 09:35:18 | 显示全部楼层
    好书!和 《深入解析Mac OS X & iOS操作系统》 配套 极好~~

    iOS下仅有的两本权威~
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2021-9-29 15:05
  • 签到天数: 114 天

    [LV.6]常住居民II

    发表于 2015-8-6 09:23:08 | 显示全部楼层
    Mark, 有空了读读
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-3-29 18:38
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2015-8-8 12:17:22 | 显示全部楼层
    谢谢分享,学习一个。
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    1 小时前
  • 签到天数: 2470 天

    [LV.Master]伴坛终老

    发表于 2015-8-16 13:55:03 | 显示全部楼层
    谢谢楼主了,下来学习学习!
    PYG19周年生日快乐!
  • TA的每日心情

    2019-6-21 09:46
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    发表于 2015-8-25 11:36:54 | 显示全部楼层
    非常感谢无私的分享!!!
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 1574 天

    [LV.Master]伴坛终老

    发表于 2015-8-30 20:10:31 | 显示全部楼层
    谢谢楼主的分享!!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-9-11 22:32
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2015-9-2 20:38:24 来自手机 | 显示全部楼层
    支持飘云阁!!!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-9-11 22:32
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2015-9-2 20:38:37 来自手机 | 显示全部楼层
    支持飘云阁!!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2015-9-5 12:40:33 | 显示全部楼层
    学习了,mark一下,谢谢
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表