由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - user virtual address space VS kernel virtual address space (转载)
相关主题
这么多CS的,为啥没人讨论内核,驱动之类的呢。。。why do we need to map user level threads to kernel threads?
google intern interviewbase system kernel bug 如何patch?
高人来解这道题,帮帮忙!也发一个跟memory有关的问题
V 家招 Kernel Test DeveloperBloomberg, Amazon 面经,为onsite攒RP
VMware 招 Senior Kernel Tester (2年以上工作经验)上面经,明天G onsite, 求祝福
apple电面完了一般多久出结果vmware has 1 open for virtual device
在intel或者nvidia做软件工资就只有FLG的一半急招 USB driver virtualization (Senior/staff) at VMware
老中思维定式:我做的东西难,把你们都比下去了,所以该挣最多一个较难的pythpn输出函数运行信息的project.
相关话题的讨论汇总
话题: virtual话题: kernel话题: address话题: space话题: user
1 (共1页)
r**u
发帖数: 1567
1
【 以下文字转载自 CS 讨论区 】
发信人: raou (raou), 信区: CS
标 题: user virtual address space VS kernel virtual address space
发信站: BBS 未名空间站 (Sun Apr 18 17:14:09 2010, 美东)
32-bit machine,virtual address space 4GB,kernel(e.g. linux)会把这4GB,分成
3GB user/1GB kernel。
1GB kernel virtual address space跟物理内存是1-to-1的map。对user virtual addr
做virtual --> physical 转换是也是转到一个kernel virtual addr再到physical
memory。
那这样不是只能用到1GB physical memory,如果有更多
的就用不到了。windows也有这个机制,好奇这样的话不是加内存都没用?大牛给解释
一下啊
t**n
发帖数: 272
2
没错, 32位机器就是只能用4G内存
精确地说,从前winxp只能用2G内存,因为它把高2G物理地址全留给外设了
从某一个winxp的补丁开始winxp支持4G物理内存,但也只是理论上,像PCI/PCI Express/
显卡都要占用一些物理内存空间
l*******y
发帖数: 1498
3
kernel virtual address space可以分成2部分。一个是logical adress space, 对应
physical address < 896M的部分,这个部分(Low memory)和physical address只差
一个constant的 offset. 另外一部分是 physical address > 896M的部分kenel不能直
接访问,要做一个mapping 建立page table后才可以访问。
kmalloc返回的地址就是 logical adress, physical contiguous, 这个部分地址不用
page table.
vmalloc返回的 kernel virtual address是 virutal contiguous, 要建page table
1G以上的memory是可以用到的,把暂时不用的page mapping保存一下,然后去map 别的
部分就可以了。
Linux是这样的,Windows不知道是什么样子。
r**u
发帖数: 1567
4
多谢多谢。也就是说kernel只能用到up to 1GB physical mem,但是user process可以
用到more than 1GB是吧。
还有一个困惑的地方,比如物理内存少于1GB,这种情况是啥样的?user virtual addr
和 kernel virtual addr会map到同一个physical mem frame?

【在 l*******y 的大作中提到】
: kernel virtual address space可以分成2部分。一个是logical adress space, 对应
: physical address < 896M的部分,这个部分(Low memory)和physical address只差
: 一个constant的 offset. 另外一部分是 physical address > 896M的部分kenel不能直
: 接访问,要做一个mapping 建立page table后才可以访问。
: kmalloc返回的地址就是 logical adress, physical contiguous, 这个部分地址不用
: page table.
: vmalloc返回的 kernel virtual address是 virutal contiguous, 要建page table
: 1G以上的memory是可以用到的,把暂时不用的page mapping保存一下,然后去map 别的
: 部分就可以了。
: Linux是这样的,Windows不知道是什么样子。

l*******y
发帖数: 1498
5
少于896M的话,我觉得所有的 physical address都能被kernel直接访问,都有logical
address.
user virtual addr 和 kernel virtual addr 应该可map到同一physical page吧,如
果kernel 想访问的话。
当user app 执行write或者read时,会通过相应system call 进入kernel mode,这个
时候kernel 应该直接用user app的page table 就可以了吧。我也不确定,我自己理解
的。。。

addr

【在 r**u 的大作中提到】
: 多谢多谢。也就是说kernel只能用到up to 1GB physical mem,但是user process可以
: 用到more than 1GB是吧。
: 还有一个困惑的地方,比如物理内存少于1GB,这种情况是啥样的?user virtual addr
: 和 kernel virtual addr会map到同一个physical mem frame?

1 (共1页)
相关主题
一个较难的pythpn输出函数运行信息的project.VMware 招 Senior Kernel Tester (2年以上工作经验)
onsite遇到的几个面试题apple电面完了一般多久出结果
Maximum Contiguous Subarray在intel或者nvidia做软件工资就只有FLG的一半
请教一道题老中思维定式:我做的东西难,把你们都比下去了,所以该挣最多
这么多CS的,为啥没人讨论内核,驱动之类的呢。。。why do we need to map user level threads to kernel threads?
google intern interviewbase system kernel bug 如何patch?
高人来解这道题,帮帮忙!也发一个跟memory有关的问题
V 家招 Kernel Test DeveloperBloomberg, Amazon 面经,为onsite攒RP
相关话题的讨论汇总
话题: virtual话题: kernel话题: address话题: space话题: user