第1章 x86与x64

x86是基于Intel 8086处理器的小端(little-endian)架构。本书中讨论x86是指《Intel 64 和 IA-32 架构软件开发人员手册》中定义的Intel架构(IA-32)的32位实现。一般而言,它可以在两种操作模式下运行:实模式保护模式。实模式是指处理器刚刚上电后只支持16位指令集的状态。保护模式是指处理器支持虚拟内存、分页以及其他功能的状态,也是运行当代操作系统的状态。这个体系结构的64位扩展称为x64或x86-64。这一章中讨论的是运行于保护模式下的x86体系结构。

x86通过一种称为环级别(ring level)的抽象来支持特权隔离(privilege separation)。处理器支持4种特权级别,编号为0到3(通常不使用ring1和ring2,所以这里不予讨论)。ring0具有最高特权级别,可以修改所有的系统设置。而ring3的特权级别最低,只能读取/修改部分系统设置。因此现代操作系统通常将用户模式应用程序运行在ring3级别,将内核运行于ring0级别,以此实现用户/内核特权隔离。ring级别编码于CS寄存器中,在官方文档中有时被称为当前特权级别(Current Privilege Level,CPL)。

本章讨论的是定义于《Intel 64 和 IA-32 架构软件开发人员手册》卷1~3中的x86/IA-32 体系结构(www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html)。

目录