设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
内核与驱动开发
›
请教:896M物理内存限制问题
返回列表
查看:
1297
|
回复:
3
请教:896M物理内存限制问题
[复制链接]
chosin
chosin
当前离线
积分
2
IP卡
狗仔卡
发表于 2007-3-20 14:18:07
|
显示全部楼层
|
阅读模式
小弟最近看书,看到 linux存储器寻址 这方面的内容,有点疑问,请各位大虾帮忙解释一下。
1. linux 将内核影射到0~3G的线性地址空间,而将内核以及内核进程影射到3G以上的线性地址空间。从而导致如果物理内存>896M则不能完全将物理内存影射到线性地址空间中。
2.为了实现由线性地址到物理地址的转换,linux的内核有内核页表、每个用户进程也都有自己的页表。
以上两点是我的理解,不知道是否正确?
如果正确,我有个疑问:既然内核和用户进程都有自己的页表,那就是说内核和用户进程之间的线性地址空间是相互独立的,为什么还要限制内核只能影射到3G以上的空间、用户进程只能影射到0~3G线性空间?
如果没有这个限制那么内核不就可以将4G的物理空间都影射到线性空间中了吗?这样内核可以访问的物理地址就是4G而不是896M了?
请各位大侠给解答一下吧,这个疑问我想了好几天了,谢谢了!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
scutan
scutan
当前离线
积分
203
IP卡
狗仔卡
发表于 2007-3-20 16:58:45
|
显示全部楼层
第一个问题
inux中内核栈与用户栈是分开的,不像windows那样是共用的,所以就会分为用户区和内核区,如果需要将两个区的数据进行通信的话就要调用如get_from_user()之类的函数来通信. 这是Linux提供的一种机制而已.
第二个问题,我也一直没有搞懂,呵呵. 书上说896M以上内存就不可用了.希望哪个达人解释一下!
回复
支持
反对
使用道具
举报
显身卡
chosin
chosin
当前离线
积分
2
IP卡
狗仔卡
楼主
|
发表于 2007-3-20 20:02:08
|
显示全部楼层
Post by
scutan
第一个问题
inux中内核栈与用户栈是分开的,不像windows那样是共用的,所以就会分为用户区和内核区
多谢!不过对于第一个问题能不能给解释的详细一些?
“内核栈与用户栈是分开的”与“分为用户区和内核区”两者是什么关系?两者之间有什么必然的联系吗?
windows的内核能在不使用物理地址扩展(PAE)分页机制的情况下直接对1GB以上4G以下的RAM进行寻址吗?
不好意思,小弟愚钝,实在是不明白,问的有点多,请多见谅!
回复
支持
反对
使用道具
举报
显身卡
biosxjj
biosxjj
当前离线
积分
646
IP卡
狗仔卡
发表于 2007-3-21 09:51:52
|
显示全部楼层
2个栈和一个栈有什么关系 就是什么关系 ...........
windows内核只是读取mmu?? 单元映射的虚拟地址空间 ............都是4g 无论内存大小...
对于4g无理内存 cpu32位本来就支持~~
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
Linux 输入开发与研究
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表