X86_64

X86_64架构的处理器是目前最广泛使用的处理器

Long_Mode

x86x86_64的开关.

  • Long_Mode将通用寄存器扩展到64位(RAX RP RSP...)

  • 向CPU增加了8个 整数寄存器 (R8..R15)

  • 新增了8个SSE寄存器 (XMM8..XMM15).

  • 线性地址扩展至64位

  • 物理地址扩展至52位

分段机制

  • Long_Mode的分段机制通常采用平坦模-型,但 FS GS寄存器例外

  • FS.base C000_0100h, GS.base C000_0101h这两个MSR(模型特定寄存器) 可以为这两个段寄存器设置基地址

Long_Mode引入了一条特有指令 SWAPGS 用于交换 GS.baseKernelGSBase C000_0102h的MSR寄存器内容. 在跨上下文切换时 对于保留特定逻辑处理器核心的内核信息很重要

ACPI

ACPI(Advanced Configuration and Power Interface)是现代 PC 描述硬件的一套标准。

内核启动以后需要知道:

  • CPU 有多少个

  • APIC 在哪里

  • NUMA 信息

  • PCI 中断

  • 电源管理

这些信息都放在 ACPI Table 里面。

而所有 ACPI Table 的入口是 RSDP

在ACPI规范中 RSDP放在 0xE0000 ~ 0xFFFFF

PVH

PVH 是 Xen 提出的一种启动协议。

它最大的特点就是:

Hypervisor 直接把启动信息告诉内核。

避免了去扫RSDP