社区
Linux_Kernel
帖子详情
关于linux临时内核页表的双映射问题
ayuan114
2011-04-03 06:19:35
最近在学习linux内核,我想问为什么要双映射?直接映射到3G以上不就行了吗?
...全文
162
3
打赏
收藏
关于linux临时内核页表的双映射问题
最近在学习linux内核,我想问为什么要双映射?直接映射到3G以上不就行了吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nimi521
2011-04-06
打赏
举报
回复
节省内存么
jiura
2011-04-06
打赏
举报
回复
数据段..代码段.堆段..栈段..
程序进程编译后就已经分配, 而且每个进程都会分配比实际需要内存大的多的内存空间.
这样算下来..3G就不够了..
lgjywjy
2011-04-06
打赏
举报
回复
因为在硬件上, 高位内存是有用处的(用作设备映射等), 就像以前16位时代, 1M的内存, 640k以上是bios用掉的一样.
arm-
linux
内存管理学习笔记(2)-
内核
临时
页表
的建立
需要搞明白的是,
linux
系统上执行./a.out运行,其实并不是运行的a.out这个elf文件。
内核
对于要运行的elf文件会调用load_elf_binary进行解析,首先是根据elf文件的header信息获取它需要的解释器,然后加载需要运行的各个段到内存中,把控制权交给解释器,解释器会加载该程序需要动态链接库(静态链接就不运行解释器),最后解释器将控制权交给内存中的程序入口,程序运行。
Linux
内核
页表
的建立
Linux
内核
页表
的
临时
映射
背景初始阶段内存的使用情况 背景 由于
Linux
由BIOS加载后,起始阶段其实是运行在实模式,此时并没有开启分页机制。那
Linux
在开启分页机制之前需要先做哪些准备工作以支持分页机制?答案是页目录项及
页表
项。 初始阶段内存的使用情况 一般来说,
Linux
内核
安装在RAM中从物理地址0x0010 0000开始的地方,也就是说,从第二个MB开始。 为什么
内核
没有安装在RAM第一个MB开始的地方?因为PC体系结构有几个独特的地方必须考虑到。例如: 页框0由BIOS使用,存放加电自检(
浅析
linux
内核
内存管理之
临时
内核
页表
浅析
linux
内核
内存管理之
临时
内核
页表
临时
页全局目录是在
内核
编译过程中静态地初始化的,而
临时
页表
是由startup_32()汇编语言函数初始化的。
临时
页全局目录存放在swapper_pg_dir变量中,
临时
页表
在pg0变量开始出存放,紧接在
内核
未初始
Linux
内存管理 (1):
内核
镜像
映射
临时
页表
的建立
linux
, 内存管理
Linux
kernel 分析之二十:内存管理-
内核
中的
页表
映射
总结
从线性地址到物理地址的转换,实际上是一种
映射
。所有进程的3~4G的线性地址实际上是
映射
到相同的物理地址的。这一点不多说了。为了方便起见,3~4G的线性地址与对应的物理地址基本上是呈线性关系的。即线性地址=物理地址+3G。但是如果把这1G的线性地址都简单地处理为对应物理地址+3G,就会有新的
问题
产生。例如,如果物理地址大于4G,那么
内核
就没法访问这些地址了。所以,
内核
必须要从这1G的线 性空间中预
Linux_Kernel
4,469
社区成员
17,458
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章