SMM系列(1)-- SMM基本概念
来源:互联网 发布:界面翻译软件下载 编辑:程序博客网 时间:2024/05/17 00:15
SMM的定义:
SMM, System Management Mode, 即系统管理模式。在intel 386SL, intel486SL引入的一种特殊的操作模式,在这种模式下,可以执行高级电源管理,硬件控制和运行OEM代码。它对于操作系统而言是完全透明的,也就是说操作系统并不知道CPU什么时候会进入和退出SMM。
基本术语:
SMM: System Management Mode
SMI: System Management Interrupt
SMRAM: System Management RAM
C-SEG: Compatibility Segment, 在Legacy Mode下,0xA0000~0xC0000这段地址空间被用作SMRAM和VGA Frame Buffer
H-SEG: High Segment
T-SEG: 用作4GB以下的SMRAM, 可以提供扩展的SMRAM空间
SMM的特权级:
SMM拥有最高的特权等级,因此在SMM下可以执行各种特权指令和IO操作。进入SMM的方式是当收到SMI(System Management Interrupt)时,而执行RSM指令则可以退出SMM。
SMM也其模式的切换:
关于SMI:
SMI是进入SMM的唯一途径,SMI可以由处理器的SMI#管脚有效或者是APIC(Advanced Program Interface Controller)总线的SMI信息。 它是不可屏蔽的中断,独立于其它形式的中断。
SMI的中断优先级是3, 而debug breakpoint是4, NMI是5, 当然最高的还是Reset, 它的中断优先级是1
关于SMRAM:
由于SMM的特殊性,所以进入SMM后的程序是运行在SMRAM中的,而不是随便找一段内存就可以运行。这当然是出于安全的考虑,毕竟SMM有最高的优先级,如果在哪儿都可以运行,那么其它的程序改动了内存里的一点东西,也会影响到SMM,如果这个改动是恶意的,那后果就不堪设想了。
由上图可以看出SMRAM的一个大致结构了,SMRAM的大小不是无限大的,它最初只有64KB,其起始地址是SMBASE(这个值保存在一个专门的寄存器中),在SMBASE+0x8000H处开始存放的是SMI的中断处理程序。而在SMRAM的高地址处存放着处理器进入SMM时的状态信息,这些信息在处理器退出SMM时会被恢复到处理器中。
SMBASE开机时的默认值是0x30000H,一般BIOS会把它重定位到0xA0000H处。
- SMM系列(1)-- SMM基本概念
- SMM系列
- SMM系列(3)-- SMM的中断处理以及SMBASE重定向
- SMM系列(2)-- SMI中断运行环境
- SMM 详解
- 漫谈IA32的系统管理模式(SMM)
- About the SMM rootkit
- SMM Rootkit limitations.
- SMM 系统管理模式
- SMM Core Architecture
- SMM ChildDispatch2 VS ChildDispatch
- smm框架集成总结
- SMM(Spring+SpringMVC+Mybatis)
- 64-bit EFI与SMM
- SMM框架添加自定义filter
- SMM整合页面初始化加载
- 漫谈IA32的系统管理模式(SMM)以及IA32的四种CPU模式
- BIOS工程师手边事--SMM模式
- spin
- const使用
- 问题合集 ------- 用 Eclipse 平台进行 C/C++ 开发
- C++ 第十周任务-输出完数
- 关于sqlplus和sqlplusw
- SMM系列(1)-- SMM基本概念
- 黑马程序员—C#异常和异常处理
- VC中如何通过回车键转移焦点?
- android4.0截屏处理
- 面向对象编程五大原则
- FB小图标的含义
- 一个月总结
- 黑马程序员—C#委托
- 开始运行下的所有命令及cmd下常用命令