有时system.map文件可以帮助我们理解内核编译,它记录了所有代码的运行地址。对于系统的oop消息、或者通过gdb的调试消息,都需要根据该对照表,将内核熟悉的函数地址转化为用户熟悉的函数名称,便于用户进行故障定位、运行监控。
system.map内容格式为:线性地址 类型 符号
符号类型.
小写字母表示局部; 大写字母表示全局(外部).
A
The symbol's ...
分类:
其他好文 时间:
2015-05-17 10:48:46
阅读次数:
138
整个系统的性能取决于如何有效地管理动态内存。
一、页框管理
1、页描述符
2、非一致内存访问(NUMA)
3、内存区(Memory Zone)
ISA总心啊的直接内存存取(DMA)处理器有一个严格的限制:它们只能对RAM的前16MB寻址。在具有大容量RAM的现在32位计算机中,CPU不能直接访问所有的物理内存,因为线性地址空间太小。
Linux把内存节点的物理内存划分...
分类:
其他好文 时间:
2015-05-11 10:55:53
阅读次数:
238
分析linux内存管理机制,离不了上述几个概念,在介绍上述几个概念之前,先从《深入理解linux内核》这本书中摘抄几段关于上述名词的解释:一、《深入理解linux内核》的解释逻辑地址(Logical Address) 包含在机器语言指令中用来指定一个操作数或一条指令的地址(有点深奥)。这种寻址方式....
分类:
系统相关 时间:
2015-04-27 00:21:31
阅读次数:
220
linux内存管理---虚拟地址、逻辑地址、线性地址、物理地址的区别(一)这篇文章中介绍了四个名词的概念,下面针对四个地址的转换进行分析CPU将一个虚拟内存空间中的地址转换为物理地址,需要进行两步(如下图):首先,将给定一个逻辑地址(其实是段内偏移量,这个一定要理解!!!),CPU要利用其段式内存管...
分类:
系统相关 时间:
2015-04-27 00:09:26
阅读次数:
270
目录 1 内存地址类型 2 硬件上的“内存段式管理” 2.1 段选择符和段寄存器 2.2 段描述符 (Segment Descritor) 2.3 段描述符的快速访问 2.4 逻辑地址到线性地址的转换 3 Linux 里内存段式管理 4 硬件上的页式管理 4.1 常规分页 4.2 拓展分页 5 Li...
分类:
系统相关 时间:
2015-04-18 19:03:19
阅读次数:
191
## 概述 在32位的系统上,内核占有从第3GB~第4GB的线性地址空间,共1GB大小,内核将其中的前896MB与物理内存的0~896MB进行直接映射,即线性映射,将剩余的128M线性地址空间作为访问高于896M的内存的一个窗口。 引...
分类:
系统相关 时间:
2015-04-16 20:13:28
阅读次数:
278
在一次操作系统课程上听老师说了这么一个有意思的东西,windows的自映射方案居然达到了把4K的页目录的线性地址“藏”在4M页表里的效果,感觉甚是奇特,于是乎就想着说怎么去算。光会算之后仍旧不满足,我又感觉对我而言有两个问题是很模糊的:为什么说0xC0300000是可行的页目录线性地址起始处?在.....
《深入理解Linux内核》中关于内存管理一共有三章,这是其中的一章,还有第八章,讨论内核怎样给自己分配主存,以及第九章,考虑怎样给进程分配线性地址。内存地址 -- (P40)以下三种地址是相对与8086处理器来说的。逻辑地址(logical address)包含在机器语言指令中用来指定一个操作数或一...
分类:
系统相关 时间:
2015-03-15 19:45:36
阅读次数:
253
在下面几种情况下会发生,页面出错异常(也叫缺页中断): 1、相应的页面目录项或者页面表项为空,也就是该线性地址与物理地址的映射关系尚未建立,或者已经撤销。 2、相应的物理页面不在内存中。 本文讨论的就是这种情况。 3、指令中规定的访问方式与页面的权限不符,例如企图写一个“只读”的页面。 假设已经建立好了映射,但是页表项最后一位P为0,表示页面不在内存中;整个页表项如下图,...
分类:
系统相关 时间:
2015-03-01 18:33:25
阅读次数:
216
在下面几种情况下会发生,页面出错异常(也叫缺页中断): 1、相应的页面目录项或者页面表项为空,也就是该线性地址与物理地址的映射关系尚未建立,或者已经撤销。本文讨论的就是这种情况。 2、相应的物理页面不在内存中。 3、指令中规定的访问方式与页面的权限不符,例如企图写一个“只读”的页面。 首先看下进程地址空间示意图:...
分类:
系统相关 时间:
2015-03-01 13:16:01
阅读次数:
305