软件安全学习笔记(3):Windows内存结构和管理
2015-09-07 21:42
239 查看
一、CPU特权级与内存访问
虚拟内存中用户模式区和内核模式区对应,处理器也分为用户模式(Ring 3)和内核模式(Ring 0)
用户程序一般运行在用户模式,其访问内存空间也局限于用户区
操作系统内核代码(如系统服务和设备趋同程序),则运行在内核模式,可以访问所有内存空间,使用所有处理器指令
二、用户内存
用户区是每个进程真正独立的可用内存空间,运行中的大部分数据都保存在这里。
每个进程的用户区的虚拟内存相互独立
三、内核区内存
数据被所有进程共享,是操作系统代码的驻地。分区中所有代码和数据都被操作系统保护,用户区代码无法直接访问。
四、虚拟地址与物理地址
x86 widows默认使用二级页表来把虚拟地址转换为物理地址,默认页面大小为4K。
一个32位地址划分为三个部分:页目录索引(10位)、页表索引(10位)和字节索引(12位)
页目录:通过CR3寄存器获得该进程页目录
通过虚拟地址中的高10位,在页目录中找到对应的PDN(页目录项,其指向页表),再通过页表索引在页表中找到PTE(页表项,指向虚拟页面所映射的物理地址),PTE中的地址和字节索引之和就得到了目标地址。
虚拟内存中用户模式区和内核模式区对应,处理器也分为用户模式(Ring 3)和内核模式(Ring 0)
用户程序一般运行在用户模式,其访问内存空间也局限于用户区
操作系统内核代码(如系统服务和设备趋同程序),则运行在内核模式,可以访问所有内存空间,使用所有处理器指令
二、用户内存
用户区是每个进程真正独立的可用内存空间,运行中的大部分数据都保存在这里。
每个进程的用户区的虚拟内存相互独立
三、内核区内存
数据被所有进程共享,是操作系统代码的驻地。分区中所有代码和数据都被操作系统保护,用户区代码无法直接访问。
四、虚拟地址与物理地址
x86 widows默认使用二级页表来把虚拟地址转换为物理地址,默认页面大小为4K。
一个32位地址划分为三个部分:页目录索引(10位)、页表索引(10位)和字节索引(12位)
页目录:通过CR3寄存器获得该进程页目录
通过虚拟地址中的高10位,在页目录中找到对应的PDN(页目录项,其指向页表),再通过页表索引在页表中找到PTE(页表项,指向虚拟页面所映射的物理地址),PTE中的地址和字节索引之和就得到了目标地址。
相关文章推荐
- JDBC处理大数据、二进制数据和批处理
- 使用传感器
- 独立游戏人:像素风格游戏制作分享(转)
- Apache开启不了------The requested operation has failed!
- ArcGIS AddIN 之 DockPanel 界面空白
- (算法)位图BitMap
- MAVEN 创建父子项目,聚合
- 新人乍到
- IntelliJ IDEA使用
- 戴维营教育2015年iOS暑期班笔试面试基础考核题
- 剑指Offer系列---(7)从尾到头打印链表
- mysql数据库常用的系统变量
- 位操作
- NumPy教程(转)
- hadoop中HBase、Flume、Hive、Zookeeper简要概述
- java IO操作
- Mifare系列2-非接触卡标准(转)
- POJ3368--Frequent values
- 30号练习
- 安卓框架——XListView(上拉加载,下拉刷新)的使用方法