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

linux中线性内存地址映射成离散物理的地址

    来源: 互联网  发布时间:2017-05-02

    本文导语:  最近在学习linux内核,书上说线性内存地址转换成物理内存地址可以减少碎片,但是线性内存地址是怎么映射成离散的物理内存地址呢,百思不得其解,网上查了很多资料,要么看不懂,要么牛头不对马嘴,很是郁闷...

最近在学习linux内核,书上说线性内存地址转换成物理内存地址可以减少碎片,但是线性内存地址是怎么映射成离散的物理内存地址呢,百思不得其解,网上查了很多资料,要么看不懂,要么牛头不对马嘴,很是郁闷,有人帮帮我解决这个问题么,另外,有前辈指点一下学习内核的方法么,我是freshman,不想走太多弯路,这样很浪费时间,谢谢各位,不胜感激。

|
MMU硬件完成转换和映射,但需要操作系统提供映射页表。

你可以针对自己研究的处理器,着重研究一下mmu和进程空间映射这一块。

内核学习没有多少捷径可走,找自己感兴趣的方面,塌下心来看书,看代码。

|
举个例子吧比如有两块内存,是碎片,分别是4K, 
物理地址是 0x04000开始和0x14000开始
通过内存映射,虚拟地址为 0x800000开始,可以使用连续的8K空间来映射这2块4K的内存

学习内核好像真的没什么捷径,就像是练内功一样。

|
可以看看基础点的汇编知识!

|
这个可以分两部分,一个是用户态线性地址空间到物理页框的映射,一个是内核对页框资源的管理。前者是通过页表来做的,内核负责维护页表,硬件mmu负责用户进程代码执行时的虚拟地址到物理地址的转换,页表这个东西我觉得你应该有个基础的了解吧,虚拟地址映射物理地址是在进程需要对虚拟地址首次进行写操作时做的(实际上还有其他情况,比如页高速缓存,swap后恢复等),这时由于虚拟地址未能映射物理地址,mmu转换时会产生缺页异常,内核利用异常处理程序来为这个虚拟地址映射一个物理页框。这个页框内核是如何去获得的,也就是第二个问题了,内核有一个叫伙伴系统的东西来管理空闲页框,这个有兴趣可以去看看,也很简单

    
 
 

您可能感兴趣的文章:

  • linux/Centos下查看和修改网卡Mac地址(ifconfig命令)
  • Linux内存映射 物理地址映射到虚拟地址
  • linux内存管理虚拟地址 逻辑地址 交换分区(swp)
  • X86下linux虚拟地址向物理地址的转换
  • Linux 物理地址转化成虚拟地址及IO_ADDRESS的用法
  • 请教:linux下看网卡的IP地址,DHCP,DNS地址的命令是什么?
  • Linux下局域网内如何根据对方机器的IP地址获得对方机器网卡的MAC地址?
  • linux 中怎么根据MAC地址获得IP地址?(用C语言实现)
  • 《操作系统原理linux篇》逻辑地址,线性地址 物理地址
  • 有谁会用linux里面的wget?有一个参数是-i 后面加上url地址文件,我不明白什么叫url地址文件,那位大侠告诉我?
  • 如何在LINUX中获取进程中某个虚拟地址所在物理内存地址
  • linux在setup.s里将system代码从10000处移到地址0后,原来驻留在地址0的BIOS中断程序去哪了?
  • linux进程地址
  • Linux中有关内存地址的问题
  • 虚拟机linux访问本地windowsip地址
  • Linux的虚拟地址空间
  • Linux 如何获得分配内存的起始地址
  • 嵌入式linux的应用程序分配内存地址问题
  • linux0.11内核线性地址问题,请教!!
  • 怎样修改linux下网卡的MAC地址?
  • 跪求Linux系统下载地址
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • LINUX如何映射另一台LINUX的共享目录?
  • 在linux下能实现多端口映射吗?
  • linux 映射问题
  • 路由方式ADSL下,linux的ftp如何做端口映射?
  • linux 键盘映射的问题!!!
  • 如何取消Linux中的文件映射
  • 在linux下怎样关闭端口映射
  • 跪求Linux下双网卡做端口映射详细操作方法
  • 怎样在TURBO LINUX下实现静态端口映射
  • 有谁在 Linux 下用 UPnP 做端口映射成功了吗?
  • 莫名其妙,linux服务器端口映射不出去
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • 网段不同,windows可以映射linux的共享文件夹么?在线等,急!
  • 哪位大哥对“arm-linux的页表映射”比较熟悉啊?
  • 怎么样实现由Linux服务器映射访问发布Websphere的win服务器!
  • 关于linux应用程序中文件映射的问题
  • linux的内核能够直接映射的最大RAM容量?
  • 哪位大哥对“arm-linux的页表映射”比较熟悉啊?
  • linux下设置映射网络驱动
  • 求救,Linux,怎么进行端口映射?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


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

    ©2012-2021,