lianzi
驱动牛犊
驱动牛犊
  • 注册日期2007-01-18
  • 最后登录2009-08-24
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望135点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
阅读:2041回复:2

vmalloc函数 ????急急急

楼主#
更多 发布于:2008-04-25 22:46
内核( 在 x86 体系上, 在缺省配置里) 在用户空间和内核之间划分 4-G 虚拟地址; 在 2 个上下文中使用同一套映射. 一个
典型的划分分出 3 GB 给用户空间, 和 1 GB 给内核空间

一个真正的内核虚拟地址, 是一个由诸如 vmalloc 的函数返回的地址 -- 就是, 一个映射到内核页表中的虚拟地址。。这句话是LDD3上的原话,
没看懂

3G到4G这个地址不是内核虚拟地址么

vmalloc函数的调用是怎么回事啊,它得到的不是虚拟地址么,它返回的地址不是通过两级分页来找到具体的物理页面吗,在书上看到一个关于他的应用,及其复杂,没看懂啊

书上说:需要先找到VMALLOC分配的地址对应的内核逻辑地址,求出内核逻辑地址后,在减去一个偏移量PAGE_SIZE就可得到对应的物理地址。


这个函数返回的地址有对应的逻辑地址么
yqli520
驱动牛犊
驱动牛犊
  • 注册日期2006-11-21
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望45点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-04-18 11:32
Re:vmalloc函数  ????急急急
它得到的是一个高端地址,在实际物理内存地址范围以外的一个地址,在物理内存中一般是不连续的
驱网无线,快乐无限
gawing
驱动牛犊
驱动牛犊
  • 注册日期2009-04-27
  • 最后登录2009-04-27
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望41点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-04-27 15:49
Re:vmalloc函数  ????急急急
一个真正的内核虚拟地址, 是一个由诸如 vmalloc 的函数返回的地址 -- 就是, 一个映射到内核页表中的虚拟地址。。
-----就是说通过vmalloc返回的是虚拟地址啊!虚拟地址与逻辑地址间同过页表来记录对应关系啊!

要求逻辑地址,直接调用api--》virt_to_phys()就行了
游客

返回顶部