当前位置:  技术问答>linux和unix

内存的物理地址最低总是从0开始的吗?

    来源: 互联网  发布时间:2016-08-20

    本文导语:  如题, 看到一本书上说内存的物理地址最低总是从0开始,在系统启动时将0---896M低端物理内存直接线性映射到内核线性空间 0xC000_0000+896M处,所以在内核中有 线性地址=物理地址+0xC000_0000 的简单映射。 难道内...

如题,
看到一本书上说内存的物理地址最低总是从0开始,在系统启动时将0---896M低端物理内存直接线性映射到内核线性空间
0xC000_0000+896M处,所以在内核中有 线性地址=物理地址+0xC000_0000 的简单映射。
难道内存的物理地址总是从0开始? 特别是在一些嵌入式系统中也是如些吗?
如果内存的物理地址是从0x3000_0000(1G)开始的,那内核中,线性地址到物理地址间的映射是怎样呢?

谢谢!

|
嵌入式RISC CPU,load/store 结构的,内存和IO共享相同的地址空间,所以一切都没准

如果内存的物理地址是从0x3000_0000(1G)开始的,那内核中,也是加一个固定偏移,加到0xc0000000

|
你没有完全理解虚拟地址的含义
0xC000_0000是虚拟地址(线性地址),雷打不动,一般情况下都是kernel空间的起始地址(X86,ARM),如果这时候物理内存不是0,自然把这个偏移也要算上了。

物理内存不连续,跟这个没关系,内核启动的时候bootmem分配器会处理空洞。

|
1,PAGE_OFFSET当然可以修改,内核配置里都有这项,这个内核和用户空间比为1:3是前辈们多年前就定下来的,不是特殊情况是不需要修改的。
2,如你说的确有问题了,但是到底内核是为硬件设计的还是硬件为内核设计的,还是内核和硬件要彼此匹配呢?

    
 
 

您可能感兴趣的文章:

  • 请教一个关于内存分配的问题(系统和DMA共享一块物理内存空间)
  • unix/linux知识 iis7站长之家
  • [跪求解答]关于虚拟内存中页目录与页表在物理内存中加载的问题
  • 【操作系统虚拟内存和物理内存疑惑】
  • Solaris下如何获得物理内存和虚拟内存的大小?
  • 虚拟内存容量小于物理内存容量时,系统性能还能得到改善吗?
  • 32位地址空间指的是虚拟内存的寻址范围,但是为什么要求物理内存大小不能大于4G?
  • 用top命令查看一个进程,虚拟内存一直不变,但物理内存每时5s增长12k或20k.
  • solaris 8 下有没有返回系统总物理内存和当前所使用内存大小的函数。(不是top,vmstat命令)
  • linux用户态内存的物理地址问题?
  • 怎样在Linux下读取物理内存
  • 求助!怎样实现一个程序长期固定的在一块物理内存
  • 请教:IBM AIX 4.3下面如何获得系统当前的物理内存占用率啊?
  • 用什么命令可以得到HP-UX的实际物理总内存?急急啊 !
  • Linux内存映射 物理地址映射到虚拟地址
  • 如何不写驱动通过应用程序获得一块内存并取得它的物理地址?
  • 请问:Linux的物理内存怎样看?
  • 请问怎么看LINUX的物理内存有多少?
  • hp-unix 如何查看机器有多少物理内存
  • fedora10安装oracle11g提示物理内存不足怎么办?
  • linux内存管理虚拟地址 逻辑地址 交换分区(swp)
  • 怎样读取指定内存地址处指定长度的内存数据???(
  • 怎样获取物理内存在地址总线中的起始地址?
  • get_free_pages后获得的虚拟内存地址如何才能转换成物理地址?
  • DMA中从内存传输到内存源和目的地址怎么设
  • Linux 如何获得分配内存的起始地址
  • Linux中有关内存地址的问题
  • 共享内存,如何固定逻辑地址(映射地址)问题
  • 【显存地址问题】主内存vs显存
  • 如何在LINUX中获取进程中某个虚拟地址所在物理内存地址
  • 嵌入式linux的应用程序分配内存地址问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Vectors 成员 get_allocator():返回vector的内存分配器
  • 我的机器内存128 ,安装redhat9 后,可用内存很少了,如何节省内存呢?
  • C++ Vectors 成员 capacity():返回vector所能容纳的元素数量(在不重新分配内存的情况下)
  • 奇闻:Apache+Apache JServ 1.1.1+1G内存居然报内存不够,那位高友知道参数设置,把俺的1G内存都利用起来,感激不尽啊
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 程序需要共享内存相当大,但是系统的内存有限
  • C/C++内存池实现介绍及基本要求
  • 关于大于2G内存的使用.....按32位编译的进程怎么使用大于2G的内存?
  • linux下free命令显示的内存使用情况分析
  • redhat9内存使用率高达73%,怎么查看内存具体使用情况
  • c/c++内存堆分配和栈分配理解
  • 遇到奇怪的内存泄露问题,应用程序杀死内存无法释放!
  • Ubuntu查看内存,进程相关命令介绍
  • 多个进程对系统V共享内存进行读写,怎样实现对共享内存部分进行加解锁?
  • Linux 共享内存介绍及实现代码
  • redhat7.1 p4,700多m内存,经常耗了400m内存,为什么?
  • Linux内存文件系统(ramdisk)的三种实现方式
  • linux下内存泄露检测工具 mtrace 如果记录.so文件中的内存信息
  • Microsoft IE MSHTML内存破坏远程代码执行漏洞
  • 有人熟悉DMA吗?我要实现内存中的内存的“搬动”。(LINUX)
  • Microsoft Internet Explorer内存破坏漏洞(CNVD-2013-13096)
  • unix下如何获得内存信息(内存占有率等)?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3