In-depth understanding of Linux memory management - of - directory navigation

Reprinted from: https://blog.csdn.net/gatieme/article/details/52384965

date kernel version Architecture author GitHub CSDN
2016-08-31 Linux-4.7 X86 & arm gatieme LinuxDeviceDrivers Linux memory management

1 Memory description


CSDN GitHub
Overview of Linux memory description - Linux memory management (1) 01-description/01-memory
Memory node node-Linux memory management of Linux memory description (2) 01-description/02-node
The memory area zone of Linux memory description – Linux memory management (3) 01-description/03-zone
Memory page page of Linux memory description – Linux memory management (4) 01-description/04-page
High-end memory of Linux memory description - Linux memory management (5) 01-description / 05-highmem

2 page table management


CSDN GitHub
Overview of Linux Paging Mechanism - Linux Memory Management (6) 02-memory/01-develop
The evolution of the paging mechanism of the Linux paging mechanism - Linux memory management (7) 02-pagetable/02-paging
Detailed implementation of the paging mechanism of the Linux paging mechanism - Linux memory management (8) 02-pagetable/03-pte

3 Initialize memory management


CSDN GitHub
Overview of the initialization process of memory management during startup - Linux memory management (9) 03-initialize/01-initialize
Boot allocator bootmem-Linux memory management for memory management during startup (10) 03-initialize/02-bootmem
Memblock allocator for memory management during startup – Linux memory management (11) 03-initialize/03-block
Bootmem_init initialization memory management of memory management during startup - Linux memory management (12) 03-initialize/04-bootmem_init
Memory management during startup build_zonelists initializes the spare memory domain list zonelists-Linux memory management (thirteen) 03-initialize/05-build_zonelists
Pagging_init initialization paging mechanism for memory management during startup – Linux memory management (14) 03-initialize/06-paging_init

4 Buddy System


CSDN GitHub
An overview of the partner system of the partner system - Linux memory management (15) 04-buddy/01-buddy_system
The initialization of the partner system - Linux memory management (16) undone
Avoid Fragmentation in Partner System - Linux Memory Management (16) 04-buddy/03-fragmentation
alloc_page allocates memory space – Linux memory management (17) 04-buddy/04-alloc_page
Kalloc allocates physical memory and physical address mapping – Linux memory management (18) 04-buddy/06-kmalloc
Allocation of discontinuous pages in vmalloc memory of high-end memory mapping - Linux memory management (19) 04-buddy/07-highmem_mapping/06-vmalloc-(non_contiguous_pages)
High-end memory mapping kmap persistent kernel mapping – Linux memory management (20) 04-buddy/07-highmem_mapping/07-kmap-(kernel_mapping)
Kmap_atomic fixed mapping of high-end memory mapping – Linux memory management (21) https://github.com/gatieme/LDD-LinuxDeviceDrivers/tree/master/study/kernel/02-memory/04-buddy/07-highmem_mapping/08-kmap_atomic-(kernel_mapping)

5 slab allocator



Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324661372&siteId=291194637