Linux 虚拟地址来源疑问

zzz7794672 2019-11-05 11:08:42
Hi 请问有人知道Linux内核本身和进程中的虚拟内存是由谁指定的吗?我们都知道虚拟地址到物理地址要经过MMU,问题是虚拟地址是怎么来的呢?链接器吗?还是加载分配?
1 如果是链接器指定的,那么Linux内核的虚拟内存是否就对应是lds文件的地址?
2 如果进程的虚拟内存是在加载时由内核分配的,那么Linux内核本身的代码段和数据段的虚拟内存又是谁来指定的?
...全文
287 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Golden_Chen 2020-02-28
  • 打赏
  • 举报
回复
内核中的vm地址映射和进程的vm地址映射 ,是不同的空间。 内核VM是内核启动后根据PageTabel映射的内核空间 ,具体又细分Low Mem部分 和High Mem部分,IO地址映射等,你可以找资料具体了解下。 进程侧则是用户空间地址,每个进程都会维护自己的虚拟地址映射表,用户VM地址空间最大4G, 实际当然不可能都有实际的物理内存,一般是实际访问的时候,才去分配。

4,438

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧