图片来源:http://blog.csdn.net/u010651541/article/details/49849557 主要根据此图给出一些程序变量的分配情况,以及缓冲区溢出攻击的简单原理。 上述图主要描述进程虚拟地址空间,即用户空间内容,进程内核地址空间为所有进程共用(Linux内核中) 栈区 ...
分类:
其他好文 时间:
2017-10-27 11:39:14
阅读次数:
145
mmap基础概念 mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。 实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再 ...
分类:
其他好文 时间:
2017-09-22 22:37:00
阅读次数:
197
可执行文件只有装载到内存以后才能被CPU执行 6.1进程虚拟地址空间 程序和进程的区别: 程序:是一个静态概念,它就是一些预先编译好的指令和数据集合的一个文件。 进程:是一个动态概念,它是程序运行时的一个过程,很多时候把动态库叫做运行时。 程序被运行起来以后,它就拥有了独立的虚拟地址空间。虚拟地址空 ...
分类:
系统相关 时间:
2017-09-08 09:57:29
阅读次数:
198
我们都知道C++中有三种创建对象的方法,如下: 第一种和第二种没什么区别,一个隐式调用,一个显式调用,两者都是在进程虚拟地址空间中的栈中分配内存,而第三种使用了new,在堆中分配了内存,而栈中内存的分配和释放是由系统管理,而堆中内存的分配和释放必须由程序员手动释放,所以这就产生一个问题是把对象放在栈 ...
分类:
编程语言 时间:
2017-08-19 17:11:21
阅读次数:
162
1.虚拟地址到物理地址 X86芯片访问内存,需要使用MMU功能,实现虚拟地址到线性地址,再到物理地址的访问。 X86的分段机制是强制的,分页机制是可选的。 2.分段机制 X86的虚拟地址,由选择符:偏移值决定。段选择符由CS,SS,DS等组成。CS为代码段选择符,SS为堆栈段选择符, DS为数据段选 ...
分类:
系统相关 时间:
2017-08-06 20:45:05
阅读次数:
192
http://blog.csdn.net/sergeycao/article/details/8228613 可执行文件只有被装载进内存以后才能被CPU执行。 接下来我们看一下可执行文件装载的本质到底是什么。 1. 首先来了解一下进程虚拟地址空间。 程序和进程的区别:程序是一个静态的概念,他就是一些 ...
分类:
其他好文 时间:
2017-05-25 00:07:20
阅读次数:
265
http://blog.csdn.net/yusiguyuan/article/details/39520933 Linux对于内存的管理涉及到非常多的方面,这篇文章首先从对进程虚拟地址空间的管理说起。(所依据的代码是2.6.32.60) 无论是内核线程还是用户进程,对于内核来说,无非都是task_ ...
分类:
系统相关 时间:
2017-05-21 01:08:29
阅读次数:
342
第一种和第二种没什么区别,一个隐式调用,一个显式调用,两者都是在进程虚拟地址空间中的栈中分配内存,而第三种使用了new,在堆中分配了内存,而栈中内存的分配和释放是由系统管理,而堆中内存的分配和释放必须由程序员手动释放。采用第三种方式时,必须注意一下几点问题: ...
分类:
编程语言 时间:
2017-05-05 16:18:21
阅读次数:
159
2017-04-07 脱离物理内存的管理,今天咱们来聊聊进程虚拟内存的管理。因为进程直接分配和使用的都是虚拟内存,而物理内存则是有系统“按需”分配给进程,在进程看来,只知道虚拟内存的存在! 前言: 关于虚拟内存和物理内存这些东东,本篇不作介绍,此等基础知识参考最普通的操作系统参考书籍即可。当然有问题 ...
分类:
系统相关 时间:
2017-04-10 16:51:29
阅读次数:
250
VFIO是一个用户态驱动框架,编写高效的用户态驱动。在虚拟化场景下,在用户态实现device passthrough,通过VFIO访问硬件。(第一次向用户态开放了IOMMU接口),在用户态配置IOMMU,将DMA地址空间映射,进而限制在进程虚拟地址空间之内。 ...
分类:
其他好文 时间:
2017-04-06 14:50:47
阅读次数:
1807