首页 > TAG信息列表 > PFN

【内存管理】CMA内存分配器(Contiguous Memory Allocator)【转】

转自:https://www.cnblogs.com/yibuyibu/p/14806878.html 什么是CMA 参考这两篇博文,写得很好: http://www.wowotech.net/memory_management/cma.html https://www.cnblogs.com/LoyenWang/p/12182594.htmlhttps://biscuitos.github.io/blog/CMA/ CMA的初始化创建 * 默认cma创建(dma_

加载shellcode到32位Windows程序远程进程中

BOOL WINAPI LoadDll(HANDLE hProcess,LPVOID lpBuf,int cbBuf) { BOOL br = FALSE; LPVOID m_lpData = VirtualAllocEx(hProcess, NULL,cbBuf,MEM_COMMIT|MEM_RESERVE, PAGE_EXECUTE_READWRITE); if (m_lpData==NULL) { goto cleanup0; } if(!WriteProcessMemory(hProces

内存相关内核知识点

参考:https://www.zhihu.com/column/c_1108400140804726784 传统的三级页表从上到下分为 PGD,PMD 和 PTE。后面引入了新的PUD( Page Upper Directory)。 PGD 依然保留为顶层的页表,同时将新级别插入在中间,即 PMD 级别的左边或者右边。基于该设计,最顶层都是 PGD,最底层也都是 PTE, se

c/c++创建动态库

上一篇 用的命令 cl /c xx.cpp //编译成obj link /dll /out:mou1.dll x.obj //链接生成dll 文件 cpp 的导入可以直接声明 导出函数 extern "C" __declspec(dllexport) void mou1() { puts("mou1"); }  不需要加 __declspec(dllexport) 也可以在当前文件里面写def

linux内核那些事之ZONE

struct zone 从linux 三大内存模型中可以了解到,linux内核将物理内存按照实际使用用途划分成不同的ZONE区域,ZONE管理在物理内存中占用重要地位,在内核中对应的结构为struct zone,,在5.8.10版本中该结构如下: struct zone { /* Read-mostly fields */ /* zone watermarks, access

操作系统 ---虚拟内存管理

操作系统 ---虚拟内存管理 【实验目的】         通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。 【实验内容】 设计一个虚拟分页系统,并使用下述算

Linux内核源码分析之setup_arch (四)

find_limits通过存储在meminfo中的内存条信息得到低端内存和高端内存的页框编号,分别放入到min、max_low、max_high中。 static void __init find_limits(unsigned long *min, unsigned long *max_low, unsigned long *max_high) { … *min = bank_pfn_start(&mi->bank[0]); f

2.6 C语言入职例程三:函数指针和程序框架入门

2.6.1 勿在浮沙筑高台 前文介绍过,很多企业的培训体系是这样的: 新人入职后,师傅会给一堆资料让看,然后新人硬着头皮看一些; 哪天师傅不忙了,惦记起这个新人,然后交给其一个产品,让其折腾; 可惜真实产品一般都涉及多个学科,面对一大堆疑问,新人会感觉腾云驾雾般难以前行; 一段时间后部

c++虚函数

struct base { public: virtual void function_1() { printf(“function_1…\n”); } virtual void function_2() { printf(“function_2…\n”); } virtual void function_3() { printf(“function_3…\n”); } }; int main(int argc, char* argv[]) { // 查看 base 的虚