Linux内核之X86系统寄存器(初始化系统,控制系统操作)

一、系统寄存器

1.EFLAGS 寄存器

① 存放system flags和IOPL;
②控制任务切换和模式切换,处理终端,指令追踪;

2.控制寄存器(CR0,CR2,CR3,CR4)

①控制系统级操作;
②支撑操作系统某些特性;

3.GDTR/LDTR/IDTR

①记录了GDT/LDT/IDT表的线性基址和大小;

4.任务寄存器(task register)

①当前任务的线性地址;
②当前任务TSS的的大小;

5.Model-specific registers(MSRs)

① 主要用于操作系统或程序执行过程;

6.调试寄存器(debug registers)(DR0—DR7):用于设置断点

注:多数系统限制应用程序对系统寄存器的访问(除了EFLAGS);程序运行在特权级0时,可以更新系统寄存器的值;

7.IA-32e(64位扩展技术)

(1)IA32_KernelGSbase
(2)IA32_LSTAR
(3)IA32_SYSCALL_FLAG_MASK
(4)IA32_STAR_CS

需要的小伙伴私信内核领取

二、内存管理相关的寄存器(GDTR,LDTR,IDTR&&TR)

1.GDTR(Global Descriptor Table Register,全局符号表寄存器)

(1)基址(保护模式:32位;IA-32e模式:64bits)+GDT表最大size(16bit),基址是全局符号表GDT的地址;
(2)LGDT、SGDT分别load和store GDTR寄存器;
(3)计算机刚启动或者处理器重置之后,基址被设置为0,limit设置为0FFFFH;设置基址的值是保护模式下初始化处理器的一部分;

2.LDTR(Local Descriptor Table Register, 本地符号表寄存器)

(1)段选择器(16bits) + 基址(保护模式:32bits;IA-32e模式:64bits)+ segment Limit+LDT的属性;基址是LDT表的基础地址,Segment Limit表明了段字节数目;
(2)LLDT和SLDT指令分别load和store LDTR寄存器;GDT中存在LDT表的段描述符,LLDT指令load segment selector到LDTR时,基址和LDT属性也自动被load到LDTR中;
(3)任务切换时,新任务的段选择器、段基址、LDT表属性会自动被加载到LDTR中;
(4)计算机上电或者处理器重置时,LDTR中的segment selector、base address分别被置为0和0FFFFH

3.IDTR(Interrupt Descriptor Table Register,中断符号表寄存器)

(1)base address(保护模式:32bit;IA-32e模式:64bits)+table limit(16bit),基址指定了IDT表的地址,table limit说明了IDT表的大小;
(2)LIDT和SIDT命令分别负责IDTR寄存器的load/store操作;
(3)计算机刚上电或者处理器reset时,基址设置为0,limit设置为0FFFFH;LDTR初始化是处理器初始化的一部分;

4.TR(Task Register,任务寄存器)

(1)segment selector(16bit,段选择器)+base address(保护模式:32位;IA-32e模式:64bits)+ segment limit+当前任务TSS段属性描述符;(基址是TSS段基址;segment limit限制了TSS大小)
(2)GDT表中记录了TSS段描述符;
(3)LTR和STR分别负责TR寄存器的load和store操作;计算机上电或者处理器重置时,base address置为0,segment limit 设置为0FFFFH;
(4)发生任务切换时,自动调用LTR,将新任务的段选择器、基址、描述等load到TR寄存器中;

三、控制寄存器(CR0--CR4,CR8)

1.一般约定

(1)CRO和CR4的3263bit预留,必须全为0;CR0和CR4高32位任意一位非0会触发general-protection exception;
(2)CR2的所有64bits均可被软件读写;
(3)CR3的40bit51bit预留,必须为0;
(4)CR8仅仅在64bit模式下可以使用;

2.控制寄存器

3.控制寄存器中的标识

四、Segment Register

注:code segment被设置为Read-Only Segments;64bit模式下,分段一般是disabled的,处理器将CS/DS/ES/SS值设置为0;

五、EFLAGS寄存器中系统标志

控制I/O,可屏蔽硬件中断、调试、任务切换,支持virtual-8086 mode;

原文作者:cyj_haiou

原文地址:http://t.csdn.cn/vMsTI(版权归原文作者所有,侵权联系删除)

展开阅读全文

页面更新:2024-04-01

标签:寄存器   基址   系统   初始化   线性   特权   控制系统   内核   指令   处理器   清零   模式   操作   地址

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top