修正为硬件内存管理机制和内存安全.
Signed-off-by: chen.yang <chen.yang@yuzhen-iot.com>
This commit is contained in:
parent
eb80a42de6
commit
8c96c44a7d
@ -19,9 +19,11 @@ Intel 引入段寄存器的另一个好处是能够将内粗数据段、代码
|
||||
|
||||

|
||||
|
||||
## 系统内存安全
|
||||
## 硬件内存管理机制和内存安全
|
||||
|
||||
### 分段管理的内存安全
|
||||
x86/64 系列处理器的内存管理是一套非常有代表性的内存管理机制,该机制主要包括分段机制和分页机制两种。x86/64 系列处理器有多种运行模式,在进入保护模式时必须开启段式管理机制;进入长模式时必须开启分页机制。
|
||||
|
||||
### 分段内存管理和内存安全
|
||||
|
||||
x86/64 系列处理器在实模式下,其段地址+偏移地址即可以得到线性地址。而进入保护模式后,段寄存器中的数据被分割为不同的功能区域:
|
||||
|
||||
@ -43,8 +45,6 @@ x86/64 系列处理器通过段描述符、段寄存器和段选择子中的如
|
||||
|
||||
GDTR 和 LDTR 指定了当前所用 GDT 和 LDT 所在内存的起始位置。
|
||||
|
||||
***注:x86/64 系列处理器进入保护模式时必须开启段式管理机制;进入长模式时必须开启分页机制。***
|
||||
|
||||
程序运行时,必然有需要修改段寄存器的需求,此时需要通过指令将载段选择子加载到段寄存器,而段选择子的 RPL 代表了请求的操作级别。Intel 有 4 个操作级别(运行级别/安全级别),数字越大,运行级别越低:
|
||||
|
||||

|
||||
@ -64,7 +64,7 @@ mov ds, ax ;加载段选择子到 DS 段寄存器
|
||||
|
||||
***注:与内存类似的,Intel 架构下还有一组为中断和任务准备的数据结构,用于保证中断和任务安全。***
|
||||
|
||||
### 分页管理的内存安全
|
||||
### 分页内存管理和内存安全
|
||||
|
||||
Intel 分页机制的实现,采用了页目录、页表和页的机制,同时将线性地址拆分成不同的区域,用于实现页目录、页表、页的寻址。Intel 4k 页分页机制如下:
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user