1、mmap系统调用的实现过程,该系统调用直接将设备内存映射到用户进程的地址空间。2、用户空间内存如何映射到内核中(get_user_pages)。3、直接内存访问(DMA),他使得外设具有直接访问系统内存的能力。linux中地址类型:用户虚拟地址、内核虚拟地址、内核逻辑地址(与物理地址是线性关系)...
分类:
其他好文 时间:
2014-09-07 10:59:45
阅读次数:
225
抱着拿来主义,自己挑选了部分,以下内容摘自网络。Linux内核地址空间划分 通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。注意这里是32位内核地址空间划分,64位内核地址空间划分是不同的。 Linux内核高端内存的由来 当内核模块代码或线程访问内存时,代码中的内存地址都为逻辑地址,而对应到真正的物理内存地址,需要地址一对一的映射,如逻辑地址0xc0000003对应的物...
分类:
系统相关 时间:
2014-08-20 16:34:22
阅读次数:
353
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分...
分类:
其他好文 时间:
2014-08-18 15:47:42
阅读次数:
173
最近开始想稍微深入一点地学习Linux内核,主要参考内容是《深入理解Linux内核》和《深入理解Linux内核架构》以及源码,经验有限,只能分析出有限的内容,看完这遍以后再更深入学习吧。1,内存地址逻辑地址:包含在机器语言中用来指定一个操作数或一条指令的地址。线性地址:一个32位无符号数,用于直接映...
分类:
系统相关 时间:
2014-07-20 08:29:46
阅读次数:
476
内存管理
--内存管理基础
一、 内存管理概念
1.存储管理的功能
(1)内存空间的分配与回收,包括内存的分配和共享。
(2)地址转换:内存管理配合硬件进行地址转换,把逻辑地址转换成物理地址。
(3)内存空间的扩充:借助于虚拟存储器或交换覆盖技术来达到扩充内存容量的目的。
(4)存储保护:为了避免相互干扰和破坏,必须提供保护功能。
2.地址重定位[程序的装入]
(1)逻辑地址空间
(2)物理地址空间
(3)地址重定位
(4)重定位类型
地址重定位分为静态重定位和动态...
分类:
其他好文 时间:
2014-07-19 23:32:09
阅读次数:
469
我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的物理地址 = 逻辑地址 – 0xC0000000:这是内核地址空间的地址转换关系。这句话瞬间让我惊呆了,根据我的CPU的知识,开启分页之后,任何寻址都要经过mmu的转换,也就是一个二级查表的过程(386)难道内核很特殊,当mmu看到...
分类:
系统相关 时间:
2014-07-16 19:39:07
阅读次数:
235
2.1 内存地址逻辑地址:段+偏移线性地址(虚拟地址)物理地址2.2硬件中的分段2.2.1 段选择符和段寄存器15 3 2 1 0 ------------------------------------------------| |TI |RPL || 索引号 | | |-------...
分类:
系统相关 时间:
2014-07-02 20:45:39
阅读次数:
252
以下的一段代码:
#include
greeting()
{
printf("Hello, world!\n");
}
main()
{
greeting();
}
经过gcc、ld(链接、编译)之后,生成一个elf可执行文件,再使用objdump处理,生成的反汇编代码如下:
08048368 :
8048368: 55 push %ebp
8048369: 89 e5 mov %esp,...
分类:
系统相关 时间:
2014-06-22 17:34:39
阅读次数:
351
一、逻辑地址转线性地址 机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。 我们写个最简单的hello world程序,用gccs编译,再反编译后会看到以下指令: mov 0x80495b0, %eax 这里的内存地址...
分类:
系统相关 时间:
2014-06-18 13:50:43
阅读次数:
348
一、逻辑地址(有时也称虚拟地址) 逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如在C语言指针编程中,可以读取指针变量本身值(&操作)实际上这个值就是逻辑地址,它是相对于当前进程数据段的地址和绝对物理地址无关。 只有在Intel处理器的实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,CPU不进行自动地址转换)。逻辑地址也就是在Intel...
分类:
其他好文 时间:
2014-06-18 07:16:45
阅读次数:
202