
This repo collects and organizes the knowledge related to the Linux kernel--memory management module on the entire network.
All data comes from the Internet. The so-called take from the Internet and use it on the Internet.
If copyright infringement is involved, please email [email protected] and we will deal with it as soon as possible.
If you agree and support our project, you are welcome to lssues us, or email [email protected], and you are even more welcome to pull requests to join us.
Thank you for your support!
This Repo collects and organizes the whole network Linux kernel -- memory management module related knowledge.
All data comes from the Internet. The so-called take from the Internet, use for the Internet.
If copyright infrastructure is involved, please email [email protected] and we will deal with it as soon as possible.
If you agree to our project and support, welcome lssues, we, or email [email protected] us, More welcome pull requests to join us.
Thank you for your support.
Memory management (I): Hardware principle and pagination management
Memory management (II): Dynamic application and release of memory
Memory management (III): Memory consumption and leakage of processes
Memory Management (IV): Memory and IO Exchange
Memory management (V): Other engineering problems and optimization
--------------------------------------------------------------------------------------------------------------------------------
Memory Management Series 1: Introduction to Startup
Memory Management Series 2: Create a page table in the startup stage
Memory Management Series 3: CPU initialization and opening of MMU before MMU
Memory Management Series 4: Introduction to setup_arch (memory management initialization)
Memory Management Series 5: Alloc_pages Simple process for applying for space from partner system
Memory Management Series 6: Buffered_rmqueue of Partner System
Memory Management Series 7: Slub Initialization
Memory Management Series 8: Slub Creation
Memory Management Series 9: Slub Application Memory
Memory Management Series 10: Slub Recycling
Memory Management Series 11: Slub Destruction
Memory Management Series 12: vmalloc memory mechanism
Memory Management Series 13: VMA Operation
Memory Management Series 14:brk
Memory Management Series 15: do_page_fault missing page interrupt
Memory Management Series 16: Reverse Mapping RMAP
Memory Management Series 17: Memory Pool
Memory Management Series 18: LRU Link List for Memory Recycling
Memory Management Series 19: Memory Compression Algorithm
Memory Management Series 20: Data synchronization of memory compression algorithm
Memory Management Series 21: Memory Recovery
Memory Management Series 22: Core Process of Memory Recycling
--------------------------------------------------------------------------------------------------------------------------------
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
Why Do We Need Virtual Memory
------------------------------
Linux kernel (5.4.81)—Source code analysis of memory management module
glibc2.23 ptmalloc principle overview
The only way to optimize paths of multi-core Linux kernel - slab and partner system
Read with all your heart, advance technology, and explain the principles of mmap in detail
A brief discussion on Linux memory management mechanism
Memory management mechanism in Linux
New and delete in memory management in C++
Analysis of the implementation principle of malloc and free
Summary of commonly used registers
Memory fragments External fragments and internal fragments
Linux virtual memory management, MMU mechanism, so that's it
Learn about Linux memory management, malloc and free implementation principles
Memory mapping of memory management
Memory management page
Memory management kernel space and user space
How many methods do you know about Linux memory usage analysis?
Deep understanding of Linux memory subsystem
In-depth understanding of glibc malloc: memory allocator implementation principle
Graphical explanation of the core idea of Linux memory performance optimization
One article allows you to understand the relationship between memory and CPU
Linux memory management---Detailed explanation
One article will help you understand virtual memory, memory paging, segmented, and segmented memory management
In-depth and easy-to-understand Linux memory management (I)
In-depth and easy-to-understand Linux memory management (II)
Why does Linux need virtual memory
【Summary Time】Physical memory space management
【Summary Time】User-state memory mapping
【Summary Time】Kernel State Memory Mapping
Virtual address space—MMU
Virtual memory space of the process
Linux kernel source code/memory tuning/file system/process management/device driver/network protocol stack
Memory management ---Slab | Memory mapping | kmalloc | vmalloc | Kernel source code | MM | brk
Understand the advantages of Linux memory architecture in 90 minutes-----------------------------------------------------------------------------------------------------------------
Memory allocation and recycling mechanism---partner algorithm|slab analysis|memory mapping|process virtual space|request paging|copy on write
3 solutions for memory leaks--hook|malloc function|free function|avoid memory leaks
Analysis of Linux kernel MMU mechanism---Page table principle|Cache|TLB working principle|Memory mapping|Discontinuous page principle
Virtual memory space VMA practical operation
Linux kernel memory management (I) ----Memory mapping | Space management | ARM32/64 page table | slab allocator | malloc
Linux kernel memory management (II) ----malloc|mmap|reverse mapping|page missing interrupt processing|page recycle|KSM implementation|memory vulnerability|anonymous page
Linux kernel memory management (III)---Slab mechanism architecture | physical page | management area | allocation/release page
Memory page recycling of Linux kernel---LRU and reverse mapping? How to recycle asynchronously and directly? and recycle slab cache
Linux kernel memory management special training camp (I) --- Partner system | slab allocator | vmalloc() | malloc() | TLB | virtual memory | page-failure mechanism
Linux kernel memory management special training camp (II) --- Partner system | slab allocator | vmalloc() | malloc() | TLB | virtual memory | page-failure mechanism
Linux Kernel Precision: Memory Management---Physical Memory Organization|Kernel Boot|Memory Mapping
Linux physical memory page allocation ---kmalloc|slab/slub|page box allocation mechanism
The ultimate discussion on Linux memory problems----Virtual memory|Memory pool|Memory leak|Management components
-----Xi'an Jiaotong University Memory Management (24 Lectures) Extraction Code 1024-----
background
Fixed partition allocation
Continuous memory allocation
Pagination
Pagination hardware and TLB
Segmented management
Virtual memory
Request paging
Page replacement
Page replacement algorithm
Frame allocation
Bump
"Research on Virtual Memory Management Technology of ARM"
"Analysis and Research on Memory Vulnerability in C Language"
"Analysis and Improvement of FreeRTOS Memory Management Solution"
"Linux Memory Management"
"Linux Memory Management Analysis and Research"
"Design and Implementation of Linux Memory Management"
"Implementation and Application of Memory Pools in Linux Kernel"
"Research on Dynamic Memory Detection Mechanism in Linux Kernel"
"Linux Kernel Partner System Analysis"
"Research on the Implementation of Linux Kernel Memory Pool"
"Research and Implementation of Real-time Memory in Linux"
"Linux Operating System Kernel Analysis and Research"
"Memory Management 101: Introduction to Memory Management in Linux"
"Memory Management in Linux"
"Memory Management"
"Memory allocation strategy for memory access delay balancing among multiple nodes in NUMA architecture"
"Research on Nginx Slab Algorithm"
"Lightweight multithreaded implementation of TCP_IP protocol stack"
"Methods of using memory mapped files to realize interprocess communication in VC"
Virtual Memory Management Techniques in 2.6 Kernel and Challenges
"Share data between processes using memory mapped files in Visual C"
"Linux Physical Memory Page Allocation"
"Design and Implementation of a Memory Allocation"
"A Linux memory management mechanism"
A TLB structure optimization method
"A Optimized Partner System Storage Management Algorithm Design"
"A Dynamic Memory Leak Detection Method Based on Virtual Machines"
"A Design Solution to Improve Real-time Reality of Linux Memory Management"
An Improved Linux Memory Allocation Mechanism
An Improved Method of Memory Management for Partner Systems
"Design and Implementation of a Cross-Platform Memory Pool"
"Design of an efficient pool memory manager"
Research on the Coordinated Optimization Strategy of Multi-Virtual Machine Memory in Cloud Computing Platform
"Research on the Coordinated Optimization Strategy of Multi-Virtual Machine Memory in Cloud Computing Platform"
"Research on the efficient implementation of memory management mechanism"
"Calculation of effective memory access time in paginated storage management system"
"Technical Evaluation on Improving TLB Address Coverage with Memory Mapping Continuity"
"Review of Dynamic Memory Allocation"
"Improvement and Implementation of Dynamic Storage Management Mechanism"
"Design and Implementation of Efficient Memory Pools Based on C"
"Implementation of C-based Custom Memory Allocation"
"Implementation of Dynamic Memory Management Mechanism Based on Linux Kernel"
"Research and Implementation of Building Kernel Isolated Space Based on Linux Kernel Page Table"
"Research on the Consistency Protocol of Big Data Systems Based on RDMA and NVM"
"High-performance distributed system based on RDMA high-speed network"
"Detection and Tracking of Kernel State Memory Leaks Based on RelayFS"
"Design and Implementation of Automatic Buffer Management Based on Linux User-Type"
"A Study on Dynamic Memory Allocation Algorithm Based on Multimap Mapping"
"Research on Memory Management Based on Cloud Computing Virtualization Platform"
"Space Data Scheduling Algorithm Based on Memory Pool"
"Research on Memory Management Algorithm of Multi-core Systems"
"Design and Implementation of Real-time System Memory Management Solution"
"Research on Linux Partner System and its Anti-Dissolve Mechanism"
"Design and Implementation of Dynamic Memory Allocation Manager for Embedded Real-Time Systems"
"Concurrent Data Structure and Its Application in Dynamic Memory Management"
"Application Collaborative Process Group Memory Management Support Technology"
"Research on Memory Management Strategy Supporting High-Performance IPC"
"Effective C memory leak detection method"
"A Brief Analysis of the Distribution and Recycling of Partner Systems"
"Research on Key Technologies for User-Mode Memory Management"
"Research and Implementation of the Optimization of the Page Table Structure of Shenwei Processor"
"Memory Management Optimization in Virtualized Systems"
"Research and Implementation of Memory Allocation Isolation Method for Linux Kernel Space"
"Research and Implementation of Page Allocation Devices"
Valgrind: Valgrind is a tool framework for building dynamic analysis tools. There are some Valgrind tools that automatically detect many memory management and threading errors and analyze your program in detail. You can also use Valgrind to build new tools. The Valgrind distribution currently includes 7 product quality tools: a memory error detector, two thread error detectors, a cache and branch prediction analyzer, a call graph generation cache and branch prediction analyzer, and two different heap analyzers. It also includes an experimental SimPoint basic block vector generator.
AddressSanitizer: Memory detection tool produced by Google
a. Use free and top first to view the overall memory usage of the system.
b. Use vmstat and pidstat to view memory changes and determine the memory problem type
c. Detailed analysis, such as memory allocation analysis, cache/buffer analysis, memory analysis of specific processes