图书介绍

IA-64 Linux内核设计与实现pdf电子书版本下载

IA-64 Linux内核设计与实现
  • (美)David Mosberger,(美)Stephane Eranian著;梁金昆等译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302096104
  • 出版时间:2004
  • 标注页数:414页
  • 文件大小:56MB
  • 文件页数:434页
  • 主题词:Linux操作系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

IA-64 Linux内核设计与实现PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

目录 1

第1章 引言 1

1.1 微处理器:从CISC到EPIC 1

1.1.1 微处理器分类小结 3

1.1.2 IA-64的架构和安腾 3

1.2 Linux简史 4

1.2.1 早期发展 4

1.2.2 分支发展:Linux走向多平台 6

1.2.3 IA-64 Linux 6

1.2.4 Linux发展史小结 7

1.3 Linux内核概述 7

1.3.1 主要概念 8

1.3.2 硬件模型 16

1.3.3 内核组件 17

1.3.4 内核源码 21

1.4 小结 23

第2章 IA-64架构 24

2.1 用户级指令集的架构 25

2.1.1 指令格式 25

2.1.2 指令顺序化 27

2.1.3 寄存器组 28

2.1.4 指令集概述 33

2.1.5 整型数与SIMD指令 34

2.1.6 内存/信号量指令 35

2.1.7 分支指令 37

2.1.8 与寄存器堆栈有关的指令 39

2.1.10 浮点型指令 42

2.1.11 模调度循环 42

2.1.9 控制指令 42

2.2 运行时/软件规范 45

2.2.1 数据模型 45

2.2.2 寄存器用法 46

2.2.3 过程链接 48

2.2.4 内存堆栈 49

2.2.5 寄存器堆栈 50

2.2.6 全局指针 50

2.2.7 IA-64汇编语言编程 52

2.3 系统指令集架构 55

2.3.1 系统寄存器组 55

2.3.2 特权指令 59

2.3.3 中断 60

2.4 寄存器堆栈引擎 63

2.4.1 寄存器堆栈配置寄存器 64

2.4.2 处理NaT位 65

2.4..3 RSE算术 66

2.4.4 RSE算术辅助例程 68

2.4.5 影响RSE的指令 68

2.5 小结 70

第3章 进程、任务和线程 71

3.1 Linux任务 72

3.1.1 创建任务 74

3.1.2 历史的观点 76

3.2 线程接口 77

3.2.1 pt_regs结构 78

3.2.2 switch_stack结构 79

3.2.3 线程结构 81

3.2.4 IA-64寄存器堆栈 83

3.2.5 IA-64线程状态小结 84

3.2.6 运行线程 85

3.2.7 创建线程 89

3.2.8 终止线程 94

3.2.9 跨地址空间边界移动线程 95

3.3 线程同步 97

3.3.1 并发模式 97

3.3.2 原子操作 98

3.3.3 信号量 102

3.3.4 中断屏蔽 103

3.3.5 自旋锁 104

3.4 小结 106

第4章 虚拟内存 107

4.1 虚拟内存系统简介 107

4.1.1 虚拟地址到物理地址的转换 108

4.1.2 请求页面调度 109

4.1.3 页面调度和交换 110

4.1.4 保护 111

4.2 Linux进程的地址空间 112

4.2.1 用户地址空间 113

4.2.2 页表映射的内核段 117

4.2.3 一对一映射的内核段 118

4.2.4 IA-64地址空间的结构 121

4.3 页表 124

4.3.1 折叠页表层 126

4.3.2 虚拟映射的线性页表 127

4.3.3 Linux/ia64页表的结构 129

4.3.4 页表项 131

4.3.5 页表访问 138

4.3.6 页表目录的创建 141

4.4 旁路转换缓冲区 142

4.4.1 IA-64 TLB架构 144

4.4.2 TLB一致性的维护 149

4.4.3 迟缓的TLB清除 151

4.5 页面错误处理 153

4.5.1 示例:写时复制的工作原理 154

4.5.2 Linux页面错误处理程序 156

4.5.3 IA-64实现 157

4.6 内存一致性 164

4.6.1 Linux内核中的一致性维护 165

4.6.2 IA-64实现 167

4.7 切换地址空间 168

4.7.1 地址空间切换的接口 168

4.7.2 IA-64实现 169

4.8 讨论与总结 169

第5章 内核入口与出口 171

5.1.1 内核入口路径 172

5.1 中断 172

5.1.2 内核出口路径 173

5.1.3 讨论 174

5.1.4 IA-64实现 175

5.1.5 切换IA-64寄存器堆栈 177

5.2 系统调用 184

5.2.1 错误信号 185

5.2.2 重新启动系统调用执行 186

5.2.3 从内核调用系统调用 188

5.2.4 IA-64实现 188

5.3 信号 195

5.3.1 与信号有关的系统调用 196

5.3.2 信号递交 199

5.3.3 IA-64实现 202

5.4 内核存取用户内存 205

5.4.1 示例:gettimeofday()如何返回timeval结构 208

5.4.2 禁用合法性检测 209

5.4.3 IA-64实现 210

5.5 小结 214

第6章 栈展开 215

6.1 IA-64 ELF展开段 217

6.2 内核展开接口 218

6.2.1 管理展开表 218

6.2.2 遍历调用链 219

6.2.3 访问当前帧的CPU状态 220

6.2.4 展开接口的使用 222

6.3 在汇编代码中嵌入展开信息 225

6.3.1 区间指令 227

6.3.2 序言指令 228

6.3.3 过程体指令 230

6.3.4 通用指令 230

6.3.5 实例 231

6.4 实现方面 232

6.4.1 帧信息结构 232

6.4.2 展开描述符处理 234

6.4.3 展开脚本 235

6.4.4 迟缓初始化和脚本提示 238

6.4.5 综合考虑 238

6.5 小结 239

第7章 I/O设备 240

7.1 简介 240

7.1.1 现代计算机的结构 241

7.1.2 现代计算机上的I/O软件支持 242

7.2.1 内存映射I/O 243

7.2 编程I/O 243

7.2.2 端口I/O 247

7.3 直接内存访问 250

7.3.1 PCI DMA接口 252

7.3.2 示例:发送网络数据包 256

7.3.3 IA-64实现 257

7.4 设备中断 258

7.4.1 IA-64硬件中断架构 260

7.4.2 设备中断接口 265

7.4.3 中断处理 270

7.4.4 管理IA-64中断定向逻辑 271

7.5 小结 272

第8章 对称多处理 273

8.1 Linux中的多处理 273

8.2 Linux锁定 275

8.2.1 锁定规则 276

8.2.2 大内核锁 277

8.3 多处理机支持接口 279

8.3.1 支持实用工具 279

8.3.2 IA-64实现 282

8.4 CPU相关数据 286

8.4.1 错误共享 286

8.4.2 CPU相关数据的虚拟映射 288

8.5 挂钟时间维护 289

8.5.1 多处理机中的挂钟时间维护 289

8.5.2 同步MP机器上的周期计数器 290

8.6 小结 293

第9章 系统性能 294

9.1 IA-64性能监测单元概述 296

9.1.1 PMU寄存器组 296

9.1.2 控制监测 301

9.1.3 处理计数器溢出 303

9.2 扩展安腾PMU 303

9.2.1 安腾PMU的额外功能 304

9.2.2 安腾PMU寄存器组 304

9.2.3 安腾PMU事件 305

9.2.4 事件采样的硬件支持 306

9.2.5 事件地址寄存器 308

9.2.6 分支追踪缓冲区 312

9.2.7 其他特性 315

9.3 内核性能监测支持 317

9.3.1 perfmon接口 318

9.3.2 perfmon实现 324

9.3.3 perfmon接口应用示例 329

9.4 小结 331

第10章 启动 332

10.1 IA-64固件概述 333

10.1.1 处理器抽象层 333

10.1.2 系统抽象层 338

10.1.3 高级配置和电源接口 343

10.1.4 可扩展固件接口 346

10.2 启动装载程序 354

10.2.1 装载内核映像 354

10.2.2 装载初始RAM磁盘 356

10.2.3 装载FPSWA 356

10.2.4 收集启动参数 356

10.2.5 启动内核 357

10.3 内核初始化 358

10.3.1 引导接口 359

10.3.2 IA-64实现 362

10.4 小结 365

第11章 IA-32兼容性 366

11.1 对IA-32的架构支持 367

11.1.1 IA-32用户级机器状态 367

11.1.2 IA-32用户级机器状态与IA-64寄存器之间的映射 368

11.1.3 IA-32分段与内存寻址 370

11.1.4 IA-32与IA-64之间的控制权传递 372

11.2 Linux对IA-32应用程序的支持 373

11.2.1 IA-32任务的内核表示 374

11.2.2 模拟IA-32任务的地址空间 374

11.2.3 绝对文件系统路径 378

11.2.4 启动IA-32可执行程序 379

11.2.5 系统调用模拟 382

11.2.6 信号传递 390

11.2.7 访问I/O端口空间 391

11.3 小结 392

附录A IA-64 CPU模型 393

附录B 内核寄存器用法 394

附录C IA-64指令 395

C.1 整数指令 395

C.2 内存指令 397

C.3 信号量指令 397

C.4 分支指令 397

C.5 控制指令 398

C.6 多媒体指令 399

C.7 浮点指令 399

C.8 特权指令 401

附录D 安腾PMU事件 402

附录E 词汇表 406

参考文献 410

精品推荐