Chinaunix首页 | 论坛 | 博客
  • 博客访问: 715383
  • 博文数量: 192
  • 博客积分: 2653
  • 博客等级: 少校
  • 技术积分: 1623
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-31 18:25
个人简介

How tough life is, how strong you should be!

文章分类

全部博文(192)

文章存档

2015年(1)

2014年(2)

2013年(37)

2012年(152)

分类: LINUX

2013-11-04 16:55:32

原文地址:http://blog.csdn.net/opencpu/article/details/6788019
如果是
 arm 256MB sdram at 3000 0000-3FFF FFFF

1.内核线性地址需要覆盖整个物理内存,这样才能达到他管理的目的,如某个进程页表映射到了物理页框0x3000 0000,通过内核页表也可以映射到此页框
2.如果从页目录项768到1023都采取直接映射,最多也只能同时覆盖1GB物理内存
所以,内核干脆将最后32项不参与直接映射,而是可以多次重复映射,每次映射都是暂时的,这样就把
前面224个页表直接映射(可以同时覆盖896MB物理内存),后面32项页表通过重复映射,能覆盖的物理内存就不止128MB了

3.一个计算机系统的物理内存大小正常情况下都是固定的,所以前面224个内核页表(对应页目录项768-991)的内容可以确定,
如果计算机有256MB内存,那么linux在启动时就可以为这256MB物理内存建立内核页表,并且只需64个页表(对应如上图页目录项768--831,而页目录项831-991就用不到了)就可全部同时覆盖,页表项的内容(即物理页框地址)在整个系统运行期间固定不变
如果计算机系统有2G内存,那么linux在启动时可以先为前896MB物理内存建立内核页表,这要花掉整个的
第768-991项页目录项,另外还有1G+128M的物理内存不得不在使用到某个页框的时候用992-1023项页目录项临时映射,
4.内核页目录仅一个,并且前768项不用

阅读(1697) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~