커널 모듈은 최소 두가지 entry function을 갖추고 있어야
#include <linux/module.h> /* Needed by all modules */ #include <linux/kernel.h> /* Needed for KERN_INFO */
Kernel Module Programming Notion
Kernel Module Programming Tools
커널 모듈 프로그램은 gcc 컴파일러와 표준 라이브러리 대신에 별도의 컴파일러와 헤더를 이용해야
즉, 커널 모듈을 위한 c 언어 규칙은 gcc 컴파일러를 기준으로 작성하는 일반 c 언어와 다른 부분이 있다. Makefile 규칙 역시 다르다
커널 모듈 프로그래밍시 커널 버전에 따라 커널 모듈에서 사용할 수 있는 함수나 구조체가 다르므로 각 버전에 해당하는 가이드 문서를 통해 확인해볼 것을 권장한다
sudo insmod hello.ko cat /proc/hello sudo rmmod hello
컴파일된 커널 모듈은 터미널에서
sudo insmod 명령어를 통해 커널에 등록되는데, 이때 module_init()을 통해 등록된 함수가 실행된다. 커널 모듈은 터미널에서 sudo rmmod 명령어를 통해 커널에서 제거되는데, module_exit()을 통해 등록된 함수가 실행된다
Seonglae Cho