出版社:清华大学出版社
年代:2004
定价:49.0
本书权威而全面地介绍了IA-64/IPFF的Linux内核,深入探讨了linux硬件抽象接口背后的思想及在IA-64F的具体实现。本书是由UpenSure著名领袖Bruce Perens亲自作序,由惠普两位IA-64高级专家撰写。
第1章 引言 1.1 微处理器:从CISC到EPIC 1.1.1 微处理器分类小结 1.1.2 IA-64的架构和安腾 1.2 Linux简史 1.2.1 早期发展 1.2.2 分支发展:Linux走向多平台 1.2.3 IA-64 Linux 1.2.4 Linux发展史小结 1.3 Linux内核概述 1.3.1 主要概念 1.3.2 硬件模型 1.3.3 内核组件 1.3.4 内核源码 1.4 小结
第1章 引言 1.1 微处理器:从CISC到EPIC 1.1.1 微处理器分类小结 1.1.2 IA-64的架构和安腾 1.2 Linux简史 1.2.1 早期发展 1.2.2 分支发展:Linux走向多平台 1.2.3 IA-64 Linux 1.2.4 Linux发展史小结 1.3 Linux内核概述 1.3.1 主要概念 1.3.2 硬件模型 1.3.3 内核组件 1.3.4 内核源码 1.4 小结第2章 IA-64架构 2.1 用户级指令集的架构 2.1.1 指令格式 2.1.2 指令顺序化 2.1.3 寄存器组 2.1.4 指令集概述 2.1.5 整型数与SIMD指令 2.1.6 内存/信号量指令 2.1.7 分支指令 2.1.8 与寄存器堆栈有关的指令 2.1.9 控制指令 2.1.10 浮点型指令 2.1.11 模调度循环 2.2 运行时/软件规范 2.2.1 数据模型 2.2.2 寄存器用法 2.2.3 过程链接 2.2.4 内存堆栈 2.2.5 寄存器堆栈 2.2.6 全局指针 2.2.7 IA-64汇编语言编程 2.3 系统指令集架构 2.3.1 系统寄存器组 2.3.2 特权指令 2.3.3 中断 2.4 寄存器堆栈引擎 2.4.1 寄存器堆栈配置寄存器 2.4.2 处理NaT位 2.4.3 RSE算术 2.4.4 RSE算术辅助例程 2.4.5 影响RSE的指令 2.5 小结第3章 进程、任务和线程 3.1 Linux任务 3.1.1 创建任务 3.1.2 历史的观点 3.2 线程接口 3.2.1 pt_regs结构 3.2.2 switch_stack结构 3.2.3 线程结构 3.2.4 IA-64寄存器堆栈 3.2.5 IA-64线程状态小结 3.2.6 运行线程 3.2.7 创建线程 3.2.8 终止线程 3.2.9 跨地址空间边界移动线程 3.3 线程同步 3.3.1 并发模式 3.3.2 原子操作 3.3.3 信号量 3.3.4 中断屏蔽 3.3.5 自旋锁 3.4 小结第4章 虚拟内存 4.1 虚拟内存系统简介 4.1.1 虚拟地址到物理地址的转换 4.1.2 请求页面调度 4.1.3 页面调度和交换 4.1.4 保护 4.2 Linux进程的地址空间 4.2.1 用户地址空间 4.2.2 页表映射的内核段 4.2.3 一对一映射的内核段 4.2.4 IA-64地址空间的结构 4.3 页表 4.3.1 折叠页表层 4.3.2 虚拟映射的线性页表 4.3.3 Linux/ia64页表的结构 4.3.4 页表项 4.3.5 页表访问 4.3.6 页表目录的创建 4.4 旁路转换缓冲区 4.4.1 IA-64 TLB架构 4.4.2 TLB一致性的维护 4.4.3 迟缓的TLB清除 4.5 页面错误处理 4.5.1 示例:写时复制的工作原理 4.5.2 Linux页面错误处理程序 4.5.3 IA-64实现 4.6 内存一致性 4.6.1 Linux内核中的一致性维护 4.6.2 IA-64实现 4.7 切换地址空间 4.7.1 地址空间切换的接口 4.7.2 IA-64实现 4.8 讨论与总结第5章 内核入口与出口 5.1 中断 5.1.1 内核入口路径 5.1.2 内核出口路径 5.1.3 讨论 5.1.4 IA-64实现 5.1.5 切换IA-64寄存器堆栈 5.2 系统调用 5.2.1 错误信号 5.2.2 重新启动系统调用执行 5.2.3 从内核调用系统调用 5.2.4 IA-64实现 5.3 信号 5.3.1 与信号有关的系统调用 5.3.2 信号递交 5.3.3 IA-64实现 5.4 内核存取用户内存 5.4.1 示例:gettimeofday()如何返回timeval结构 5.4.2 禁用合法性检测 5.4.3 IA-64实现 5.5 小结第6章 栈展开 6.1 IA-64 ELF展开段 6.2 内核展开接口 6.2.1 管理展开表 6.2.2 遍历调用链 6.2.3 访问当前帧的CPU状态 6.2.4 展开接口的使用 6.3 在汇编代码中嵌入展开信息 6.3.1 区间指令 6.3.2 序言指令 6.3.3 过程体指令 6.3.4 通用指令 6.3.5 实例 6.4 实现方面 6.4.1 帧信息结构 6.4.2 展开描述符处理 6.4.3 展开脚本 6.4.4 迟缓初始化和脚本提示 6.4.5 综合考虑 6.5 小结第7章 I/O设备 7.1 简介 7.1.1 现代计算机的结构 7.1.2 现代计算机上的I/O软件支持 7.2 编程I/O 7.2.1 内存映射I/O 7.2.2 端口I/O 7.3 直接内存访问 7.3.1 PCIDMA接口 7.3.2 示例:发送网络数据包 7.3.3 IA-64实现 7.4 设备中断 7.4.1 IA-64硬件中断架构 7.4.2 设备中断接口 7.4.3 中断处理 7.4.4 管理IA-64中断定向逻辑 7.5 小结第8章 对称多处理 8.1 Linux中的多处理 8.2 Linux锁定 8.2.1 锁定规则 8.2.2 大内核锁 8.3 多处理机支持接口 8.3.1 支持实用工具 8.3.2 IA-64实现 8.4 CPU相关数据 8.4.1 错误共享 8.4.2 CPU相关数据的虚拟映射 8.5 挂钟时间维护 8.5.1 多处理机中的挂钟时间维护 8.5.2 同步MP机器上的周期计数器 8.6 小结第9章 系统性能 9.1 IA-64性能监测单元概述 9.1.1 PMU寄存器组 9.1.2 控制监测 9.1.3 处理计数器溢出 9.2 扩展安腾PMU 9.2.1 安腾PMU的额外功能 9.2.2 安腾PMU寄存器组 9.2.3 安腾PMU事件 9.2.4 事件采样的硬件支持 9.2.5 事件地址寄存器 9.2.6 分支追踪缓冲区 9.2.7 其他特性 9.3 内核性能监测支持 9.3.1 perfmon接口 9.3.2 perfmon实现 9.3.3 perfmon接口应用示例 9.4 小结第10 章 启动 10.1 IA-64固件概述 10.1.1 处理器抽象层 10.1.2 系统抽象层 10.1.3 高级配置和电源接口 10.1.4 可扩展固件接口 10.2 启动装载程序 10.2.1 装载内核映像 10.2.2 装载初始RAM磁盘 10.2.3 装载FPSWA 10.2.4 收集启动参数 10.2.5 启动内核 10.3 内核初始化 10.3.1 引导接口 10.3.2 IA-64实现 10.4 小结第11章 IA-32兼容性 11.1 对1A-32的架构支持 11.1.1 IA-32用户级机器状态 11.1.2 IA-32用户级机器状态与IA-64寄存器之间的映射 11.1.3 IA-32分段与内存寻址 11.1.4 IA-32与IA-64之间的控制权传递 11.2 Linux对IA-32应用程序的支持 11.2.1 IA-32任务的内核表示 11.2.2 模拟IA-32任务的地址空问 11.2.3 绝对文件系统路径 11.2.4 启动IA-32可执行程序 11.2.5 系统调用模拟 11.2.6 信号传递 11.2.7 访问I/O端口空间 11.3 小结附录A IA-64 CPU模型附录B 内核寄存器用法附录C IA-64指令 C.1 整数指令 C.2 内存指令 C.3 信号量指令 c.4 分支指令 C.5 控制指令 C.6 多媒体指令 C.7 浮点指令 C.8 特权指令附录D 安腾PMU事件附录E 词汇表参考文献
权威而全面地讲述IA-64/IPF(安腾处理器系列)下的Linux内核; 深入探讨Linux硬件抽象接口后面的思想的概念及其在IA-64设计空间下的具体实现; 由顶级IA-64 Linux内核设计师和开发人员编写; OperSource著名领袖Bruce Perens亲自撰写了前言; IA-64 Linuxmw内核实现的权威指南; IA-64体系结构和安腾处理器是专为提供前所未有的性能、可扩展性和可靠性而设计的,借助于IA-64 Linux内核,每一个Linux开发人员都可以访问这些强大的功能。在这套权威著作中,IA-64 Linux内核项目经理将带领你深入了解IA-64的Linux,准确地阐明了IA-64体系结构为何具有如此突破性的强大能力。 本书介绍IA-64体系结构、指令集和关键功能开始。紧接着以空前的篇幅讲述了每一个主要的Linux内核子系统,描述Linux用来抽象硬件差异的接口,并说明了IA-64环境中如何实现了这些接口。 内容包括: ·处理器、任务和线程; ·虚拟内存子系统:地址空间、页面表、页面错误处理和一致性; ·设备支持:程序化I/O、DMA和中断; ·同步多处理:Linux锁定原理及其在IA-64上的实现; ·内核入口和出口:中断、系统调用、信号和用户内存访问; ·自举:固件、引导程序和内核初始化; ·系统性能监视:使用率、内核支持和安腾扩展系列; ·IA-32兼容性:从体系结构和Linux系统的角度来看,支持传统的32位应用程序。
(美) 勒伏 (Love,R.) , 著
(美) 拉芙 (Love,R.) , 著
(美) 拉芙 (Love,R.) , 著
(美) 洛夫 (Love,R.) , 著
高剑林, 著
孙更新, 宾晟, 孙海伦, 编著
工业和信息化部软件与集成电路促进中心, 编著
(日) 高桥浩和, 等著
赵炯, 编著