操作系统真象还原 内存管理
Posted 菜比170
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统真象还原 内存管理相关的知识,希望对你有一定的参考价值。
翻来覆去看了好多遍的内存管理 还是没有弄明白 先把想明白的记下来好了
首先 是开启分页管理 一共三步 1 准备好页目录表 页表 2 将页目录表的物理地址写入到cr3寄存器中 3 打开cr0的31位 即PG位
先说说准备页目录表和页表 页目录表被放在了低端1MB内存之内 具体位置是0x100000 占据一页大小 4K
其中包括了1024个一级页表 这1024个一级页表只有256个是被使用的 就是第0个和768-1023个 其中 最后一个页目录项指向了页目录项的起始地址
第0个和第768个指向了同一个页表项 第一个 也就是处在0x101000位置上的页表项
页目录项中有1024个pte 每个pte中有1k个页 每个页大小为4k 也就是说 每个pte指向的空间为4M 所以这一个pde 中,内核实际的大小是255个pdt × 4 也就是1GB - 4MB的内存
从0xc009a000到0xc009e000的四个页框就是位图的位置 通过位图来对页框进行分配
首先 内存池分为 内核内存池和用户内存池 顾名思义 内核内存池就是对内核的高1GB空间进行分配 此外 还有一个虚拟地址池 virtual_addr用于给内核分配虚拟地址
目前使用的地址有低端1MB内存和页表项占用的内存 剩下的就是剩余内存
然后是分配页内存 主要是通过先分配一个虚拟地址 然后在物理内存池中分配一个物理内存 然后进行映射
以上是关于操作系统真象还原 内存管理的主要内容,如果未能解决你的问题,请参考以下文章
Cannot Connect to X display真象还原 | 天坑解决