Unit 설명
리눅스 커널의 버디와 슬럽 할당자 구조를 이해하고, 메모리 초기화와 할당 및 해제 과정을 학습합니다.
학습목표
이런 내용을 배워요
- 리눅스 커널의 물리 메모리 관리 구조와 NUMA, zone, page의 역할
- 버디 할당자(Buddy Allocator)의
free_area와 Per-CPU 페이지 캐시 구조 - 버디 할당자의 초기화와 페이지 분할 및 병합을 이용한 할당과 해제 과정
- 슬럽 할당자(SLUB Allocator)의 slab, object,
kmem_cache구조 kmalloc()과kfree()를 통한 슬럽 할당자의 fastpath와 slowpath 동작
이런 분께 추천해요
- 리눅스 커널의 메모리 관리와 할당자 내부 동작을 깊이 이해하고 싶은 분
- 커널 익스플로잇 기법이나 1-day 취약점 분석에 필요한 기반 지식을 갖추고 싶은 분
- 리눅스 커널 소스 코드를 따라 메모리 할당 흐름을 분석하고 싶은 분
이런 선수 지식이 필요해요
- C 언어가 제공하는 다양한 기능에 대한 이해
kmalloc()등 리눅스 커널 메모리 할당 인터페이스에 대한 기초 지식
이런 환경을 기준으로 설명해요
- x86-64 아키텍처 기반 리눅스 커널 환경
구성
Introduction to Linux Kernel Memory Allocator
Introduction to Linux Kernel Memory Allocator
Buddy Allocator
Buddy Allocator
SLUB Allocator
SLUB Allocator
평점
Unit의 모든 항목을 완료한 후 평가할 수 있습니다.
리눅스 커널 메모리 할당자
0% 진행중
총 0개 항목 완료
강의
0 /3
Lab은 실습 개념으로, 전체 진도율에 포함되지 않아요.