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