[리눅스커널] 메모리관리: kmalloc() 함수 소개

Guillermo Austin Kim|2019년 8월 28일
Posts

[리눅스커널] 메모리관리: kmalloc() 함수 소개

Guillermo Austin Kim|2019년 8월 28일

리눅스 시스템 프로그래밍으로 유저 공간에서 동적 메모리를 할당받으려면 malloc() 함수를 호출해야 하듯이, 커널에서 동적 메모리를 할당하려면 kmalloc() 함수를 호출해야 합니다. 먼저 kmalloc() 함수 선언부를 볼까요?void *kmalloc(size_t size, gfp_t flags); 함수에 전달하는 인자를 살펴보겠습니다. size_t size;정수형 타입으로 할당하고 싶은 메모리 크기를 지정합니다. 단위는 바이트입니다. gfp_t flags;메모리 할당 세부 옵션 플래그입니다. 커널에서는 이 플래그를 보고 세부 메모리 할당 처리 방식을 결정합니다. flags는 다음 해더 파일에 선언된 매크로 플래그를 저장하는데 보통 커널 드라이버에선 GFP_KERNEL 플래그를 지정합니다.[