---------内存管理系列文章---------
内存管理系列五:alloc_pages从伙伴系统申请空间简易流程
----------英文文章鉴赏----------
Linux: large-memory management histories
Looking at kmalloc() and the SLUB Memory Allocator
Memory Management in OS: Contiguous, Swapping, Fragmentation
Memory Management in Operating System
Operating System - Memory Management
Virtual Memory in OS: What is, Demand Paging, Advantages
----------分割线----------
多核心Linux内核路径优化的不二法门之-slab与伙伴系统
一文了解,Linux内存管理,malloc、free 实现原理
Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈
内存管理 ---Slab | 内存映射 | kmalloc | vmalloc | 内核源码 | MM | brk
90分钟了解 Linux内存架构--- numa的优势 | slab的实现 | vmalloc的原理
内存分配与回收机制---伙伴算法|slab分析|内存映射|进程虚拟空间|请求调页|写时复制
3种内存泄漏的解决方案--hook|malloc函数|free函数|避免内存泄漏
剖析Linux内核MMU机制---页表原理|高速缓存|TLB工作原理|内存映射|不连续页原理
Linux内核内存管理(一)---内存映射|空间管理|ARM32/64页表|slab分配器|malloc
Linux内核内存管理(二)---malloc|mmap|反向映射|缺页中断处理|回收页面|KSM实现|内存漏洞|匿名页面
Linux内核内存管理(三)---Slab机制架构|物理页面|管理区|分配/释放页面
Linux内核之内存页回收---LRU及反向映射?如何异步回收、直接回收?以及回收slab缓存
Linux内核内存管理专题训练营(一)---伙伴系统|slab分配器|vmalloc()|malloc()|TLB|虚拟内存|缺页机制
Linux内核内存管理专题训练营(二)---伙伴系统|slab分配器|vmalloc()|malloc()|TLB|虚拟内存|缺页机制
Linux内核精讲之内存管理---物理内存组织|内核引导|内存映射
Linux物理内存页面分配---kmalloc|slab/slub|页框分配机制
- 59问:内存管理
- 如何知道计算机内存布局?内存空间有多少?
- 何时去探明内存布局?由谁去探明呢?
- kernel会加载到何处呢?由什么决定它的位置?
- kernel映像如何隐匿自己的位置?
- 探知的e820表如何处理?
- 内存是连续的吗?
- 处理完毕的e820表如何管理?
- 启动之时内存如何映射的?
- 保护模式是怎样的?相比实模式有何特点?
- 页保护模式是怎样的?
- 页面映射有何作用?都有什么好处?
- x86支持的映射模式都有哪些形式?如何分级的?
- 内核如何处理多样式的页映射?
- 面对NUMA等复杂内存环境如何处理?
- 内核页表如何建立?
- 内核态进程虚拟地址与物理内存的映射关系?
- 用户态进程虚拟内存与物理内存的关系如何?
- 内存管理框架如何构造?
- Kernel内存空间如何划分?
- 64位地址空间如何划分?
- 内存分配空间如何实现不可预测性?
- 物理内存是如何管理的?怎么分配的?
- Buddy管理算法所处的位置?在什么地方体现?
- 内存碎片化了怎么办?
- 如何为驱动应用预留大块连续内存?
- LRU如何运作?
- 内存回收是如何运作的?
- 相同的内存浪费内存空间了?
- 页面空间监测手段有什么?
- 如何降低页面分配的可预测性?
- 如何防范内存泄密?
- 如何查看Buddy管理算法下的内存类型信息?
- 小块内存空间如何分配管理?
- SLUB如何管理内存的?
- 如何查看slab信息?
- 如何防范slab空闲链表的攻击?
- SLUB分配如何防止被预判?
- kmalloc和kfree如何实现的?
- kernel的内存泄漏如何定位?
- kernel有内存检测机制吗?
- 支离破碎的内存如何得到大块连续内存?
- 如何查看vmalloc信息?
- Percpu内存空间如何管理的?
- 从proc接口还可以看到什么?
- 容器的内存如何管理?
- 内核如何防范信息外泄?
- 物理内存页面耗尽了如何处理?
- 内核代码段如何进行自我防护?
- 内核代码段如何防护注入?
- kernel程序空间能否再压榨?
- 面向用户态程序,内核提供了哪些内存分配接口?
- brk接口实现了什么?
- mmap接口实现了什么?
- 用户态内存如何管理?
- glibc对brk和mmap如何使用?
- 如何查看进程内存映射信息?
- 如何查看进程内存占用实际情况?
- 如何查看进程内存片段映射详情?
- 如何查看进程内存映射汇总信息?
《Memory Management 101: Introduction to Memory Management in Linux》
《Virtual Memory Management Techniques in 2.6 Kernel and Challenges》