linux内存管理及安全防护
按:基于x86处理器上,以系统启动过程中内存管理的逐步构建为主轴,分析内存的管理方式与其相关的安全防护功能。 如何知道计算机内存布局?内存空间有多少? 春江水暖鸭先知,计算机上电启动的时候,BIOS会...
路漫漫其修远兮,吾将上下而求索
按:基于x86处理器上,以系统启动过程中内存管理的逐步构建为主轴,分析内存的管理方式与其相关的安全防护功能。 如何知道计算机内存布局?内存空间有多少? 春江水暖鸭先知,计算机上电启动的时候,BIOS会...
近期学习了一下Qemu的使用,发现Qemu功能很强大,提供的能力较多,同时也为使用增加的难度,尤其是那堆参数。同样是由于那堆参数,可以构造出很复杂的模拟环境来。不过构造模拟环境不是这次的重点,这次重点...
前提概要 众所周知,计算机的核心是CPU,Linux系统就是运行在CPU之上的。但是仅仅有CPU是不够的,还需要有内存、磁盘、键盘、鼠标、显示器等各种各样的设备。Linux系统运行起来就需要将各种设备...
前面分析了不连续页面管理的初始化以及申请的实现,最后以释放不连续页面空间vfree()收尾。 【file:/mm/vmalloc.c】 /** * vfree – release memory all...
从前文分析来看,不连续页面管理的初始化较为简单,现在分析一下具体的分配实现。 vmalloc内存申请函数入口为vmalloc(): 【file:/mm/vmalloc.c】 /** * vmalloc...
伙伴管理算法初衷是解决外部碎片问题,而slab算法则是用于解决内部碎片问题,但是内存使用的得不合理终究会产生碎片。碎片问题产生后,申请大块连续内存将可能持续失败,但是实际上内存的空闲空间却是足够的。这...
分析完kmemleak实现后,照常实验一下,以确定功能正常。 如kmemcheck一样,该功能需要在内核开启的情况下才能够使用。主要的配置项有:CONFIG_DEBUG_KERNEL、CONFIG_H...
kmemleak的工作原理很简单,主要是对kmalloc()、vmalloc()、kmem_cache_alloc()等接口分配的内存地址空间进行跟踪,通过对其地址、空间大小、分配调用栈等信息添加到P...
前面分析了kmemcheck的实现,那么现在就针对其功能进行试验,鉴于kmemcheck支持KMEMCHECK_SHADOW_UNALLOCATED、KMEMCHECK_SHADOW_UNINITIA...
kmemcheck和kmemleak是linux在2.6.31版本开始对外提供的内核内存管理方面的两个检测工具,最初仅支持x86环境,时至今日已经能够支持arm环境了。其中kmemcheck主要是用于...